Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

TB error

Status
Not open for further replies.

Kgonz

Newbie level 5
Joined
Mar 9, 2023
Messages
10
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
221
Hi all im trying to write a test bench for a SPI Slave module i made but i keep getting a bug saying expecting function or procedure or impure or pure at line 11

below is a copy of my TB

Code:
library IEEE;
use IEEE.std_logic_1164.all;
entity Spi_practice2_tb is
end Spi_practice2_tb;

architecture bench of Spi_practice2_tb is

component SPI_SLAVE1
    generic(
        WORD_SIZE : natural := 8;
        );
    port(CLK,RST,SCLK,CS_N,MOSI,DIN_VLD: in std_logic;
         MISO,DIN_RDY,DOUT_VLD: out std_logic;
         DIN: in std_logic_vector;
         DOUT: out std_logic_vector);
end component;

signal CLK,RST,SCLK,CS_N,MOSI,DIN_VLD: std_logic;
signal MISO,DIN_RDY,DOUT_VLD: std_logic;
signal DIN: std_logic_vector;
signal DOUT: std_logic_vector;
constant clock_period: time := 10 ns;
signal stop_the_clock:boolean;
constant BIT_CNT_WIDTH : natural);

    signal sclk_meta          : std_logic;
    signal cs_n_meta          : std_logic;
    signal mosi_meta          : std_logic;
    signal sclk_reg           : std_logic;
    signal cs_n_reg           : std_logic;
    signal mosi_reg           : std_logic;
    signal spi_clk_reg        : std_logic;
    signal spi_clk_redge_en   : std_logic;
    signal spi_clk_fedge_en   : std_logic;
    signal bit_cnt            : std_logic;
    signal bit_cnt_max        : std_logic;
    signal last_bit_en        : std_logic;
    signal load_data_en       : std_logic;
    signal data_shreg         : std_logic_vector;
    signal slave_ready        : std_logic;
    signal shreg_busy         : std_logic;
    signal rx_data_vld        : std_logic;


begin
PM: entity work.SPI_SLAVE1
    generic map
    (WORD_SIZE => 8
     );
port map (CLK => CLK,
      RST => RST,
      SCLK => SCLK,
      CS_N => CS_N,
      MOSI => MOSI,
      DIN  => DIN,
      DIN_VLD => DIN_VLD,
      MISO => MISO,
      DIN_RDY => DIN_RDY,
      DOUT => DOUT,
      DOUT_VLD => DOUT_VLD);

process
begin
RST <= '1';
wait for clock_period;
spi_clk_fedge_en <= '1';
cs_n_reg <= '0';
wait for clock_period;
DIN_VLD <= '1';
cs_n_reg <= '1';
rx_data_vld <= '1';
wait;
end process;

process -- clock generation
begin
while not stop_the_clock loop
CLK <= '0';
wait for clock_period / 2;
CLK <= '1';
wait for clock_period / 2;
end loop;
wait;


end process;
end;
 
Last edited by a moderator:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top