Integration of the switches module
This commit is contained in:
@@ -27,6 +27,7 @@ package config is
|
|||||||
constant CFG_MEM : integer := 0;
|
constant CFG_MEM : integer := 0;
|
||||||
constant CFG_DMEM : integer := CFG_MEM+1;
|
constant CFG_DMEM : integer := CFG_MEM+1;
|
||||||
constant CFG_LED : integer := CFG_DMEM+1;
|
constant CFG_LED : integer := CFG_DMEM+1;
|
||||||
|
constant CFG_SW : integer := CFG_LED+1;
|
||||||
|
|
||||||
-----------------------------
|
-----------------------------
|
||||||
-- base address (BADR) & mask address (MADR)
|
-- base address (BADR) & mask address (MADR)
|
||||||
@@ -36,12 +37,15 @@ package config is
|
|||||||
constant CFG_BADR_DMEM : generic_addr_type := CFG_BADR_MEM + IMEMSZ*4; --16#00000400#;
|
constant CFG_BADR_DMEM : generic_addr_type := CFG_BADR_MEM + IMEMSZ*4; --16#00000400#;
|
||||||
--constant CFG_BADR_NEXTFREEADDRESS : generic_addr_type := 16#00000800#;
|
--constant CFG_BADR_NEXTFREEADDRESS : generic_addr_type := 16#00000800#;
|
||||||
constant CFG_BADR_LED : generic_addr_type := 16#000F0000#;
|
constant CFG_BADR_LED : generic_addr_type := 16#000F0000#;
|
||||||
|
constant CFG_BADR_SW : generic_addr_type := 16#000F0004#;
|
||||||
|
|
||||||
-- mask addr
|
-- mask addr
|
||||||
constant CFG_MADR_ZERO : generic_mask_type := 0;
|
constant CFG_MADR_ZERO : generic_mask_type := 0;
|
||||||
constant CFG_MADR_FULL : generic_mask_type := 16#3FFFFF#;
|
constant CFG_MADR_FULL : generic_mask_type := 16#3FFFFF#;
|
||||||
constant CFG_MADR_MEM : generic_mask_type := 16#3FFFFF# - (IMEMSZ*4 -1);
|
constant CFG_MADR_MEM : generic_mask_type := 16#3FFFFF# - (IMEMSZ*4 -1);
|
||||||
constant CFG_MADR_DMEM : generic_mask_type := 16#3FFFFF# - (256 -1); -- uses 6 word-bits, size 256 byte
|
constant CFG_MADR_DMEM : generic_mask_type := 16#3FFFFF# - (256 -1); -- uses 6 word-bits, size 256 byte
|
||||||
constant CFG_MADR_LED : generic_mask_type := 16#3FFFFF#; -- size=1 byte
|
constant CFG_MADR_LED : generic_mask_type := 16#3FFFFF#; -- size=1 byte
|
||||||
|
constant CFG_MADR_SW : generic_mask_type := 16#3FFFFF# - (4 - 1); -- size=4 byte
|
||||||
|
|
||||||
end package config;
|
end package config;
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ use work.config.all;
|
|||||||
|
|
||||||
entity wb_switches is
|
entity wb_switches is
|
||||||
generic(
|
generic(
|
||||||
memaddr : generic_addr_type; --:= CFG_BADR_LED;
|
memaddr : generic_addr_type; --:= CFG_BADR_SW;
|
||||||
addrmask : generic_mask_type --:= CFG_MADR_LED;
|
addrmask : generic_mask_type --:= CFG_MADR_SW;
|
||||||
);
|
);
|
||||||
port(
|
port(
|
||||||
clk : in std_logic;
|
clk : in std_logic;
|
||||||
|
|||||||
@@ -22,7 +22,10 @@ port(
|
|||||||
-- external reset button
|
-- external reset button
|
||||||
rst : in std_logic;
|
rst : in std_logic;
|
||||||
|
|
||||||
led : out std_logic_vector(7 downto 0)
|
led : out std_logic_vector(7 downto 0);
|
||||||
|
|
||||||
|
btn : in std_logic_vector(4 downto 0);
|
||||||
|
sw : in std_logic_vector(15 downto 0)
|
||||||
);
|
);
|
||||||
end entity lt16soc_top;
|
end entity lt16soc_top;
|
||||||
|
|
||||||
@@ -34,7 +37,7 @@ architecture RTL of lt16soc_top is
|
|||||||
|
|
||||||
signal rst_gen : std_logic;
|
signal rst_gen : std_logic;
|
||||||
|
|
||||||
constant slv_mask_vector : std_logic_vector(0 to NWBSLV-1) := b"1110_0000_0000_0001";
|
constant slv_mask_vector : std_logic_vector(0 to NWBSLV-1) := b"1111_0000_0000_0001";
|
||||||
constant mst_mask_vector : std_logic_vector(0 to NWBMST-1) := b"1000";
|
constant mst_mask_vector : std_logic_vector(0 to NWBMST-1) := b"1000";
|
||||||
|
|
||||||
signal slvo : wb_slv_out_vector := (others=> wbs_out_none);
|
signal slvo : wb_slv_out_vector := (others=> wbs_out_none);
|
||||||
@@ -182,4 +185,12 @@ begin
|
|||||||
clk,rst_gen,led,slvi(CFG_LED),slvo(CFG_LED)
|
clk,rst_gen,led,slvi(CFG_LED),slvo(CFG_LED)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
swdev : wb_switches
|
||||||
|
generic map(
|
||||||
|
CFG_BADR_SW,CFG_MADR_SW
|
||||||
|
)
|
||||||
|
port map(
|
||||||
|
clk,rst_gen,slvi(CFG_SW),slvo(CFG_SW), btn, sw
|
||||||
|
);
|
||||||
|
|
||||||
end architecture RTL;
|
end architecture RTL;
|
||||||
|
|||||||
@@ -9,22 +9,22 @@ create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {cl
|
|||||||
|
|
||||||
|
|
||||||
##Switches
|
##Switches
|
||||||
#set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 } [get_ports { sw[0] }]; #IO_L24N_T3_RS0_15 Sch=sw[0]
|
set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 } [get_ports { sw[0] }]; #IO_L24N_T3_RS0_15 Sch=sw[0]
|
||||||
#set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 } [get_ports { sw[1] }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=sw[1]
|
set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 } [get_ports { sw[1] }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=sw[1]
|
||||||
#set_property -dict { PACKAGE_PIN M13 IOSTANDARD LVCMOS33 } [get_ports { sw[2] }]; #IO_L6N_T0_D08_VREF_14 Sch=sw[2]
|
set_property -dict { PACKAGE_PIN M13 IOSTANDARD LVCMOS33 } [get_ports { sw[2] }]; #IO_L6N_T0_D08_VREF_14 Sch=sw[2]
|
||||||
#set_property -dict { PACKAGE_PIN R15 IOSTANDARD LVCMOS33 } [get_ports { sw[3] }]; #IO_L13N_T2_MRCC_14 Sch=sw[3]
|
set_property -dict { PACKAGE_PIN R15 IOSTANDARD LVCMOS33 } [get_ports { sw[3] }]; #IO_L13N_T2_MRCC_14 Sch=sw[3]
|
||||||
#set_property -dict { PACKAGE_PIN R17 IOSTANDARD LVCMOS33 } [get_ports { sw[4] }]; #IO_L12N_T1_MRCC_14 Sch=sw[4]
|
set_property -dict { PACKAGE_PIN R17 IOSTANDARD LVCMOS33 } [get_ports { sw[4] }]; #IO_L12N_T1_MRCC_14 Sch=sw[4]
|
||||||
#set_property -dict { PACKAGE_PIN T18 IOSTANDARD LVCMOS33 } [get_ports { sw[5] }]; #IO_L7N_T1_D10_14 Sch=sw[5]
|
set_property -dict { PACKAGE_PIN T18 IOSTANDARD LVCMOS33 } [get_ports { sw[5] }]; #IO_L7N_T1_D10_14 Sch=sw[5]
|
||||||
#set_property -dict { PACKAGE_PIN U18 IOSTANDARD LVCMOS33 } [get_ports { sw[6] }]; #IO_L17N_T2_A13_D29_14 Sch=sw[6]
|
set_property -dict { PACKAGE_PIN U18 IOSTANDARD LVCMOS33 } [get_ports { sw[6] }]; #IO_L17N_T2_A13_D29_14 Sch=sw[6]
|
||||||
#set_property -dict { PACKAGE_PIN R13 IOSTANDARD LVCMOS33 } [get_ports { sw[7] }]; #IO_L5N_T0_D07_14 Sch=sw[7]
|
set_property -dict { PACKAGE_PIN R13 IOSTANDARD LVCMOS33 } [get_ports { sw[7] }]; #IO_L5N_T0_D07_14 Sch=sw[7]
|
||||||
#set_property -dict { PACKAGE_PIN T8 IOSTANDARD LVCMOS18 } [get_ports { sw[8] }]; #IO_L24N_T3_34 Sch=sw[8]
|
set_property -dict { PACKAGE_PIN T8 IOSTANDARD LVCMOS18 } [get_ports { sw[8] }]; #IO_L24N_T3_34 Sch=sw[8]
|
||||||
#set_property -dict { PACKAGE_PIN U8 IOSTANDARD LVCMOS18 } [get_ports { sw[9] }]; #IO_25_34 Sch=sw[9]
|
set_property -dict { PACKAGE_PIN U8 IOSTANDARD LVCMOS18 } [get_ports { sw[9] }]; #IO_25_34 Sch=sw[9]
|
||||||
#set_property -dict { PACKAGE_PIN R16 IOSTANDARD LVCMOS33 } [get_ports { sw[10] }]; #IO_L15P_T2_DQS_RDWR_B_14 Sch=sw[10]
|
set_property -dict { PACKAGE_PIN R16 IOSTANDARD LVCMOS33 } [get_ports { sw[10] }]; #IO_L15P_T2_DQS_RDWR_B_14 Sch=sw[10]
|
||||||
#set_property -dict { PACKAGE_PIN T13 IOSTANDARD LVCMOS33 } [get_ports { sw[11] }]; #IO_L23P_T3_A03_D19_14 Sch=sw[11]
|
set_property -dict { PACKAGE_PIN T13 IOSTANDARD LVCMOS33 } [get_ports { sw[11] }]; #IO_L23P_T3_A03_D19_14 Sch=sw[11]
|
||||||
#set_property -dict { PACKAGE_PIN H6 IOSTANDARD LVCMOS33 } [get_ports { sw[12] }]; #IO_L24P_T3_35 Sch=sw[12]
|
set_property -dict { PACKAGE_PIN H6 IOSTANDARD LVCMOS33 } [get_ports { sw[12] }]; #IO_L24P_T3_35 Sch=sw[12]
|
||||||
#set_property -dict { PACKAGE_PIN U12 IOSTANDARD LVCMOS33 } [get_ports { sw[13] }]; #IO_L20P_T3_A08_D24_14 Sch=sw[13]
|
set_property -dict { PACKAGE_PIN U12 IOSTANDARD LVCMOS33 } [get_ports { sw[13] }]; #IO_L20P_T3_A08_D24_14 Sch=sw[13]
|
||||||
#set_property -dict { PACKAGE_PIN U11 IOSTANDARD LVCMOS33 } [get_ports { sw[14] }]; #IO_L19N_T3_A09_D25_VREF_14 Sch=sw[14]
|
set_property -dict { PACKAGE_PIN U11 IOSTANDARD LVCMOS33 } [get_ports { sw[14] }]; #IO_L19N_T3_A09_D25_VREF_14 Sch=sw[14]
|
||||||
#set_property -dict { PACKAGE_PIN V10 IOSTANDARD LVCMOS33 } [get_ports { sw[15] }]; #IO_L21P_T3_DQS_14 Sch=sw[15]
|
set_property -dict { PACKAGE_PIN V10 IOSTANDARD LVCMOS33 } [get_ports { sw[15] }]; #IO_L21P_T3_DQS_14 Sch=sw[15]
|
||||||
|
|
||||||
## LEDs
|
## LEDs
|
||||||
set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L18P_T2_A24_15 Sch=led[0]
|
set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L18P_T2_A24_15 Sch=led[0]
|
||||||
@@ -72,11 +72,11 @@ set_property -dict { PACKAGE_PIN U16 IOSTANDARD LVCMOS33 } [get_ports { led[7]
|
|||||||
|
|
||||||
##Buttons
|
##Buttons
|
||||||
set_property -dict { PACKAGE_PIN C12 IOSTANDARD LVCMOS33 } [get_ports { rst }]; #IO_L3P_T0_DQS_AD1P_15 Sch=cpu_resetn
|
set_property -dict { PACKAGE_PIN C12 IOSTANDARD LVCMOS33 } [get_ports { rst }]; #IO_L3P_T0_DQS_AD1P_15 Sch=cpu_resetn
|
||||||
#set_property -dict { PACKAGE_PIN N17 IOSTANDARD LVCMOS33 } [get_ports { BTNC }]; #IO_L9P_T1_DQS_14 Sch=btnc
|
set_property -dict { PACKAGE_PIN N17 IOSTANDARD LVCMOS33 } [get_ports { BTNC }]; #IO_L9P_T1_DQS_14 Sch=btnc
|
||||||
#set_property -dict { PACKAGE_PIN M18 IOSTANDARD LVCMOS33 } [get_ports { BTNU }]; #IO_L4N_T0_D05_14 Sch=btnu
|
set_property -dict { PACKAGE_PIN M18 IOSTANDARD LVCMOS33 } [get_ports { BTNU }]; #IO_L4N_T0_D05_14 Sch=btnu
|
||||||
#set_property -dict { PACKAGE_PIN P17 IOSTANDARD LVCMOS33 } [get_ports { BTNL }]; #IO_L12P_T1_MRCC_14 Sch=btnl
|
set_property -dict { PACKAGE_PIN P17 IOSTANDARD LVCMOS33 } [get_ports { BTNL }]; #IO_L12P_T1_MRCC_14 Sch=btnl
|
||||||
#set_property -dict { PACKAGE_PIN M17 IOSTANDARD LVCMOS33 } [get_ports { BTNR }]; #IO_L10N_T1_D15_14 Sch=btnr
|
set_property -dict { PACKAGE_PIN M17 IOSTANDARD LVCMOS33 } [get_ports { BTNR }]; #IO_L10N_T1_D15_14 Sch=btnr
|
||||||
#set_property -dict { PACKAGE_PIN P18 IOSTANDARD LVCMOS33 } [get_ports { BTND }]; #IO_L9N_T1_DQS_D13_14 Sch=btnd
|
set_property -dict { PACKAGE_PIN P18 IOSTANDARD LVCMOS33 } [get_ports { BTND }]; #IO_L9N_T1_DQS_D13_14 Sch=btnd
|
||||||
|
|
||||||
|
|
||||||
##Pmod Headers
|
##Pmod Headers
|
||||||
|
|||||||
Reference in New Issue
Block a user