I remember when I was introduced to oscilloscopes and always wondered if they could 'handle' straight DC voltages, especially higher voltages. I guess it's a stumbling block for some people, thinking that it might somehow damage a 'scope. It's critical to check the voltage rails, especially during heavy activity, which I'm nowhere near yet but instinct always tells me to check them when there's some kind of strange problem. And I mean check
each IC if you're not using a power plane. Especially, if you use wirewrap or breadboard!
Anyway, I believe I'm done with the Master Spartan 6 constraints file. The Xilinx ISE tool needs to identify clock inputs which is especially important, and then the names you choose to give the rest of the I/O pins. I've not named most of the address pins and all the data pins that go to the top 2 SyncRAMs. The reason is that I'm sorta of curious for an early experiment, if it actually matters, for resource usage or top speed, which I seriously doubt. I've found the Xilinx tools fully capable in something like this, but you never know. Maybe someone can chime in on this?
Tomorrow, onto the Slave Spartan 6 constraints file. I personally use the constraints file, which is necessary for ISE to compile the project, to double check the pin connections. I don't use schematics for large pin IC's, it's a waste of time IMO... Anyway, cheers!
Code:
# MASTER CLOCK IN #
# Main Clock #
NET "MAINCLK1" LOC = P55 | IOSTANDARD = LVCMOS33; //N_GCLK
NET "MAINCLK1" TNM_NET = "MAINCLK1";
TIMESPEC TS_MAINCLK1 = PERIOD "MAINCLK1" 6.734 ns HIGH 50 %; //148.5MHz
# MASTER CLOCKS OUT and SERIAL I/O #
# Digital Audio Clock #
NET "DACLK" LOC = P50 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U21 Pin 39. 24.576MHz
# SPI (U10) & USB (U11) Clock #
NET "USBSPICLK" LOC = P132 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U10 Pin 11, U11 Pin 19. 12MHz
# Pixel Clock Out #
NET "PCLKOUT" LOC = P123 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U2 Pin 51. 148.5MHz
# FPGA Master (U3) to USB (U11)
NET "USBRx" LOC = P111 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U11 Pin 9
NET "USBTx" LOC = P112 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U11 Pin 7
# SPI Flash Clock & Data #
NET "SCLK" LOC = P132 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U10 Pin 14, U8 Pin 6
NET "SO" LOC = P120 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //VREF, U10 Pin 16
NET "SI" LOC = P121 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U10 Pin 15
NET "SD/FLASHn" LOC = P137 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U10 Pin13, U9 Pin 2
# I2C #
NET "SDA" LOC = P47 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //RDRW_B_VREF
NET "SCL" LOC = P133 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK
# Master FPGA (U3) Synchronous Rams Signals #
NET "SRAddr[]" LOC = P9 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 50
NET "SRAddr[]" LOC = P10 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 49
NET "SRAddr[]" LOC = P11 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 48
NET "SRAddr[]" LOC = P12 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 47
NET "SRAddr[]" LOC = P14 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U5 Pin 46
NET "SRAddr[]" LOC = P15 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U5 Pin 45
NET "SRAddr[]" LOC = P16 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U5 Pin 44
NET "SRAddr[]" LOC = P17 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U5 Pin 43
NET "SRAddr[A0]" LOC = P21 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U5 Pin 37
NET "SRAddr[A1]" LOC = P22 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U5 Pin 36
NET "SRAddr[]" LOC = P23 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U5 Pin 35
NET "SRAddr[]" LOC = P24 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U5 Pin 34
NET "SRAddr[]" LOC = P26 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 33
NET "SRAddr[]" LOC = P27 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 32
NET "SRAddr[]" LOC = P45 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U5 Pin 99
NET "SRAddr[]" LOC = P46 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U5 Pin 100
NET "SRAddr[]" LOC = P51 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U5 Pin 42
NET "SRAddr[]" LOC = P127 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U5 Pin 82
NET "SRAddr[]" LOC = P138 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 81
NET "SRAddr[]" LOC = P139 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 83
NET "SRAddr[]" LOC = P140 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 84
NET "SRAddr[]" LOC = P141 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 80
NET "SRAddr[]" LOC = P44 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U5 Pin 98
NET "SRD[]" LOC = P1 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //VREF, U5 Pin 69
NET "SRD[]" LOC = P2 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 68
NET "SRD[]" LOC = P5 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 63
NET "SRD[]" LOC = P6 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 62
NET "SRD[]" LOC = P7 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 59
NET "SRD[]" LOC = P8 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 58
NET "SRD[]" LOC = P30 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 23
NET "SRD[]" LOC = P32 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 22
NET "SRD[]" LOC = P33 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 19
NET "SRD[]" LOC = P34 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //VREF, U5 Pin 18
NET "SRD[]" LOC = P35 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 13
NET "SRD[]" LOC = P40 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U5 Pin 12
NET "SRD[]" LOC = P41 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U5 Pin 9
NET "SRD[]" LOC = P43 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U5 Pin 8
NET "SRD[]" LOC = P142 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U5 Pin 73
NET "SRD[]" LOC = P143 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //VREF, U5 Pin 72
NET "SRWEn" LOC = P29 |IOSTANDARD = LVCMOS33 |SLEW = FAST |DRIVE = 12; //USER I/O, U5 Pin 88
NET "SRCLK" LOC = P134 |IOSTANDARD = LVCMOS33 |SLEW = FAST |DRIVE = 12; //P_GCLK, U5 Pin 89
# FPGA Master (U3) to FPGA Slave (U2) Bi-Directional Comm #
NET "COMM0" LOC = P48 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //DO-D15, U2 Pin 120
NET "COMM1" LOC = P56 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U2 Pin 119
NET "COMM2" LOC = P57 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U2 Pin 118
NET "COMM3" LOC= P58 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U2 Pin 117
NET "COMM4" LOC = P59 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U2 Pin 116
NET "COMM5" LOC = P61 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U2 Pin 115
NET "COMM6" LOC = P62 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //D0-D15, U2 Pin 114
NET "COMM7" LOC = P66 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 112
NET "COMM8" LOC = P67 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 111
NET "COMM9" LOC = P74 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //DOUT_BUSY, U2 Pin 105
NET "COMM10" LOC = P75 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //AWAKE, U2 Pin 104
NET "COMM11" LOC = P78 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 102
NET "COMM12" LOC = P79 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 101
NET "COMM13" LOC = P80 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 100
NET "COMM14" LOC = P81 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 99
NET "COMM15" LOC = P82 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 98
NET "COMM16" LOC = P83 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 97
NET "COMM17" LOC = P84 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U2 Pin 95
NET "COMM18" LOC = P85 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U2 Pin 94
NET "COMM19" LOC = P87 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U2 Pin 93
NET "COMM20" LOC = P88 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U2 Pin 92
NET "COMM21" LOC = P93 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U2 Pin 87
NET "COMM22" LOC = P94 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //N_GCLK, U2 Pin 85
NET "COMM23" LOC = P95 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U2 Pin 84
NET "COMM24" LOC = P97 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //P_GCLK, U2 Pin 83
NET "COMM25" LOC = P98 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 82
NET "COMM26" LOC = P99 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 81
NET "COMM27" LOC = P100 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 80
NET "COMM28" LOC = P101 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 79
NET "COMM29" LOC = P102 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 78
NET "COMM30" LOC = P104 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //VREF, U2 Pin 75
NET "COMM31" LOC = P105 | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 12; //USER I/O, U2 Pin 74