testAtanFP.vhd


1
library IEEE;
2
use IEEE.STD_LOGIC_1164.all;
3
4
entity testbnch is
5
end entity TESTBNCH;
6
7
architecture stimulus of TESTBNCH is
8
------------------------------------------------
9
COMPONENT arctanFP is
10
  port (nrst    : in std_logic;
11
      clk     : in std_logic;
12
      ceatan     : in std_logic;-- startimpuls afkt
13
      Xinp      :in std_logic_vector(31 downto 0);-- input X FP FP  format
14
      Yinp      :in std_logic_vector(31 downto 0);-- input Y FP FP  format
15
      outvalid    :OUT std_logic:= '0';
16
      atanFPo    :OUT std_logic_vector(31 downto 0):=X"00000000"-- output Winkel(rad) in FP  format
17
      );
18
end COMPONENT;
19
20
--====================================================================
21
  constant sim_cyc: time := 10 ns; -- 10 ns=100 MHz = system clk,clk =100Mhz
22
23
--======================================================
24
    signal tb_nrst         : std_logic  := '0';
25
    signal tb_clk          : std_logic  := '0';
26
   signal tb_ceatan        : std_logic  := '0';
27
    signal tb_Xinp          : std_logic_vector(31 downto 0) := (others => '0');  --input X FP FP  format
28
    signal tb_Yinp           : std_logic_vector(31 downto 0) := (others => '0'); --input Y FP FP  format
29
    signal tb_atanFPo           : std_logic_vector(31 downto 0) := (others => '0');  --output Winkel(rad) in FP  format
30
    SIGNAL tb_outvalid      : std_logic  := '0';
31
  
32
---===============================================================================================
33
begin
34
------------------------------------------------
35
UUT:arctanFP
36
    port map
37
    (
38
     nrst     => tb_nrst,     -- : in  std_logic;
39
        clk     => tb_clk,      -- : in  std_logic;
40
      ceatan  => tb_ceatan, -- startimpuls afkt
41
      Xinp   => tb_Xinp,  -- input X FP FP  format
42
      Yinp   => tb_Yinp,  -- input Y FP FP  format
43
      outvalid => tb_outvalid,
44
      atanFPo => tb_atanFPo   -- output Winkel(rad) in FP  format
45
      );
46
--====================================================================
47
48
-------------------------------------------------------------------
49
--==========================================================
50
----------CLK= 100 MHz-----------------------------
51
    CLK_1: process
52
    begin
53
       tb_clk <= '0';
54
       WAIT FOR (sim_cyc*2 - 1 ns);
55
    WHILE TRUE LOOP
56
      tb_clk <= NOT tb_clk;
57
          wait for (sim_cyc);--simcyc*2/2
58
        END LOOP;    
59
    end process;
60
61
---------------------------------------------------------------
62
    stimulus: process
63
    begin
64
      tb_nrst <= '0';
65
      WAIT for 5 us;
66
      tb_nrst <= '1';-- reseted 
67
      -----------------------------------
68
      -------45Grd = 0.785398163 -----
69
      -------30Grd = 0.523598776 -----
70
      -----------------------------------
71
      --tb_Xinp <= X"3f800000";--1.0
72
      tb_Xinp <= X"3f032916";-- 0.512345678
73
      tb_Yinp <= X"3f032916";--0.512345678
74
     --------------------------
75
     tb_ceatan  <= '1'; -- startimpuls
76
     WAIT FOR sim_cyc*2;
77
     tb_ceatan  <= '0';
78
     ---------------------------
79
      
80
        wait;
81
    end process;
82
   
83
84
85
end architecture stimulus;