Skip to content
Snippets Groups Projects
Commit 245b2a97 authored by BRONES Romain's avatar BRONES Romain
Browse files

Fix simulation test

* Change the testbench interface
* Add a very simple script to compile and bring up GUI
parent 9662d8e2
Branches
Tags
No related merge requests found
#!/bin/bash
# Perform compilation of all vhdl sources
# For test, only two are needed, but it helps to check syntax
# This will create xsim.dir/work
xvhdl --log test.log hdl/combpm_protocol_electron_ctrl.vhd
xvhdl --log test.log hdl/combpm_protocol_electron.vhd
xvhdl --log test.log hdl/top_combpm_electron.vhd
xvhdl --log test.log test/tb_combpm_protocol_electron.vhd
# Perform Elaboration and snapshot creation
# This will create xsim.dir/work.tb_combpm_protocol_electron
xelab tb_combpm_protocol_electron -debug typical
# Launch simulation
xsim work.tb_combpm_protocol_electron -view test/tb_combpm_protocol_electron_behav.wcfg -gui
This diff is collapsed.
...@@ -13,63 +13,47 @@ end entity; ...@@ -13,63 +13,47 @@ end entity;
architecture testbench of tb_combpm_protocol_electron is architecture testbench of tb_combpm_protocol_electron is
file file_input : text open read_mode is "input.txt"; file file_input : text open read_mode is "test/input.txt";
signal tb_clk : std_logic := '0'; signal tb_clk : std_logic := '0';
signal tb_rstn : std_logic := '1'; signal tb_rstn : std_logic := '1';
signal tb_gt_datarx : std_logic_vector(15 downto 0); signal tb_gt_datarx : std_logic_vector(15 downto 0);
signal tb_gt_datatx : std_logic_vector(15 downto 0); signal tb_gt_datatx : std_logic_vector(15 downto 0);
signal tb_gt_powergood : std_logic; signal tb_gt_powergood : std_logic;
signal tb_gt_qplllock : std_logic; signal tb_gt_qplllock : std_logic;
signal tb_gt_txclkactive : std_logic; signal tb_gt_txclkactive : std_logic;
signal tb_gt_rxclkactive : std_logic; signal tb_gt_rxclkactive : std_logic;
signal tb_gt_txresetdone : std_logic; signal tb_gt_txresetdone : std_logic;
signal tb_gt_rxresetdone : std_logic; signal tb_gt_rxresetdone : std_logic;
signal tb_gt_rxcdrlock : std_logic; signal tb_gt_rxcdrlock : std_logic;
signal tb_gt_rxbyteisaligned : std_logic; signal tb_gt_rxbyteisaligned : std_logic;
signal tb_gt_rxbyterealign : std_logic; signal tb_gt_rxbyterealign : std_logic;
signal tb_gt_rxcommadet : std_logic; signal tb_gt_rxcommadet : std_logic;
signal tb_gt_txfault : std_logic; signal tb_gt_txfault : std_logic;
signal tb_gt_rxlos : std_logic; signal tb_gt_rxlos : std_logic;
signal tb_gt_modabs : std_logic; signal tb_gt_modabs : std_logic;
signal tb_gt_rstall : std_logic; signal tb_gt_rstall : std_logic;
signal tb_gt_rxcommadeten : std_logic; signal tb_gt_rxcommadeten : std_logic;
signal tb_gt_txdisable : std_logic; signal tb_gt_txdisable : std_logic;
signal tb_m_axi_tid : std_logic_vector(0 downto 0); signal tb_m_axi_tid : std_logic_vector(0 downto 0);
signal tb_m_axi_tdest : std_logic_vector(9 downto 0); signal tb_m_axi_tdest : std_logic_vector(9 downto 0);
signal tb_m_axi_tdata : std_logic_vector(127 downto 0); signal tb_m_axi_tdata : std_logic_vector(127 downto 0);
signal tb_m_axi_tstrb : std_logic_vector(15 downto 0); signal tb_m_axi_tstrb : std_logic_vector(15 downto 0);
signal tb_m_axi_tkeep : std_logic_vector(15 downto 0); signal tb_m_axi_tkeep : std_logic_vector(15 downto 0);
signal tb_m_axi_tlast : std_logic; signal tb_m_axi_tlast : std_logic;
signal tb_m_axi_tuser : std_logic_vector(0 downto 0); signal tb_m_axi_tuser : std_logic_vector(0 downto 0);
signal tb_m_axi_tvalid : std_logic; signal tb_m_axi_tvalid : std_logic;
signal tb_m_axi_tready : std_logic; signal tb_m_axi_tready : std_logic;
signal tb_s_axi_clk : std_logic; signal tb_tx_disable_i : std_logic;
signal tb_s_axi_resetn : std_logic; signal tb_rx_commadeten_i : std_logic;
signal tb_s_axi_awaddr : std_logic_vector(7 downto 0); signal tb_srst_gt_i : std_logic;
signal tb_s_axi_awprot : std_logic_vector(2 downto 0); signal tb_frame_counter_o : std_logic_vector(15 downto 0);
signal tb_s_axi_awvalid : std_logic; signal tb_frame_error_o : std_logic;
signal tb_s_axi_awready : std_logic;
signal tb_s_axi_wdata : std_logic_vector(32-1 downto 0); signal test_done : boolean := False;
signal tb_s_axi_wstrb : std_logic_vector(32/8-1 downto 0);
signal tb_s_axi_wvalid : std_logic;
signal tb_s_axi_wready : std_logic;
signal tb_s_axi_bresp : std_logic_vector(1 downto 0);
signal tb_s_axi_bvalid : std_logic;
signal tb_s_axi_bready : std_logic;
signal tb_s_axi_araddr : std_logic_vector(7 downto 0);
signal tb_s_axi_arprot : std_logic_vector(2 downto 0);
signal tb_s_axi_arvalid : std_logic;
signal tb_s_axi_arready : std_logic;
signal tb_s_axi_rdata : std_logic_vector(32-1 downto 0);
signal tb_s_axi_rresp : std_logic_vector(1 downto 0);
signal tb_s_axi_rvalid : std_logic;
signal tb_s_axi_rready : std_logic;
signal test_done : boolean := False;
begin begin
...@@ -112,6 +96,9 @@ begin ...@@ -112,6 +96,9 @@ begin
end loop; end loop;
tb_rstn <= '0'; tb_rstn <= '0';
tb_gt_datarx <= (others => '1'); tb_gt_datarx <= (others => '1');
tb_srst_gt_i <= '0';
tb_tx_disable_i <= '1';
tb_rx_commadeten_i <= '1';
-- Wait and deassert reset -- Wait and deassert reset
for I in 0 to 10 loop for I in 0 to 10 loop
...@@ -140,18 +127,12 @@ begin ...@@ -140,18 +127,12 @@ begin
end process; end process;
--------------------
-- AXI CONNEXIONS --
--------------------
tb_s_axi_clk <= '0';
tb_s_axi_resetn <= '0';
----------------------- -----------------------
-- DUT INSTANCIATION -- -- DUT INSTANCIATION --
----------------------- -----------------------
dut_inst: entity work.combpm_protocol_electron dut_inst: entity work.combpm_protocol_electron
port map( port map(
gt_clk => tb_clk, clk => tb_clk,
rst_n => tb_rstn, rst_n => tb_rstn,
gt_datarx => tb_gt_datarx, gt_datarx => tb_gt_datarx,
gt_datatx => tb_gt_datatx, gt_datatx => tb_gt_datatx,
...@@ -180,28 +161,11 @@ begin ...@@ -180,28 +161,11 @@ begin
m_axi_tuser => tb_m_axi_tuser, m_axi_tuser => tb_m_axi_tuser,
m_axi_tvalid => tb_m_axi_tvalid, m_axi_tvalid => tb_m_axi_tvalid,
m_axi_tready => tb_m_axi_tready, m_axi_tready => tb_m_axi_tready,
S_AXI_CLK => tb_s_axi_clk, tx_disable_i => tb_tx_disable_i,
S_AXI_RESETN => tb_s_axi_resetn, rx_commadeten_i => tb_rx_commadeten_i,
S_AXI_AWADDR => tb_s_axi_awaddr, srst_gt_i => tb_srst_gt_i,
S_AXI_AWPROT => tb_s_axi_awprot, frame_counter_o => tb_frame_counter_o,
S_AXI_AWVALID => tb_s_axi_awvalid, frame_error_o => tb_frame_error_o
S_AXI_AWREADY => tb_s_axi_awready,
S_AXI_WDATA => tb_s_axi_wdata,
S_AXI_WSTRB => tb_s_axi_wstrb,
S_AXI_WVALID => tb_s_axi_wvalid,
S_AXI_WREADY => tb_s_axi_wready,
S_AXI_BRESP => tb_s_axi_bresp,
S_AXI_BVALID => tb_s_axi_bvalid,
S_AXI_BREADY => tb_s_axi_bready,
S_AXI_ARADDR => tb_s_axi_araddr,
S_AXI_ARPROT => tb_s_axi_arprot,
S_AXI_ARVALID => tb_s_axi_arvalid,
S_AXI_ARREADY => tb_s_axi_arready,
S_AXI_RDATA => tb_s_axi_rdata,
S_AXI_RRESP => tb_s_axi_rresp,
S_AXI_RVALID => tb_s_axi_rvalid,
S_AXI_RREADY => tb_s_axi_rready
); );
end architecture testbench; end architecture testbench;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment