# (c) 2013-2019 Timothy Pearson, Raptor Engineering
# Released into the Public Domain
NET "clk"  LOC = "V10" | IOSTANDARD = "LVCMOS33";
NET "clk" TNM_NET = clk;
TIMESPEC TS_clk = PERIOD "clk" 100000 KHz HIGH 50%;

NET "main_clk" TNM_NET = main_clk;
TIMESPEC TS_main_clk = PERIOD "main_clk" 100000 KHz HIGH 50%;

NET "gpmc_data<0>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<1>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<2>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<3>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<4>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<5>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<6>" OFFSET = OUT 8 ns AFTER "clk";
NET "gpmc_data<7>" OFFSET = OUT 8 ns AFTER "clk";

NET "gpmc_data<0>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<1>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<2>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<3>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<4>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<5>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<6>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_data<7>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";

NET "gpmc_address<0>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<1>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<2>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<3>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<4>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<5>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<6>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<7>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<8>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<9>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<10>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<11>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<12>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<13>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<14>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_address<15>" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";

NET "gpmc_advn" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_oen" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";
NET "gpmc_wen" OFFSET = IN 8 ns VALID 10 ns BEFORE "clk";

#NET "serial_input"  LOC = "T12" | IOSTANDARD = "LVCMOS33";
#NET "serial_output"  LOC = "M10" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_advn"  LOC = "C5" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_oen"  LOC = "A3" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_wen"  LOC = "A5" | FLOAT | IOSTANDARD = "LVCMOS33";

NET "gpmc_data<0>"  LOC = "A6" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<1>"  LOC = "C8" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<2>"  LOC = "C9" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<3>"  LOC = "A10" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<4>"  LOC = "C10" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<5>"  LOC = "D9" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<6>"  LOC = "D8" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<7>"  LOC = "B6" | SLEW = FAST | FLOAT | IOSTANDARD = "LVCMOS33";

NET "gpmc_address<0>" LOC = "A11" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<1>" LOC = "F9" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<2>" LOC = "A9" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<3>" LOC = "A8" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<4>" LOC = "A7" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<5>" LOC = "C6" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<6>" LOC = "A4" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<7>" LOC = "A2" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<8>" LOC = "B11" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<9>" LOC = "G9" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<10>" LOC = "B9" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<11>" LOC = "B8" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<12>" LOC = "C7" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<13>" LOC = "D6" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<14>" LOC = "B4" | FLOAT | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<15>" LOC = "B2" | FLOAT | IOSTANDARD = "LVCMOS33";

NET "usermem_wen" LOC = "V16" | PULLUP | IOSTANDARD = "LVCMOS33";
NET "usermem_wait" LOC = "T18" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "userproc_start"  LOC = "K16" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "userproc_done"  LOC = "L13" | IOSTANDARD = "LVCMOS33";
NET "userlogic_reset" LOC = "E13" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "userlogic_clock" LOC = "F13" | IOSTANDARD = "LVCMOS33";
NET "userdevice_reset" LOC = "D17" | SLEW = FAST | DRIVE = 24 | IOSTANDARD = "LVCMOS33";

NET "userlogic_serial_txd" LOC = "C14" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "userlogic_serial_rxd" LOC = "D14" | IOSTANDARD = "LVCMOS33";
NET "host_serial_txd" LOC = "B16" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "host_serial_rxd" LOC = "A16" | IOSTANDARD = "LVCMOS33";

NET "usermem_data<0>"  LOC = "V14" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<1>"  LOC = "T11" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<2>"  LOC = "R11" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<3>"  LOC = "T14" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<4>"  LOC = "U16" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<5>"  LOC = "T17" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<6>"  LOC = "K15" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<7>"  LOC = "L12" | SLEW = FAST | IOSTANDARD = "LVCMOS33";

NET "usermem_address<0>" LOC = "K12" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<1>" LOC = "L14" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<2>" LOC = "M14" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<3>" LOC = "L15" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<4>" LOC = "N15" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<5>" LOC = "P15" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<6>" LOC = "U17" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<7>" LOC = "U13" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<8>" LOC = "V13" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<9>" LOC = "U18" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<10>" LOC = "P16" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<11>" LOC = "N16" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<12>" LOC = "L16" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<13>" LOC = "N14" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<14>" LOC = "M13" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<15>" LOC = "K13" | IOSTANDARD = "LVCMOS33";

NET "four_bit_leds<0>" LOC = "G13" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<1>" LOC = "H16" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<2>" LOC = "G14" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<3>" LOC = "F16" | IOSTANDARD = "LVCMOS33";

NET "eight_bit_leds<0>" LOC = "E18" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<1>" LOC = "C18" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<2>" LOC = "A15" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<3>" LOC = "A14" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<4>" LOC = "K14" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<5>" LOC = "H14" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<6>" LOC = "G18" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<7>" LOC = "F18" | IOSTANDARD = "LVCMOS33";

NET "sixteen_bit_io<0>" LOC = "R10" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<1>" LOC = "T9" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<2>" LOC = "U7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<3>" LOC = "R7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<4>" LOC = "N5" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<5>" LOC = "R5" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<6>" LOC = "R3" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<7>" LOC = "T3" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<8>" LOC = "T5" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<9>" LOC = "P6" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<10>" LOC = "T7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<11>" LOC = "V7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<12>" LOC = "V9" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<13>" LOC = "T10" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<14>" LOC = "A12" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<15>" LOC = "B12" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io_wen" LOC = "C11" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io_mode" LOC = "D11" | IOSTANDARD = "LVCMOS33";

NET "four_bit_switches<0>" LOC = "H12" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<1>" LOC = "H15" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<2>" LOC = "F14" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<3>" LOC = "F15" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";

NET "eight_bit_switches<0>" LOC = "E16" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<1>" LOC = "C17" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<2>" LOC = "C15" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<3>" LOC = "B14" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<4>" LOC = "J13" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<5>" LOC = "H13" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<6>" LOC = "G16" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<7>" LOC = "F17" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";

NET "sseg_mux<0>" LOC = "U11" | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<1>" LOC = "R8" | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<2>" LOC = "U8" | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<3>" LOC = "T6" | IOSTANDARD = "LVCMOS33";

NET "sseg_data<0>" LOC = "U5" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<1>" LOC = "T4" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<2>" LOC = "V4" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<3>" LOC = "V5" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<4>" LOC = "V6" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<5>" LOC = "V8" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<6>" LOC = "T8" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<7>" LOC = "V11" | IOSTANDARD = "LVCMOS33";

