Commit ceb1897b authored by Tomasz Wlostowski's avatar Tomasz Wlostowski

top/scb_6ports: new swcore and I2C master for mini-backplane

parent c34c4cc5
...@@ -157,13 +157,15 @@ NET "gtx_txp_o[5]" LOC="AF1"; ...@@ -157,13 +157,15 @@ NET "gtx_txp_o[5]" LOC="AF1";
NET "gtx_txn_o[5]" LOC="AF2"; NET "gtx_txn_o[5]" LOC="AF2";
NET "mbl_scl_b" LOC="AG32"; #GPIO36
NET "mbl_sda_b" LOC="AF31"; #GPIO37
NET "gtx_sfp_tx_dis_o[0]" LOC="AD29"; NET "gtx_sfp_tx_dis_o[0]" LOC="AD29";
NET "gtx_sfp_tx_dis_o[1]" LOC="AA29"; NET "gtx_sfp_tx_dis_o[1]" LOC="AA29";
NET "gtx_sfp_tx_dis_o[2]" LOC="AC29"; NET "gtx_sfp_tx_dis_o[2]" LOC="AC29";
NET "gtx_sfp_tx_dis_o[3]" LOC="AD31"; #GPIO30 NET "gtx_sfp_tx_dis_o[3]" LOC="AD31"; #GPIO30
NET "gtx_sfp_tx_dis_o[4]" LOC="AC28"; #GPIO33 NET "gtx_sfp_tx_dis_o[4]" LOC="AC28"; #GPIO33
NET "gtx_sfp_tx_dis_o[5]" LOC="AG32"; #GPIO36 #NET "gtx_sfp_tx_dis_o[5]" LOC="AG32"; #GPIO36
NET "led_link_o[0]" LOC="AA26"; #GPIO14 NET "led_link_o[0]" LOC="AA26"; #GPIO14
NET "led_link_o[1]" LOC="AC30"; #GPIO13 NET "led_link_o[1]" LOC="AC30"; #GPIO13
NET "led_link_o[2]" LOC="AA31"; #GPIO11 NET "led_link_o[2]" LOC="AA31"; #GPIO11
...@@ -191,9 +193,9 @@ TIMESPEC TS_fpga_clk_ref_n_i = PERIOD "fpga_clk_ref_n_i" 16 ns HIGH 50%; ...@@ -191,9 +193,9 @@ TIMESPEC TS_fpga_clk_ref_n_i = PERIOD "fpga_clk_ref_n_i" 16 ns HIGH 50%;
NET "fpga_clk_ref_p_i" TNM_NET = fpga_clk_ref_p_i; NET "fpga_clk_ref_p_i" TNM_NET = fpga_clk_ref_p_i;
TIMESPEC TS_fpga_clk_ref_p_i = PERIOD "fpga_clk_ref_p_i" 16 ns HIGH 50%; TIMESPEC TS_fpga_clk_ref_p_i = PERIOD "fpga_clk_ref_p_i" 16 ns HIGH 50%;
NET "fpga_clk_aux_n_i" TNM_NET = fpga_clk_aux_n_i; NET "fpga_clk_aux_n_i" TNM_NET = fpga_clk_aux_n_i;
TIMESPEC TS_fpga_clk_aux_n_i = PERIOD "fpga_clk_aux_n_i" 16 ns HIGH 50%; TIMESPEC TS_fpga_clk_aux_n_i = PERIOD "fpga_clk_aux_n_i" 5 ns HIGH 50%;
NET "fpga_clk_aux_p_i" TNM_NET = fpga_clk_aux_p_i; NET "fpga_clk_aux_p_i" TNM_NET = fpga_clk_aux_p_i;
TIMESPEC TS_fpga_clk_aux_p_i = PERIOD "fpga_clk_aux_p_i" 16 ns HIGH 50%; TIMESPEC TS_fpga_clk_aux_p_i = PERIOD "fpga_clk_aux_p_i" 5 ns HIGH 50%;
NET "gen_phys[0].U_PHY/rx_rec_clk_bufin" TNM_NET = gen_phys[0].U_PHY/rx_rec_clk_bufin; NET "gen_phys[0].U_PHY/rx_rec_clk_bufin" TNM_NET = gen_phys[0].U_PHY/rx_rec_clk_bufin;
TIMESPEC TS_gen_phys_0__U_PHY_rx_rec_clk_bufin = PERIOD "gen_phys[0].U_PHY/rx_rec_clk_bufin" 16 ns HIGH 50%; TIMESPEC TS_gen_phys_0__U_PHY_rx_rec_clk_bufin = PERIOD "gen_phys[0].U_PHY/rx_rec_clk_bufin" 16 ns HIGH 50%;
NET "gen_phys[1].U_PHY/rx_rec_clk_bufin" TNM_NET = gen_phys[1].U_PHY/rx_rec_clk_bufin; NET "gen_phys[1].U_PHY/rx_rec_clk_bufin" TNM_NET = gen_phys[1].U_PHY/rx_rec_clk_bufin;
......
...@@ -120,7 +120,10 @@ entity scb_top_synthesis is ...@@ -120,7 +120,10 @@ entity scb_top_synthesis is
gtx_sfp_tx_dis_o : out std_logic_vector(g_num_ports-1 downto 0); gtx_sfp_tx_dis_o : out std_logic_vector(g_num_ports-1 downto 0);
led_link_o : out std_logic_vector(g_num_ports-1 downto 0); led_link_o : out std_logic_vector(g_num_ports-1 downto 0);
led_act_o : out std_logic_vector(g_num_ports-1 downto 0) led_act_o : out std_logic_vector(g_num_ports-1 downto 0);
mbl_scl_b: inout std_logic;
mbl_sda_b: inout std_logic
); );
end scb_top_synthesis; end scb_top_synthesis;
...@@ -209,7 +212,14 @@ architecture Behavioral of scb_top_synthesis is ...@@ -209,7 +212,14 @@ architecture Behavioral of scb_top_synthesis is
phys_i : in t_phyif_input_array(g_num_ports-1 downto 0); phys_i : in t_phyif_input_array(g_num_ports-1 downto 0);
led_link_o : out std_logic_vector(g_num_ports-1 downto 0); led_link_o : out std_logic_vector(g_num_ports-1 downto 0);
led_act_o : out std_logic_vector(g_num_ports-1 downto 0); led_act_o : out std_logic_vector(g_num_ports-1 downto 0);
gpio_i : in std_logic_vector(31 downto 0) := x"00000000") ; gpio_i : in std_logic_vector(31 downto 0) := x"00000000";
i2c_mbl0_scl_oen_o : out std_logic;
i2c_mbl0_scl_o : out std_logic;
i2c_mbl0_scl_i : in std_logic := '1';
i2c_mbl0_sda_oen_o : out std_logic;
i2c_mbl0_sda_o : out std_logic;
i2c_mbl0_sda_i : in std_logic := '1'
) ;
end component; end component;
signal to_phys : t_phyif_output_array(g_num_ports-1 downto 0); signal to_phys : t_phyif_output_array(g_num_ports-1 downto 0);
...@@ -225,6 +235,11 @@ architecture Behavioral of scb_top_synthesis is ...@@ -225,6 +235,11 @@ architecture Behavioral of scb_top_synthesis is
signal top_master_in, bridge_master_in : t_wishbone_master_in; signal top_master_in, bridge_master_in : t_wishbone_master_in;
signal top_master_out, bridge_master_out : t_wishbone_master_out; signal top_master_out, bridge_master_out : t_wishbone_master_out;
signal i2c_mbl0_scl_oen : std_logic;
signal i2c_mbl0_scl_out : std_logic;
signal i2c_mbl0_sda_oen : std_logic;
signal i2c_mbl0_sda_out : std_logic;
component chipscope_icon component chipscope_icon
port ( port (
CONTROL0 : inout std_logic_vector(35 downto 0)); CONTROL0 : inout std_logic_vector(35 downto 0));
...@@ -247,6 +262,10 @@ architecture Behavioral of scb_top_synthesis is ...@@ -247,6 +262,10 @@ architecture Behavioral of scb_top_synthesis is
signal TRIG3 : std_logic_vector(31 downto 0); signal TRIG3 : std_logic_vector(31 downto 0);
begin begin
mbl_scl_b <= i2c_mbl0_scl_out when i2c_mbl0_scl_oen = '0' else 'Z';
mbl_sda_b <= i2c_mbl0_sda_out when i2c_mbl0_sda_oen = '0' else 'Z';
--chipscope_icon_1 : chipscope_icon --chipscope_icon_1 : chipscope_icon
-- port map ( -- port map (
-- CONTROL0 => CONTROL); -- CONTROL0 => CONTROL);
...@@ -489,8 +508,14 @@ begin ...@@ -489,8 +508,14 @@ begin
phys_o => to_phys, phys_o => to_phys,
phys_i => from_phys, phys_i => from_phys,
led_link_o => led_link_o, led_link_o => led_link_o,
led_act_o => led_act_o); led_act_o => led_act_o,
i2c_mbl0_scl_oen_o => i2c_mbl0_scl_oen,
i2c_mbl0_scl_o => i2c_mbl0_scl_out,
i2c_mbl0_scl_i => mbl_scl_b,
i2c_mbl0_sda_oen_o => i2c_mbl0_sda_oen,
i2c_mbl0_sda_o => i2c_mbl0_sda_out,
i2c_mbl0_sda_i => mbl_scl_b);
-- end generate gen_with_top; -- end generate gen_with_top;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment