Commit 1fdb8ecb authored by Tristan Gingold's avatar Tristan Gingold

vmecore_test: adjust to xvme64x_core changes.

parent b0f15427
...@@ -23,13 +23,13 @@ NET "vme_berr_o" LOC = R3; ...@@ -23,13 +23,13 @@ NET "vme_berr_o" LOC = R3;
NET "vme_as_n_i" LOC = P6; NET "vme_as_n_i" LOC = P6;
NET "vme_addr_oe_n_o" LOC = N4; NET "vme_addr_oe_n_o" LOC = N4;
NET "vme_addr_dir_o" LOC = N5; NET "vme_addr_dir_o" LOC = N5;
NET "vme_irq_n_o[7]" LOC = R7; NET "vme_irq_o[7]" LOC = R7;
NET "vme_irq_n_o[6]" LOC = AH2; NET "vme_irq_o[6]" LOC = AH2;
NET "vme_irq_n_o[5]" LOC = AF2; NET "vme_irq_o[5]" LOC = AF2;
NET "vme_irq_n_o[4]" LOC = N9; NET "vme_irq_o[4]" LOC = N9;
NET "vme_irq_n_o[3]" LOC = N10; NET "vme_irq_o[3]" LOC = N10;
NET "vme_irq_n_o[2]" LOC = AH4; NET "vme_irq_o[2]" LOC = AH4;
NET "vme_irq_n_o[1]" LOC = AG4; NET "vme_irq_o[1]" LOC = AG4;
NET "vme_gap_i" LOC = M6; NET "vme_gap_i" LOC = M6;
NET "vme_ga_i[4]" LOC = V9; NET "vme_ga_i[4]" LOC = V9;
NET "vme_ga_i[3]" LOC = V10; NET "vme_ga_i[3]" LOC = V10;
...@@ -123,13 +123,13 @@ NET "vme_berr_o" IOSTANDARD = "LVCMOS33"; ...@@ -123,13 +123,13 @@ NET "vme_berr_o" IOSTANDARD = "LVCMOS33";
NET "vme_as_n_i" IOSTANDARD = "LVCMOS33"; NET "vme_as_n_i" IOSTANDARD = "LVCMOS33";
NET "vme_addr_oe_n_o" IOSTANDARD = "LVCMOS33"; NET "vme_addr_oe_n_o" IOSTANDARD = "LVCMOS33";
NET "vme_addr_dir_o" IOSTANDARD = "LVCMOS33"; NET "vme_addr_dir_o" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[7]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[7]" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[6]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[6]" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[5]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[5]" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[4]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[4]" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[3]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[3]" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[2]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[2]" IOSTANDARD = "LVCMOS33";
NET "vme_irq_n_o[1]" IOSTANDARD = "LVCMOS33"; NET "vme_irq_o[1]" IOSTANDARD = "LVCMOS33";
NET "vme_gap_i" IOSTANDARD = "LVCMOS33"; NET "vme_gap_i" IOSTANDARD = "LVCMOS33";
NET "vme_ga_i[4]" IOSTANDARD = "LVCMOS33"; NET "vme_ga_i[4]" IOSTANDARD = "LVCMOS33";
NET "vme_ga_i[3]" IOSTANDARD = "LVCMOS33"; NET "vme_ga_i[3]" IOSTANDARD = "LVCMOS33";
...@@ -370,10 +370,10 @@ NET "vme_sysreset_n_i" TIG; ...@@ -370,10 +370,10 @@ NET "vme_sysreset_n_i" TIG;
# Force PPS output to always be placed as IOB register # Force PPS output to always be placed as IOB register
#INST "cmp_xwrc_board_svec/cmp_board_common/cmp_xwr_core/wrpc/pps_gen/wrapped_ppsgen/pps_out_o" IOB = FORCE; #INST "cmp_xwrc_board_svec/cmp_board_common/cmp_xwr_core/wrpc/pps_gen/wrapped_ppsgen/pps_out_o" IOB = FORCE;
INST "vme_irq_n_o[7]" IOB=FORCE; INST "vme_irq_o[7]" IOB=FORCE;
INST "vme_irq_n_o[6]" IOB=FORCE; INST "vme_irq_o[6]" IOB=FORCE;
INST "vme_irq_n_o[5]" IOB=FORCE; INST "vme_irq_o[5]" IOB=FORCE;
INST "vme_irq_n_o[4]" IOB=FORCE; INST "vme_irq_o[4]" IOB=FORCE;
INST "vme_irq_n_o[3]" IOB=FORCE; INST "vme_irq_o[3]" IOB=FORCE;
INST "vme_irq_n_o[2]" IOB=FORCE; INST "vme_irq_o[2]" IOB=FORCE;
INST "vme_irq_n_o[1]" IOB=FORCE; INST "vme_irq_o[1]" IOB=FORCE;
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
-- Author(s) : Tristan Gingold <tristan.gingold@cern.ch> -- Author(s) : Tristan Gingold <tristan.gingold@cern.ch>
-- Company : CERN (BE-CO-HT) -- Company : CERN (BE-CO-HT)
-- Created : 2017-09-19 -- Created : 2017-09-19
-- Last update: 2017-11-14 -- Last update: 2017-11-24
-- Standard : VHDL'93 -- Standard : VHDL'93
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Description: Top-level file for the test design . -- Description: Top-level file for the test design .
...@@ -87,7 +87,7 @@ entity svec_vmecore_test_top is ...@@ -87,7 +87,7 @@ entity svec_vmecore_test_top is
vme_as_n_i : in std_logic; vme_as_n_i : in std_logic;
vme_addr_oe_n_o : out std_logic; vme_addr_oe_n_o : out std_logic;
vme_addr_dir_o : out std_logic; vme_addr_dir_o : out std_logic;
vme_irq_n_o : out std_logic_vector(7 downto 1); vme_irq_o : out std_logic_vector(7 downto 1);
vme_ga_i : in std_logic_vector(4 downto 0); vme_ga_i : in std_logic_vector(4 downto 0);
vme_data_b : inout std_logic_vector(31 downto 0); vme_data_b : inout std_logic_vector(31 downto 0);
vme_am_i : in std_logic_vector(5 downto 0); vme_am_i : in std_logic_vector(5 downto 0);
...@@ -187,9 +187,11 @@ architecture top of svec_vmecore_test_top is ...@@ -187,9 +187,11 @@ architecture top of svec_vmecore_test_top is
signal vme_data_b_out : std_logic_vector(31 downto 0); signal vme_data_b_out : std_logic_vector(31 downto 0);
signal vme_addr_b_out : std_logic_vector(31 downto 1); signal vme_addr_b_out : std_logic_vector(31 downto 1);
signal vme_lword_n_b_out : std_logic; signal vme_lword_n_b_out : std_logic;
signal Vme_data_dir_int : std_logic; signal vme_data_dir_int : std_logic;
signal vme_addr_dir_int : std_logic; signal vme_addr_dir_int : std_logic;
signal vme_ga : std_logic_vector(5 downto 0); signal vme_ga : std_logic_vector(5 downto 0);
signal vme_berr_n_o : std_logic;
signal vme_irq_n_o : std_logic_vector(7 downto 1);
-- LEDs and GPIO -- LEDs and GPIO
signal pps : std_logic; signal pps : std_logic;
...@@ -205,8 +207,6 @@ architecture top of svec_vmecore_test_top is ...@@ -205,8 +207,6 @@ architecture top of svec_vmecore_test_top is
signal powerup_reset_cnt : unsigned(7 downto 0) := "00000000"; signal powerup_reset_cnt : unsigned(7 downto 0) := "00000000";
signal powerup_rst_n : std_logic := '0'; signal powerup_rst_n : std_logic := '0';
signal sys_locked : std_logic; signal sys_locked : std_logic;
signal s_irq : std_logic;
begin -- architecture top begin -- architecture top
p_powerup_reset : process(clk_sys) p_powerup_reset : process(clk_sys)
...@@ -288,50 +288,50 @@ begin -- architecture top ...@@ -288,50 +288,50 @@ begin -- architecture top
-- VME64x Core and buffers -- VME64x Core and buffers
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
inst_vme_core : vme64x_core -- BERR and IRQ vme signals are inverted by the drivers. See schematics.
vme_berr_o <= not vme_berr_n_o;
vme_irq_o <= not vme_irq_n_o;
inst_vme_core : xvme64x_core
generic map ( generic map (
g_CLOCK_PERIOD => 8, g_CLOCK_PERIOD => 8,
g_USER_CSR_EXT => False) g_DECODE_AM => True,
g_USER_CSR_EXT => False,
g_MANUFACTURER_ID => c_CERN_ID,
g_BOARD_ID => c_SVEC_ID,
g_REVISION_ID => c_SVEC_REVISION_ID,
g_PROGRAM_ID => c_PROGRAM_ID)
port map ( port map (
clk_i => clk_sys, clk_i => clk_sys,
rst_n_i => local_reset_n, rst_n_i => local_reset_n,
VME_AS_n_i => vme_as_n_i, vme_i.as_n => vme_as_n_i,
VME_RST_n_i => vme_sysreset_n_i, vme_i.rst_n => vme_sysreset_n_i,
VME_WRITE_n_i => vme_write_n_i, vme_i.write_n => vme_write_n_i,
VME_AM_i => vme_am_i, vme_i.am => vme_am_i,
VME_DS_n_i => vme_ds_n_i, vme_i.ds_n => vme_ds_n_i,
VME_GA_i => vme_ga, vme_i.ga => vme_ga,
VME_BERR_o => vme_berr_o, vme_i.lword_n => vme_lword_n_b,
VME_DTACK_n_o => vme_dtack_n_o, vme_i.addr => vme_addr_b,
VME_RETRY_n_o => vme_retry_n_o, vme_i.data => vme_data_b,
VME_RETRY_OE_o => vme_retry_oe_o, vme_i.iack_n => vme_iack_n_i,
VME_LWORD_n_i => vme_lword_n_b, vme_i.iackin_n => vme_iackin_n_i,
VME_LWORD_n_o => vme_lword_n_b_out, vme_o.berr_n => vme_berr_n_o,
VME_ADDR_i => vme_addr_b, vme_o.dtack_n => vme_dtack_n_o,
VME_DATA_o => vme_data_b_out, vme_o.retry_n => vme_retry_n_o,
VME_ADDR_o => vme_addr_b_out, vme_o.retry_oe => vme_retry_oe_o,
VME_DATA_i => vme_data_b, vme_o.lword_n => vme_lword_n_b_out,
VME_IRQ_o => vme_irq_n_o, vme_o.data => vme_data_b_out,
VME_IACK_n_i => vme_iack_n_i, vme_o.addr => vme_addr_b_out,
VME_IACKIN_n_i => vme_iackin_n_i, vme_o.irq_n => vme_irq_n_o,
VME_IACKOUT_n_o => vme_iackout_n_o, vme_o.iackout_n => vme_iackout_n_o,
VME_DTACK_OE_o => vme_dtack_oe_o, vme_o.dtack_oe => vme_dtack_oe_o,
VME_DATA_DIR_o => vme_data_dir_int, vme_o.data_dir => vme_data_dir_int,
VME_DATA_OE_N_o => vme_data_oe_n_o, vme_o.data_oe_n => vme_data_oe_n_o,
VME_ADDR_DIR_o => vme_addr_dir_int, vme_o.addr_dir => vme_addr_dir_int,
VME_ADDR_OE_N_o => vme_addr_oe_n_o, vme_o.addr_oe_n => vme_addr_oe_n_o,
DAT_i => master_in.dat, wb_i => master_in,
DAT_o => master_out.dat, wb_o => master_out);
ADR_o => master_out.adr,
CYC_o => master_out.cyc,
ERR_i => master_in.err,
SEL_o => master_out.sel,
STB_o => master_out.stb,
ACK_i => master_in.ack,
WE_o => master_out.we,
STALL_i => master_in.stall,
irq_i => s_irq);
vme_ga <= vme_gap_i & vme_ga_i; vme_ga <= vme_gap_i & vme_ga_i;
...@@ -385,6 +385,5 @@ begin -- architecture top ...@@ -385,6 +385,5 @@ begin -- architecture top
rst_n_i => local_reset_n, rst_n_i => local_reset_n,
slave_i => master_out, slave_i => master_out,
slave_o => master_in, slave_o => master_in,
leds_o => svec_led, leds_o => svec_led);
irq_o => s_irq);
end architecture top; end architecture top;
...@@ -42,9 +42,7 @@ entity vmecore_test is ...@@ -42,9 +42,7 @@ entity vmecore_test is
slave_i : in t_wishbone_slave_in; slave_i : in t_wishbone_slave_in;
slave_o : out t_wishbone_slave_out; slave_o : out t_wishbone_slave_out;
leds_o : out std_logic_vector(15 downto 0); leds_o : out std_logic_vector(15 downto 0));
irq_o : out std_logic
);
end vmecore_test; end vmecore_test;
...@@ -221,11 +219,10 @@ begin ...@@ -221,11 +219,10 @@ begin
end process; end process;
leds_o <= leds; leds_o <= leds;
irq_o <= '1' when counter = 1 else '0'; slave_o.int <= '1' when counter = 1 else '0';
-- drive unused WB slave_o outputs -- drive unused WB slave_o outputs
slave_o.stall <= '0'; slave_o.stall <= '0';
slave_o.rty <= '0'; slave_o.rty <= '0';
slave_o.int <= '0';
end rtl; end rtl;
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