--- /dev/null
+net "clock" loc="A8";
+net "switch<0>" loc="N15";
+net "switch<1>" loc="J16";
+net "switch<2>" loc="K16";
+net "switch<3>" loc="K15";
+net "switch<4>" loc="L15";
+net "switch<5>" loc="M16";
+net "switch<6>" loc="M15";
+net "switch<7>" loc="N16";
+#net "button" loc="K12";
+net "usb_full" loc="P7";
+net "usb_data<0>" loc="N12";
+net "usb_data<1>" loc="P12";
+net "usb_data<2>" loc="N11";
+net "usb_data<3>" loc="P11";
+net "usb_data<4>" loc="N10";
+net "usb_data<5>" loc="P10";
+net "usb_data<6>" loc="M10";
+net "usb_data<7>" loc="R10";
+net "usb_fifo_addr<0>" loc="P5";
+net "usb_fifo_addr<1>" loc="M7";
+net "usb_write" loc="T5";
+net "usb_pktend" loc="M6";
+net "usb_cs" loc="T8";
+net "led<0>" loc="L14";
+net "led<1>" loc="L13";
+net "led<2>" loc="M14";
+net "led<3>" loc="L12";
+net "led<4>" loc="N14";
+net "led<5>" loc="M13";
+net "led<6>" loc="P14";
+net "led<7>" loc="R16";
\ No newline at end of file
--- /dev/null
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.STD_LOGIC_ARITH.ALL;
+use IEEE.STD_LOGIC_UNSIGNED.ALL;
+
+entity s2usb is
+ Port ( switch : in STD_LOGIC_VECTOR (7 downto 0);
+ -- button : in STD_LOGIC;
+ clock : in STD_LOGIC;
+ usb_full : in STD_LOGIC;
+ usb_data : out STD_LOGIC_VECTOR (7 downto 0);
+ usb_fifo_addr : out STD_LOGIC_VECTOR (1 downto 0);
+ usb_write : out STD_LOGIC;
+ usb_pktend : out STD_LOGIC;
+ usb_cs : out STD_LOGIC;
+ led : out std_logic_vector(7 downto 0));
+end s2usb;
+
+architecture Behavioral of s2usb is
+
+signal prescaler : std_logic_vector(2 downto 0) := "000";
+signal state : std_logic := '1';
+
+begin
+
+usb_send : process(clock)
+begin
+
+ if(clock'event) and (clock='1') then
+ prescaler <= prescaler + 1;
+ if(prescaler="000") then
+ if(usb_full='1') then
+ if(state='1') then
+ state <= '0';
+ elsif(state='0') then
+ state <= '1';
+ end if;
+ usb_write <= state;
+ end if;
+ end if;
+ end if;
+
+end process;
+
+usb_fifo_addr <= "10"; -- ep6
+usb_data <= switch;
+usb_cs <= '0';
+usb_pktend <= '1';
+led <= switch;
+
+end Behavioral;
+