OpenCores
URL https://opencores.org/ocsvn/wrimm/wrimm/trunk

Subversion Repositories wrimm

[/] [wrimm/] [trunk/] [WrimmTestBench.vhd] - Blame information for rev 7

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 barryw
--Propery of Tecphos Inc.  See License.txt for license details
2
--Latest version of all project files available at http://opencores.org/project,wrimm
3
--See WrimmManual.pdf for the Wishbone Datasheet and implementation details.
4
--See wrimm subversion project for version history
5
 
6
library ieee;
7
  use ieee.NUMERIC_STD.all;
8
  use ieee.std_logic_1164.all;
9 6 barryw
 
10
  use work.WrimmPackage.all;
11 5 barryw
 
12
entity wrimm_top_tb is
13
end wrimm_top_tb;
14
 
15
architecture TB_ARCHITECTURE of wrimm_top_tb is
16
  component wrimm_top
17
  port(
18
    WishboneClock       : in  std_logic;
19
    WishboneReset       : out std_logic;
20
    MasterPStrobe       : in  std_logic;
21
    MasterPWrEn         : in  std_logic;
22
    MasterPCyc          : in  std_logic;
23
    MasterPAddr         : in  WbAddrType;
24
    MasterPDataToSlave  : in  WbDataType;
25
    MasterPAck          : out std_logic;
26
    MasterPErr          : out std_logic;
27
    MasterPRty          : out std_logic;
28
    MasterPDataFrSlave  : out WbDataType;
29
    MasterQStrobe       : in  std_logic;
30
    MasterQWrEn         : in  std_logic;
31
    MasterQCyc          : in  std_logic;
32
    MasterQAddr         : in  WbAddrType;
33
    MasterQDataToSlave  : in  WbDataType;
34
    MasterQAck          : out std_logic;
35
    MasterQErr          : out std_logic;
36
    MasterQRty          : out std_logic;
37
    MasterQDataFrSlave  : out WbDataType;
38
    StatusRegA          : in  std_logic_vector(0 to 7);
39
    StatusRegB          : in  std_logic_vector(0 to 7);
40
    StatusRegC          : in  std_logic_vector(0 to 7);
41
    SettingRegX         : out std_logic_vector(0 to 7);
42
    SettingRstX         : in  std_logic;
43
    SettingRegY         : out std_logic_vector(0 to 7);
44
    SettingRstY         : in  std_logic;
45
    SettingRegZ         : out std_logic_vector(0 to 7);
46
    SettingRstZ         : in  std_logic;
47
    TriggerRegR         : out std_logic;
48
    TriggerClrR         : in  std_logic;
49
    TriggerRegS         : out std_logic;
50
    TriggerClrS         : in  std_logic;
51
    TriggerRegT         : out std_logic;
52
    TriggerClrT         : in  std_logic;
53
    rstZ                : in  std_logic);
54
  end component;
55
 
56
  signal WishboneClock        : std_logic;
57
  signal MasterPStrobe        : std_logic;
58
  signal MasterPWrEn          : std_logic;
59
  signal MasterPCyc           : std_logic;
60
  signal MasterPAddr          : WbAddrType;
61
  signal MasterPDataToSlave   : WbDataType;
62
  signal MasterQStrobe        : std_logic;
63
  signal MasterQWrEn          : std_logic;
64
  signal MasterQCyc           : std_logic;
65
  signal MasterQAddr          : WbAddrType;
66
  signal MasterQDataToSlave   : WbDataType;
67
  signal StatusRegA           : std_logic_vector(0 to 7);
68
  signal StatusRegB           : std_logic_vector(0 to 7);
69
  signal StatusRegC           : std_logic_vector(0 to 7);
70
  signal SettingRstX          : std_logic;
71
  signal SettingRstY          : std_logic;
72
  signal SettingRstZ          : std_logic;
73
  signal TriggerClrR          : std_logic;
74
  signal TriggerClrS          : std_logic;
75
  signal TriggerClrT          : std_logic;
76
  signal rstZ                 : std_logic;
77
  signal WishboneReset        : std_logic;
78
  signal MasterPAck           : std_logic;
79
  signal MasterPErr           : std_logic;
80
  signal MasterPRty           : std_logic;
81
  signal MasterPDataFrSlave   : WbDataType;
82
  signal MasterQAck           : std_logic;
83
  signal MasterQErr           : std_logic;
84
  signal MasterQRty           : std_logic;
85
  signal MasterQDataFrSlave   : WbDataType;
86
  signal SettingRegX          : std_logic_vector(0 to 7);
87
  signal SettingRegY          : std_logic_vector(0 to 7);
88
  signal SettingRegZ          : std_logic_vector(0 to 7);
89
  signal TriggerRegR          : std_logic;
90
  signal TriggerRegS          : std_logic;
91
  signal TriggerRegT          : std_logic;
92
 
93
  constant clkPeriod          : time := 0.01 us; --100 MHz
94
 
95
begin
96
  UUT : wrimm_top
97
    port map (
98
      WishboneClock         => WishboneClock,
99
      WishboneReset         => WishboneReset,
100
      MasterPStrobe         => MasterPStrobe,
101
      MasterPWrEn           => MasterPWrEn,
102
      MasterPCyc            => MasterPCyc,
103
      MasterPAddr           => MasterPAddr,
104
      MasterPDataToSlave    => MasterPDataToSlave,
105
      MasterPAck            => MasterPAck,
106
      MasterPErr            => MasterPErr,
107
      MasterPRty            => MasterPRty,
108
      MasterPDataFrSlave    => MasterPDataFrSlave,
109
      MasterQStrobe         => MasterQStrobe,
110
      MasterQWrEn           => MasterQWrEn,
111
      MasterQCyc            => MasterQCyc,
112
      MasterQAddr           => MasterQAddr,
113
      MasterQDataToSlave    => MasterQDataToSlave,
114
      MasterQAck            => MasterQAck,
115
      MasterQErr            => MasterQErr,
116
      MasterQRty            => MasterQRty,
117
      MasterQDataFrSlave    => MasterQDataFrSlave,
118
      StatusRegA            => StatusRegA,
119
      StatusRegB            => StatusRegB,
120
      StatusRegC            => StatusRegC,
121
      SettingRegX           => SettingRegX,
122
      SettingRstX           => SettingRstX,
123
      SettingRegY           => SettingRegY,
124
      SettingRstY           => SettingRstY,
125
      SettingRegZ           => SettingRegZ,
126
      SettingRstZ           => SettingRstZ,
127
      TriggerRegR           => TriggerRegR,
128
      TriggerClrR           => TriggerClrR,
129
      TriggerRegS           => TriggerRegS,
130
      TriggerClrS           => TriggerClrS,
131
      TriggerRegT           => TriggerRegT,
132
      TriggerClrT           => TriggerClrT,
133
      rstZ                  => rstZ);
134
 
135
  procClk: process
136
  begin
137
    if WishBoneClock='1' then
138
      WishBoneClock <= '0';
139
    else
140
      WishBoneClock <= '1';
141
    end if;
142
    wait for clkPeriod/2;
143
  end process procClk;
144
 
145
  procRstZ: process
146
  begin
147
    rstZ  <= '0';
148
    wait for 10 ns;
149
    rstZ  <= '1';
150
    wait;
151
  end process procRstZ;
152
 
153
  procWbMasterP: process
154
  begin
155
    MasterPStrobe <= '0';
156
    MasterPWrEn   <= '0';
157
    MasterPCyc    <= '0';
158
    MasterPAddr   <= x"0";
159
    MasterPDataToSlave <= x"00";
160
    wait for clkPeriod / 10;
161
    wait for clkPeriod * 5;
162
    MasterPStrobe <= '1';
163
    MasterPWrEn   <= '1';
164
    MasterPCyc    <= '1';
165
    MasterPAddr   <= x"6";
166
    MasterPDataToSlave <= x"55";
167
    wait for clkPeriod * 2;
168
    MasterPStrobe <= '0';
169
    MasterPWrEn   <= '0';
170
    MasterPCyc    <= '0';
171
    MasterPAddr   <= x"0";
172
    MasterPDataToSlave <= x"00";
173
    wait for clkPeriod * 10;
174
    MasterPStrobe <= '1';
175
    MasterPWrEn   <= '1';
176
    MasterPCyc    <= '1';
177
    MasterPAddr   <= x"6";
178
    MasterPDataToSlave <= x"99";
179
    wait for clkPeriod * 2;
180
    MasterPStrobe <= '0';
181
    MasterPWrEn   <= '0';
182
    MasterPCyc    <= '0';
183
    MasterPAddr   <= x"0";
184
    MasterPDataToSlave <= x"00";
185
    wait;
186
  end process procWbMasterP;
187
  procWbMasterQ: process
188
  begin
189
    MasterQStrobe <= '0';
190
    MasterQWrEn   <= '0';
191
    MasterQCyc    <= '0';
192
    MasterQAddr   <= x"0";
193
    MasterQDataToSlave <= x"00";
194
    wait for clkPeriod / 10;
195
    wait for clkPeriod * 8;
196
    MasterQStrobe <= '1';
197
    MasterQWrEn   <= '1';
198
    MasterQCyc    <= '1';
199
    MasterQAddr   <= x"6";
200
    MasterQDataToSlave <= x"77";
201
    wait for clkPeriod * 2;
202
    MasterQStrobe <= '0';
203
    MasterQWrEn   <= '0';
204
    MasterQCyc    <= '0';
205
    MasterQAddr   <= x"0";
206
    MasterQDataToSlave <= x"00";
207 6 barryw
    wait for clkPeriod * 2;
208
    assert false report "Test Complete" severity warning;
209 5 barryw
  end process procWbMasterQ;
210
 
211
end TB_ARCHITECTURE;
212
 
213
configuration TESTBENCH_FOR_wrimm_top of wrimm_top_tb is
214
  for TB_ARCHITECTURE
215
    for UUT : wrimm_top
216
      use entity work.wrimm_top(structure);
217
    end for;
218
  end for;
219
end TESTBENCH_FOR_wrimm_top;
220
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.