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

Subversion Repositories rio

[/] [rio/] [branches/] [2.0.0-development/] [bench/] [vhdl/] [TestRioPacketBuffer.vhd] - Blame information for rev 51

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 magro732
-------------------------------------------------------------------------------
2
-- 
3
-- RapidIO IP Library Core
4
-- 
5
-- This file is part of the RapidIO IP library project
6
-- http://www.opencores.org/cores/rio/
7
-- 
8
-- Description
9
-- Contains automatic simulation test code to verify a RioPacketBufferWindow
10
-- implementation.
11
-- 
12
-- To Do:
13 51 magro732
-- - Update this to handle the readContentEnd being output at the last content
14
--   in a frame in the window-version. There are some errors indicated by this
15
--   testbench due to this.
16 3 magro732
-- 
17
-- Author(s): 
18
-- - Magnus Rosenius, magro732@opencores.org 
19
-- 
20
-------------------------------------------------------------------------------
21
-- 
22
-- Copyright (C) 2013 Authors and OPENCORES.ORG 
23
-- 
24
-- This source file may be used and distributed without 
25
-- restriction provided that this copyright statement is not 
26
-- removed from the file and that any derivative work contains 
27
-- the original copyright notice and the associated disclaimer. 
28
-- 
29
-- This source file is free software; you can redistribute it 
30
-- and/or modify it under the terms of the GNU Lesser General 
31
-- Public License as published by the Free Software Foundation; 
32
-- either version 2.1 of the License, or (at your option) any 
33
-- later version. 
34
-- 
35
-- This source is distributed in the hope that it will be 
36
-- useful, but WITHOUT ANY WARRANTY; without even the implied 
37
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
38
-- PURPOSE. See the GNU Lesser General Public License for more 
39
-- details. 
40
-- 
41
-- You should have received a copy of the GNU Lesser General 
42
-- Public License along with this source; if not, download it 
43
-- from http://www.opencores.org/lgpl.shtml 
44
-- 
45
-------------------------------------------------------------------------------
46
 
47
-------------------------------------------------------------------------------
48
-- TestRioPacketBuffer.
49
-------------------------------------------------------------------------------
50
 
51
library ieee;
52
use ieee.std_logic_1164.all;
53
use ieee.numeric_std.all;
54
use ieee.math_real.all;
55
library std;
56
use std.textio.all;
57
use work.rio_common.all;
58 51 magro732
use work.TestPortPackage.all;
59 3 magro732
 
60
 
61
-------------------------------------------------------------------------------
62
-- Entity for TestRioPacketBuffer.
63
-------------------------------------------------------------------------------
64
entity TestRioPacketBuffer is
65
end entity;
66
 
67
 
68
-------------------------------------------------------------------------------
69
-- Architecture for TestRioPacketBuffer.
70
-------------------------------------------------------------------------------
71
architecture TestRioPacketBufferImpl of TestRioPacketBuffer is
72
 
73
  component RioPacketBufferWindow is
74
    port(
75
      clk : in std_logic;
76
      areset_n : in std_logic;
77
 
78
      inboundWriteFrameFull_o : out std_logic;
79
      inboundWriteFrame_i : in std_logic;
80
      inboundWriteFrameAbort_i : in std_logic;
81
      inboundWriteContent_i : in std_logic;
82
      inboundWriteContentData_i : in std_logic_vector(31 downto 0);
83
      inboundReadFrameEmpty_o : out std_logic;
84
      inboundReadFrame_i : in std_logic;
85
      inboundReadFrameRestart_i : in std_logic;
86
      inboundReadFrameAborted_o : out std_logic;
87
      inboundReadContentEmpty_o : out std_logic;
88
      inboundReadContent_i : in std_logic;
89
      inboundReadContentEnd_o : out std_logic;
90
      inboundReadContentData_o : out std_logic_vector(31 downto 0);
91
 
92
      outboundWriteFrameFull_o : out std_logic;
93
      outboundWriteFrame_i : in std_logic;
94
      outboundWriteFrameAbort_i : in std_logic;
95
      outboundWriteContent_i : in std_logic;
96
      outboundWriteContentData_i : in std_logic_vector(31 downto 0);
97
      outboundReadFrameEmpty_o : out std_logic;
98
      outboundReadFrame_i : in std_logic;
99
      outboundReadFrameRestart_i : in std_logic;
100
      outboundReadFrameAborted_o : out std_logic;
101
      outboundReadWindowEmpty_o : out std_logic;
102
      outboundReadWindowReset_i : in std_logic;
103
      outboundReadWindowNext_i : in std_logic;
104
      outboundReadContentEmpty_o : out std_logic;
105
      outboundReadContent_i : in std_logic;
106
      outboundReadContentEnd_o : out std_logic;
107
      outboundReadContentData_o : out std_logic_vector(31 downto 0));
108
  end component;
109
 
110
  signal clk : std_logic;
111
  signal areset_n : std_logic;
112
 
113
  signal inboundWriteFrameFull : std_logic;
114
  signal inboundWriteFrame : std_logic;
115
  signal inboundWriteFrameAbort : std_logic;
116
  signal inboundWriteContent : std_logic;
117
  signal inboundWriteContentData : std_logic_vector(31 downto 0);
118
  signal inboundReadFrameEmpty : std_logic;
119
  signal inboundReadFrame : std_logic;
120
  signal inboundReadFrameRestart : std_logic;
121
  signal inboundReadFrameAborted : std_logic;
122
  signal inboundReadContentEmpty : std_logic;
123
  signal inboundReadContent : std_logic;
124
  signal inboundReadContentEnd : std_logic;
125
  signal inboundReadContentData : std_logic_vector(31 downto 0);
126
 
127
  signal outboundWriteFrameFull : std_logic;
128
  signal outboundWriteFrame : std_logic;
129
  signal outboundWriteFrameAbort : std_logic;
130
  signal outboundWriteContent : std_logic;
131
  signal outboundWriteContentData : std_logic_vector(31 downto 0);
132
  signal outboundReadFrameEmpty : std_logic;
133
  signal outboundReadFrame : std_logic;
134
  signal outboundReadFrameRestart : std_logic;
135
  signal outboundReadFrameAborted : std_logic;
136
  signal outboundReadWindowEmpty : std_logic;
137
  signal outboundReadWindowReset : std_logic;
138
  signal outboundReadWindowNext : std_logic;
139
  signal outboundReadContentEmpty : std_logic;
140
  signal outboundReadContent : std_logic;
141
  signal outboundReadContentEnd : std_logic;
142
  signal outboundReadContentData : std_logic_vector(31 downto 0);
143
 
144
begin
145
 
146
  -----------------------------------------------------------------------------
147
  -- Clock generation.
148
  -----------------------------------------------------------------------------
149
  ClockGenerator: process
150
  begin
151
    clk <= '0';
152
    wait for 20 ns;
153
    clk <= '1';
154
    wait for 20 ns;
155
  end process;
156
 
157
 
158
  -----------------------------------------------------------------------------
159
  -- Test case driver.
160
  -----------------------------------------------------------------------------
161
  TestDriver: process
162
    ---------------------------------------------------------------------------
163
    -- Inbound procedures.
164
    ---------------------------------------------------------------------------
165
 
166
    procedure SetInboundWriteContent(
167
      constant content : in std_logic_vector(31 downto 0)) is
168
    begin
169
      assert inboundWriteFrameFull = '0'
170
        report "Inbound frame cannot be accepted." severity error;
171
 
172
      inboundWriteContent <= '1';
173
      inboundWriteContentData <= content;
174
      wait until clk'event and clk = '1';
175
      wait for 1 ns;
176
      inboundWriteContent <= '0';
177
      inboundWriteContentData <= (others=>'U');
178
    end procedure;
179
 
180
    procedure SetInboundWriteFrame is
181
    begin
182
      inboundWriteFrame <= '1';
183
      wait until clk'event and clk = '1';
184
      wait for 1 ns;
185
 
186
      inboundWriteFrame <= '0';
187
    end procedure;
188
 
189
    procedure SetInboundWriteFrameAbort is
190
    begin
191
      inboundWriteFrameAbort <= '1';
192
      wait until clk'event and clk = '1';
193
      wait for 1 ns;
194
 
195
      inboundWriteFrameAbort <= '0';
196
    end procedure;
197
 
198
    procedure SetInboundReadContent(
199
      constant content : in std_logic_vector(31 downto 0)) is
200
    begin
201
      inboundReadContent <= '1';
202
      wait until clk'event and clk = '1';
203
      wait for 1 ns;
204
 
205
      assert (inboundReadContentData = content)
206
        report "Unexpected content read." severity error;
207
      assert (inboundReadContentEnd = '0')
208
        report "Unexpected content end." severity error;
209
 
210
      inboundReadContent <= '0';
211
    end procedure;
212
 
213
    procedure SetInboundReadContentEnd is
214
    begin
215
      inboundReadContent <= '1';
216
      wait until clk'event and clk = '1';
217
      wait for 1 ns;
218
 
219
      assert (inboundReadContentEnd = '1')
220
        report "Unexpected content end." severity error;
221
 
222
      inboundReadContent <= '0';
223
    end procedure;
224
 
225
    procedure SetInboundReadFrame is
226
    begin
227
      assert inboundReadFrameEmpty = '0'
228
        report "No pending inbound frame to be read." severity error;
229
 
230
      inboundReadFrame <= '1';
231
      wait until clk'event and clk = '1';
232
      wait for 1 ns;
233
 
234
      inboundReadFrame <= '0';
235
    end procedure;
236
 
237
    procedure SetInboundReadFrameRestart is
238
    begin
239
      inboundReadFrameRestart <= '1';
240
      wait until clk'event and clk = '1';
241
      wait for 1 ns;
242
 
243
      inboundReadFrameRestart <= '0';
244
    end procedure;
245
 
246
    ---------------------------------------------------------------------------
247
    -- Outbound procedures.
248
    ---------------------------------------------------------------------------
249
 
250
    procedure SetOutboundWriteContent(
251
      constant content : in std_logic_vector(31 downto 0)) is
252
    begin
253
      assert outboundWriteFrameFull = '0'
254
        report "Outbound frame cannot be accepted." severity error;
255
 
256
      outboundWriteContent <= '1';
257
      outboundWriteContentData <= content;
258
      wait until clk'event and clk = '1';
259
      wait for 1 ns;
260
      outboundWriteContent <= '0';
261
      outboundWriteContentData <= (others=>'U');
262
    end procedure;
263
 
264
    procedure SetOutboundWriteFrame is
265
    begin
266
      assert outboundWriteFrameFull = '0'
267
        report "Outbound frame cannot be accepted." severity error;
268
 
269
      outboundWriteFrame <= '1';
270
      wait until clk'event and clk = '1';
271
      wait for 1 ns;
272
 
273
      outboundWriteFrame <= '0';
274
    end procedure;
275
 
276
    procedure SetOutboundWriteFrameAbort is
277
    begin
278
      outboundWriteFrameAbort <= '1';
279
      wait until clk'event and clk = '1';
280
      wait for 1 ns;
281
 
282
      outboundWriteFrameAbort <= '0';
283
    end procedure;
284
 
285
    procedure SetOutboundReadContent(
286 16 magro732
      constant content : in std_logic_vector(31 downto 0);
287
      constant ending : in std_logic := '0') is
288 3 magro732
    begin
289
      outboundReadContent <= '1';
290
      wait until clk'event and clk = '1';
291
      wait for 1 ns;
292
 
293
      assert (outboundReadContentData = content)
294
        report "Unexpected content read." severity error;
295 16 magro732
      assert (outboundReadContentEnd = ending)
296 3 magro732
        report "Unexpected content end." severity error;
297
 
298
      outboundReadContent <= '0';
299
    end procedure;
300
 
301
    procedure SetOutboundReadFrame is
302
    begin
303
      assert outboundReadFrameEmpty = '0'
304
        report "No pending outbound frame to be read." severity error;
305
 
306
      outboundReadFrame <= '1';
307
      wait until clk'event and clk = '1';
308
      wait for 1 ns;
309
 
310
      outboundReadFrame <= '0';
311
    end procedure;
312
 
313
    procedure SetOutboundReadFrameRestart is
314
    begin
315
      outboundReadFrameRestart <= '1';
316
      wait until clk'event and clk = '1';
317
      wait for 1 ns;
318
 
319
      outboundReadFrameRestart <= '0';
320
    end procedure;
321
 
322
    procedure SetOutboundReadWindowReset is
323
    begin
324
      outboundReadWindowReset <= '1';
325
      wait until clk'event and clk = '1';
326
      wait for 1 ns;
327
 
328
      outboundReadWindowReset <= '0';
329
    end procedure;
330
 
331
    procedure SetOutboundReadWindowNext is
332
    begin
333
      assert outboundReadWindowEmpty = '0'
334
        report "No pending outbound window frame to be read." severity error;
335
 
336
      outboundReadWindowNext <= '1';
337
      wait until clk'event and clk = '1';
338
      wait for 1 ns;
339
 
340
      outboundReadWindowNext <= '0';
341
    end procedure;
342
 
343
  begin
344
    inboundWriteFrame <= '0';
345
    inboundWriteFrameAbort <= '0';
346
    inboundWriteContent <= '0';
347
    inboundWriteContentData <= (others=>'U');
348
    inboundReadFrame <= '0';
349
    inboundReadFrameRestart <= '0';
350
    inboundReadContent <= '0';
351
 
352
    outboundWriteFrame <= '0';
353
    outboundWriteFrameAbort <= '0';
354
    outboundWriteContent <= '0';
355
    outboundWriteContentData <= (others=>'U');
356
    outboundReadFrame <= '0';
357
    outboundReadFrameRestart <= '0';
358
    outboundReadWindowReset <= '0';
359
    outboundReadWindowNext <= '0';
360
    outboundReadContent <= '0';
361
 
362
    areset_n <= '0';
363
    wait until clk'event and clk = '1';
364
    wait until clk'event and clk = '1';
365
    areset_n <= '1';
366
    wait until clk'event and clk = '1';
367
    wait until clk'event and clk = '1';
368
 
369
    ---------------------------------------------------------------------------
370 51 magro732
    TestSpec("-----------------------------------------------------------------");
371
    TestSpec("TG_RioPacketBuffer");
372
    TestSpec("-----------------------------------------------------------------");
373
    TestSpec("TG_RioPacketBuffer-TC1");
374
    TestSpec("Description: Test normal operation without using the window. Only");
375
    TestSpec("             full frames are tested.");
376
    TestSpec("Requirement: XXXXX");
377
    TestSpec("-----------------------------------------------------------------");
378
    TestSpec("Step 1:");
379
    TestSpec("Action: Complete a small frame and read it.");
380
    TestSpec("Result: The read frame should be equal to the one written.");
381 3 magro732
    ---------------------------------------------------------------------------
382 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC1-Step1");
383 3 magro732
    ---------------------------------------------------------------------------
384
    -- REMARK: Update testcases for inbound and outbound...
385
 
386
    assert (inboundWriteFrameFull = '0')
387
      report "Unexpected writeFrameFull." severity error;
388
    assert (inboundReadFrameEmpty = '1')
389
      report "Unexpected readFrameEmpty." severity error;
390
 
391
    SetInboundWriteContent(x"deadbeef");
392
 
393
    assert (inboundWriteFrameFull = '0')
394
      report "Unexpected writeFrameFull." severity error;
395
    assert (inboundReadFrameEmpty = '1')
396
      report "Unexpected readFrameEmpty." severity error;
397
 
398
    SetInboundWriteFrame;
399
 
400
    assert (inboundWriteFrameFull = '0')
401
      report "Unexpected writeFrameFull." severity error;
402
    assert (inboundReadFrameEmpty = '0')
403
      report "Unexpected readFrameEmpty." severity error;
404
 
405
    SetInboundReadContent(x"deadbeef");
406
 
407
    assert (inboundWriteFrameFull = '0')
408
      report "Unexpected writeFrameFull." severity error;
409
    assert (inboundReadFrameEmpty = '0')
410
      report "Unexpected readFrameEmpty." severity error;
411
 
412
    SetInboundReadContentEnd;
413
 
414
    assert (inboundWriteFrameFull = '0')
415
      report "Unexpected writeFrameFull." severity error;
416
    assert (inboundReadFrameEmpty = '0')
417
      report "Unexpected readFrameEmpty." severity error;
418
 
419
    SetInboundReadFrame;
420
 
421
    assert (inboundWriteFrameFull = '0')
422
      report "Unexpected writeFrameFull." severity error;
423
    assert (inboundReadFrameEmpty = '1')
424
      report "Unexpected readFrameEmpty." severity error;
425
 
426
    ---------------------------------------------------------------------------
427 51 magro732
    TestSpec("-----------------------------------------------------------------");
428
    TestSpec("Step 2:");
429
    TestSpec("Action: Write a rio maximum size frame and read it.");
430
    TestSpec("Result: The read frame should be equal to the one written.");
431 3 magro732
    ---------------------------------------------------------------------------
432 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC1-Step2");
433 3 magro732
    ---------------------------------------------------------------------------
434
 
435
    for i in 0 to 68 loop
436
      SetInboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
437
 
438
      assert (inboundWriteFrameFull = '0')
439
        report "Unexpected writeFrameFull." severity error;
440
      assert (inboundReadFrameEmpty = '1')
441
        report "Unexpected readFrameEmpty." severity error;
442
    end loop;
443
 
444
    SetInboundWriteFrame;
445
 
446
    assert (inboundWriteFrameFull = '0')
447
      report "Unexpected writeFrameFull." severity error;
448
    assert (inboundReadFrameEmpty = '0')
449
      report "Unexpected readFrameEmpty." severity error;
450
 
451
    for i in 0 to 68 loop
452
      SetInboundReadContent(std_logic_vector(to_unsigned(i, 32)));
453
 
454
      assert (inboundWriteFrameFull = '0')
455
        report "Unexpected writeFrameFull." severity error;
456
      assert (inboundReadFrameEmpty = '0')
457
        report "Unexpected readFrameEmpty." severity error;
458
    end loop;
459
 
460
    SetInboundReadContentEnd;
461
 
462
    assert (inboundWriteFrameFull = '0')
463
      report "Unexpected writeFrameFull." severity error;
464
    assert (inboundReadFrameEmpty = '0')
465
      report "Unexpected readFrameEmpty." severity error;
466
 
467
    SetInboundReadFrame;
468
 
469
    assert (inboundWriteFrameFull = '0')
470
      report "Unexpected writeFrameFull." severity error;
471
    assert (inboundReadFrameEmpty = '1')
472
      report "Unexpected readFrameEmpty." severity error;
473
 
474
    ---------------------------------------------------------------------------
475 51 magro732
    TestSpec("-----------------------------------------------------------------");
476
    TestSpec("Step 3:");
477
    TestSpec("Action: Fill the maximum number of small frames without filling ");
478
    TestSpec("        the memory.");
479
    TestSpec("Result: The frame buffer should accept 63 frames.");
480 3 magro732
    ---------------------------------------------------------------------------
481 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC1-Step3");
482 3 magro732
    ---------------------------------------------------------------------------
483
 
484
    ---------------------------------------------------------------------------
485
    -- Write maximum number of frames.
486
    ---------------------------------------------------------------------------
487
 
488
    for i in 0 to 2 loop
489
      SetInboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
490
      assert (inboundWriteFrameFull = '0')
491
        report "Unexpected writeFrameFull." severity error;
492
      assert (inboundReadFrameEmpty = '1')
493
        report "Unexpected readFrameEmpty." severity error;
494
    end loop;
495
 
496
    for j in 1 to 62 loop
497
      SetInboundWriteFrame;
498
      assert (inboundWriteFrameFull = '0')
499
        report "Unexpected writeFrameFull." severity error;
500
      assert (inboundReadFrameEmpty = '0')
501
        report "Unexpected readFrameEmpty." severity error;
502
 
503
      for i in 0 to 2 loop
504
        SetInboundWriteContent(std_logic_vector(to_unsigned(j+i, 32)));
505
 
506
        assert (inboundWriteFrameFull = '0')
507
          report "Unexpected writeFrameFull." severity error;
508
        assert (inboundReadFrameEmpty = '0')
509
          report "Unexpected readFrameEmpty." severity error;
510
      end loop;
511
    end loop;
512
 
513
    SetInboundWriteFrame;
514
    assert (inboundWriteFrameFull = '1')
515
      report "Unexpected writeFrameFull." severity error;
516
    assert (inboundReadFrameEmpty = '0')
517
      report "Unexpected readFrameEmpty." severity error;
518
 
519
    ---------------------------------------------------------------------------
520
    -- Read the frames written in the above steps.
521
    ---------------------------------------------------------------------------
522
 
523
    for i in 0 to 2 loop
524
      SetInboundReadContent(std_logic_vector(to_unsigned(i, 32)));
525
 
526
      assert (inboundWriteFrameFull = '1')
527
        report "Unexpected writeFrameFull." severity error;
528
      assert (inboundReadFrameEmpty = '0')
529
        report "Unexpected readFrameEmpty." severity error;
530
    end loop;
531
 
532
    SetInboundReadContentEnd;
533
    assert (inboundWriteFrameFull = '1')
534
      report "Unexpected writeFrameFull." severity error;
535
    assert (inboundReadFrameEmpty = '0')
536
      report "Unexpected readFrameEmpty." severity error;
537
 
538
    for j in 1 to 62 loop
539
      SetInboundReadFrame;
540
      assert (inboundWriteFrameFull = '0')
541
        report "Unexpected writeFrameFull." severity error;
542
      assert (inboundReadFrameEmpty = '0')
543
        report "Unexpected readFrameEmpty." severity error;
544
 
545
      for i in 0 to 2 loop
546
        SetInboundReadContent(std_logic_vector(to_unsigned(j+i, 32)));
547
 
548
        assert (inboundWriteFrameFull = '0')
549
          report "Unexpected writeFrameFull." severity error;
550
        assert (inboundReadFrameEmpty = '0')
551
          report "Unexpected readFrameEmpty." severity error;
552
      end loop;
553
 
554
      SetInboundReadContentEnd;
555
      assert (inboundWriteFrameFull = '0')
556
        report "Unexpected writeFrameFull." severity error;
557
      assert (inboundReadFrameEmpty = '0')
558
        report "Unexpected readFrameEmpty." severity error;
559
    end loop;
560
 
561
    SetInboundReadFrame;
562
    assert (inboundWriteFrameFull = '0')
563
      report "Unexpected writeFrameFull." severity error;
564
    assert (inboundReadFrameEmpty = '1')
565
      report "Unexpected readFrameEmpty." severity error;
566
 
567
    ---------------------------------------------------------------------------
568 51 magro732
    TestSpec("-----------------------------------------------------------------");
569
    TestSpec("Step 4:");
570
    TestSpec("Action: Fill the memory to its limit.");
571
    TestSpec("Result: The frame buffer should accept 255-69 words.");
572 3 magro732
    ---------------------------------------------------------------------------
573 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC1-Step4");
574 3 magro732
    ---------------------------------------------------------------------------
575
 
576
    for i in 0 to 186 loop
577
      SetInboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
578
      assert (inboundWriteFrameFull = '0')
579
        report "Unexpected writeFrameFull." severity error;
580
      assert (inboundReadFrameEmpty = '1')
581
        report "Unexpected readFrameEmpty." severity error;
582
    end loop;
583
 
584
    SetInboundWriteFrame;
585
    assert (inboundWriteFrameFull = '1')
586
      report "Unexpected writeFrameFull." severity error;
587
    assert (inboundReadFrameEmpty = '0')
588
      report "Unexpected readFrameEmpty." severity error;
589
 
590
    ---------------------------------------------------------------------------
591
 
592
    for i in 0 to 186 loop
593
      SetInboundReadContent(std_logic_vector(to_unsigned(i, 32)));
594
 
595
      assert (inboundWriteFrameFull = '1')
596
        report "Unexpected writeFrameFull." severity error;
597
      assert (inboundReadFrameEmpty = '0')
598
        report "Unexpected readFrameEmpty." severity error;
599
    end loop;
600
 
601
    SetInboundReadContentEnd;
602
    assert (inboundWriteFrameFull = '1')
603
      report "Unexpected writeFrameFull." severity error;
604
    assert (inboundReadFrameEmpty = '0')
605
      report "Unexpected readFrameEmpty." severity error;
606
 
607
    SetInboundReadFrame;
608
    assert (inboundWriteFrameFull = '0')
609
      report "Unexpected writeFrameFull." severity error;
610
    assert (inboundReadFrameEmpty = '1')
611
      report "Unexpected readFrameEmpty." severity error;
612
 
613
    ---------------------------------------------------------------------------
614 51 magro732
    TestSpec("-----------------------------------------------------------------");
615
    TestSpec("TG_RioPacketBuffer-TC2");
616
    TestSpec("Description: Test operation when using the window.");
617
    TestSpec("Requirement: XXXXX");
618
    TestSpec("-----------------------------------------------------------------");
619
    TestSpec("Step 1:");
620
    TestSpec("Action: Add one frame and update the window.");
621
    TestSpec("Result: The window empty flag and the read frame empty flag should");
622
    TestSpec("        be updated and it should be possible to read the frame again.");
623 3 magro732
    ---------------------------------------------------------------------------
624 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC2-Step1");
625 3 magro732
    ---------------------------------------------------------------------------
626
 
627
    assert (outboundWriteFrameFull = '0')
628
      report "Unexpected writeFrameFull." severity error;
629
    assert (outboundReadFrameEmpty = '1')
630
      report "Unexpected readFrameEmpty." severity error;
631
    assert (outboundReadWindowEmpty = '1')
632
      report "Unexpected readWindowEmpty." severity error;
633
 
634
    for i in 0 to 2 loop
635
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
636
      assert (outboundWriteFrameFull = '0')
637
        report "Unexpected writeFrameFull." severity error;
638
      assert (outboundReadFrameEmpty = '1')
639
        report "Unexpected readFrameEmpty." severity error;
640
      assert (outboundReadWindowEmpty = '1')
641
        report "Unexpected readWindowEmpty." severity error;
642
    end loop;
643
 
644
    SetOutboundWriteFrame;
645
    assert (outboundWriteFrameFull = '0')
646
      report "Unexpected writeFrameFull." severity error;
647
    assert (outboundReadFrameEmpty = '0')
648
      report "Unexpected readFrameEmpty." severity error;
649
    assert (outboundReadWindowEmpty = '0')
650
      report "Unexpected readWindowEmpty." severity error;
651
 
652
    ---------------------------------------------------------------------------
653
 
654 16 magro732
    for i in 0 to 1 loop
655 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(i, 32)));
656
      assert (outboundWriteFrameFull = '0')
657
        report "Unexpected writeFrameFull." severity error;
658
      assert (outboundReadFrameEmpty = '0')
659
        report "Unexpected readFrameEmpty." severity error;
660
      assert (outboundReadWindowEmpty = '0')
661
        report "Unexpected readWindowEmpty." severity error;
662
    end loop;
663
 
664 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(2, 32)), '1');
665 3 magro732
    assert (outboundWriteFrameFull = '0')
666
      report "Unexpected writeFrameFull." severity error;
667
    assert (outboundReadFrameEmpty = '0')
668
      report "Unexpected readFrameEmpty." severity error;
669
    assert (outboundReadWindowEmpty = '0')
670
      report "Unexpected readWindowEmpty." severity error;
671
 
672
    SetOutboundReadWindowReset;
673
    assert (outboundWriteFrameFull = '0')
674
      report "Unexpected writeFrameFull." severity error;
675
    assert (outboundReadFrameEmpty = '0')
676
      report "Unexpected readFrameEmpty." severity error;
677
    assert (outboundReadWindowEmpty = '0')
678
      report "Unexpected readWindowEmpty." severity error;
679
 
680 16 magro732
    for i in 0 to 1 loop
681 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(i, 32)));
682
      assert (outboundWriteFrameFull = '0')
683
        report "Unexpected writeFrameFull." severity error;
684
      assert (outboundReadFrameEmpty = '0')
685
        report "Unexpected readFrameEmpty." severity error;
686
      assert (outboundReadWindowEmpty = '0')
687
        report "Unexpected readWindowEmpty." severity error;
688
    end loop;
689
 
690 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(2, 32)), '1');
691 3 magro732
    assert (outboundWriteFrameFull = '0')
692
      report "Unexpected writeFrameFull." severity error;
693
    assert (outboundReadFrameEmpty = '0')
694
      report "Unexpected readFrameEmpty." severity error;
695
    assert (outboundReadWindowEmpty = '0')
696
      report "Unexpected readWindowEmpty." severity error;
697
 
698
    SetOutboundReadWindowNext;
699
    assert (outboundWriteFrameFull = '0')
700
      report "Unexpected writeFrameFull." severity error;
701
    assert (outboundReadFrameEmpty = '0')
702
      report "Unexpected readFrameEmpty." severity error;
703
    assert (outboundReadWindowEmpty = '1')
704
      report "Unexpected readWindowEmpty." severity error;
705
 
706
    SetOutboundReadFrame;
707
    assert (outboundWriteFrameFull = '0')
708
      report "Unexpected writeFrameFull." severity error;
709
    assert (outboundReadFrameEmpty = '1')
710
      report "Unexpected readFrameEmpty." severity error;
711
    assert (outboundReadWindowEmpty = '1')
712
      report "Unexpected readWindowEmpty." severity error;
713
 
714
    ---------------------------------------------------------------------------
715 51 magro732
    TestSpec("-----------------------------------------------------------------");
716
    TestSpec("Step 2:");
717
    TestSpec("Action: Add two frames and test the window accesses.");
718
    TestSpec("Result: .");
719 3 magro732
    ---------------------------------------------------------------------------
720 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC2-Step2");
721 3 magro732
    ---------------------------------------------------------------------------
722
 
723
    ---------------------------------------------------------------------------
724
    -- Write two frames.
725
    ---------------------------------------------------------------------------
726
 
727
    assert (outboundWriteFrameFull = '0')
728
      report "Unexpected writeFrameFull." severity error;
729
    assert (outboundReadFrameEmpty = '1')
730
      report "Unexpected readFrameEmpty." severity error;
731
    assert (outboundReadWindowEmpty = '1')
732
      report "Unexpected readWindowEmpty." severity error;
733
 
734
    for i in 0 to 2 loop
735
      SetOutboundWriteContent(std_logic_vector(to_unsigned(1+i, 32)));
736
      assert (outboundWriteFrameFull = '0')
737
        report "Unexpected writeFrameFull." severity error;
738
      assert (outboundReadFrameEmpty = '1')
739
        report "Unexpected readFrameEmpty." severity error;
740
      assert (outboundReadWindowEmpty = '1')
741
        report "Unexpected readWindowEmpty." severity error;
742
    end loop;
743
 
744
    SetOutboundWriteFrame;
745
    assert (outboundWriteFrameFull = '0')
746
      report "Unexpected writeFrameFull." severity error;
747
    assert (outboundReadFrameEmpty = '0')
748
      report "Unexpected readFrameEmpty." severity error;
749
    assert (outboundReadWindowEmpty = '0')
750
      report "Unexpected readWindowEmpty." severity error;
751
 
752
    for i in 0 to 2 loop
753
      SetOutboundWriteContent(std_logic_vector(to_unsigned(2+i, 32)));
754
      assert (outboundWriteFrameFull = '0')
755
        report "Unexpected writeFrameFull." severity error;
756
      assert (outboundReadFrameEmpty = '0')
757
        report "Unexpected readFrameEmpty." severity error;
758
      assert (outboundReadWindowEmpty = '0')
759
        report "Unexpected readWindowEmpty." severity error;
760
    end loop;
761
 
762
    SetOutboundWriteFrame;
763
    assert (outboundWriteFrameFull = '0')
764
      report "Unexpected writeFrameFull." severity error;
765
    assert (outboundReadFrameEmpty = '0')
766
      report "Unexpected readFrameEmpty." severity error;
767
    assert (outboundReadWindowEmpty = '0')
768
      report "Unexpected readWindowEmpty." severity error;
769
 
770
    ---------------------------------------------------------------------------
771
    -- Read the frames using the window mechanism.
772
    ---------------------------------------------------------------------------
773
 
774 16 magro732
    for i in 0 to 1 loop
775 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1+i, 32)));
776
      assert (outboundWriteFrameFull = '0')
777
        report "Unexpected writeFrameFull." severity error;
778
      assert (outboundReadFrameEmpty = '0')
779
        report "Unexpected readFrameEmpty." severity error;
780
      assert (outboundReadWindowEmpty = '0')
781
        report "Unexpected readWindowEmpty." severity error;
782
    end loop;
783
 
784 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1+2, 32)), '1');
785 3 magro732
    assert (outboundWriteFrameFull = '0')
786
      report "Unexpected writeFrameFull." severity error;
787
    assert (outboundReadFrameEmpty = '0')
788
      report "Unexpected readFrameEmpty." severity error;
789
    assert (outboundReadWindowEmpty = '0')
790
      report "Unexpected readWindowEmpty." severity error;
791
 
792
    SetOutboundReadWindowNext;
793
    assert (outboundWriteFrameFull = '0')
794
      report "Unexpected writeFrameFull." severity error;
795
    assert (outboundReadFrameEmpty = '0')
796
      report "Unexpected readFrameEmpty." severity error;
797
    assert (outboundReadWindowEmpty = '0')
798
      report "Unexpected readWindowEmpty." severity error;
799
 
800 16 magro732
    for i in 0 to 1 loop
801 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(2+i, 32)));
802
      assert (outboundWriteFrameFull = '0')
803
        report "Unexpected writeFrameFull." severity error;
804
      assert (outboundReadFrameEmpty = '0')
805
        report "Unexpected readFrameEmpty." severity error;
806
      assert (outboundReadWindowEmpty = '0')
807
        report "Unexpected readWindowEmpty." severity error;
808
    end loop;
809
 
810 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(2+2, 32)), '1');
811 3 magro732
    assert (outboundWriteFrameFull = '0')
812
      report "Unexpected writeFrameFull." severity error;
813
    assert (outboundReadFrameEmpty = '0')
814
      report "Unexpected readFrameEmpty." severity error;
815
    assert (outboundReadWindowEmpty = '0')
816
      report "Unexpected readWindowEmpty." severity error;
817
 
818
    SetOutboundReadWindowNext;
819
    assert (outboundWriteFrameFull = '0')
820
      report "Unexpected writeFrameFull." severity error;
821
    assert (outboundReadFrameEmpty = '0')
822
      report "Unexpected readFrameEmpty." severity error;
823
    assert (outboundReadWindowEmpty = '1')
824
      report "Unexpected readWindowEmpty." severity error;
825
 
826
    ---------------------------------------------------------------------------
827
    -- Reset the window and read the frames again.
828
    ---------------------------------------------------------------------------
829
 
830
    SetOutboundReadWindowReset;
831
    assert (outboundWriteFrameFull = '0')
832
      report "Unexpected writeFrameFull." severity error;
833
    assert (outboundReadFrameEmpty = '0')
834
      report "Unexpected readFrameEmpty." severity error;
835
    assert (outboundReadWindowEmpty = '0')
836
      report "Unexpected readWindowEmpty." severity error;
837
 
838 16 magro732
    for i in 0 to 1 loop
839 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1+i, 32)));
840
      assert (outboundWriteFrameFull = '0')
841
        report "Unexpected writeFrameFull." severity error;
842
      assert (outboundReadFrameEmpty = '0')
843
        report "Unexpected readFrameEmpty." severity error;
844
      assert (outboundReadWindowEmpty = '0')
845
        report "Unexpected readWindowEmpty." severity error;
846
    end loop;
847
 
848 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1+2, 32)), '1');
849 3 magro732
    assert (outboundWriteFrameFull = '0')
850
      report "Unexpected writeFrameFull." severity error;
851
    assert (outboundReadFrameEmpty = '0')
852
      report "Unexpected readFrameEmpty." severity error;
853
    assert (outboundReadWindowEmpty = '0')
854
      report "Unexpected readWindowEmpty." severity error;
855
 
856
    SetOutboundReadWindowNext;
857
    assert (outboundWriteFrameFull = '0')
858
      report "Unexpected writeFrameFull." severity error;
859
    assert (outboundReadFrameEmpty = '0')
860
      report "Unexpected readFrameEmpty." severity error;
861
    assert (outboundReadWindowEmpty = '0')
862
      report "Unexpected readWindowEmpty." severity error;
863
 
864 16 magro732
    for i in 0 to 1 loop
865 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(2+i, 32)));
866
      assert (outboundWriteFrameFull = '0')
867
        report "Unexpected writeFrameFull." severity error;
868
      assert (outboundReadFrameEmpty = '0')
869
        report "Unexpected readFrameEmpty." severity error;
870
      assert (outboundReadWindowEmpty = '0')
871
        report "Unexpected readWindowEmpty." severity error;
872
    end loop;
873
 
874 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(2+2, 32)), '1');
875 3 magro732
    assert (outboundWriteFrameFull = '0')
876
      report "Unexpected writeFrameFull." severity error;
877
    assert (outboundReadFrameEmpty = '0')
878
      report "Unexpected readFrameEmpty." severity error;
879
    assert (outboundReadWindowEmpty = '0')
880
      report "Unexpected readWindowEmpty." severity error;
881
 
882
    SetOutboundReadWindowNext;
883
    assert (outboundWriteFrameFull = '0')
884
      report "Unexpected writeFrameFull." severity error;
885
    assert (outboundReadFrameEmpty = '0')
886
      report "Unexpected readFrameEmpty." severity error;
887
    assert (outboundReadWindowEmpty = '1')
888
      report "Unexpected readWindowEmpty." severity error;
889
 
890
    ---------------------------------------------------------------------------
891
    -- Remove one frame and access the remaining frame.
892
    ---------------------------------------------------------------------------
893
    SetOutboundReadFrame;
894
    assert (outboundWriteFrameFull = '0')
895
      report "Unexpected writeFrameFull." severity error;
896
    assert (outboundReadFrameEmpty = '0')
897
      report "Unexpected readFrameEmpty." severity error;
898
    assert (outboundReadWindowEmpty = '1')
899
      report "Unexpected readWindowEmpty." severity error;
900
 
901
    SetOutboundReadWindowReset;
902
    assert (outboundWriteFrameFull = '0')
903
      report "Unexpected writeFrameFull." severity error;
904
    assert (outboundReadFrameEmpty = '0')
905
      report "Unexpected readFrameEmpty." severity error;
906
    assert (outboundReadWindowEmpty = '0')
907
      report "Unexpected readWindowEmpty." severity error;
908
 
909 16 magro732
    for i in 0 to 1 loop
910 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(2+i, 32)));
911
      assert (outboundWriteFrameFull = '0')
912
        report "Unexpected writeFrameFull." severity error;
913
      assert (outboundReadFrameEmpty = '0')
914
        report "Unexpected readFrameEmpty." severity error;
915
      assert (outboundReadWindowEmpty = '0')
916
        report "Unexpected readWindowEmpty." severity error;
917
    end loop;
918
 
919 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(2+2, 32)), '1');
920 3 magro732
    assert (outboundWriteFrameFull = '0')
921
      report "Unexpected writeFrameFull." severity error;
922
    assert (outboundReadFrameEmpty = '0')
923
      report "Unexpected readFrameEmpty." severity error;
924
    assert (outboundReadWindowEmpty = '0')
925
      report "Unexpected readWindowEmpty." severity error;
926
 
927
    SetOutboundReadWindowNext;
928
    assert (outboundWriteFrameFull = '0')
929
      report "Unexpected writeFrameFull." severity error;
930
    assert (outboundReadFrameEmpty = '0')
931
      report "Unexpected readFrameEmpty." severity error;
932
    assert (outboundReadWindowEmpty = '1')
933
      report "Unexpected readWindowEmpty." severity error;
934
 
935
    ---------------------------------------------------------------------------
936
    -- Remove the remaining frame.
937
    ---------------------------------------------------------------------------
938
 
939
    SetOutboundReadFrame;
940
    assert (outboundWriteFrameFull = '0')
941
      report "Unexpected writeFrameFull." severity error;
942
    assert (outboundReadFrameEmpty = '1')
943
      report "Unexpected readFrameEmpty." severity error;
944
    assert (outboundReadWindowEmpty = '1')
945
      report "Unexpected readWindowEmpty." severity error;
946
 
947
    SetOutboundReadWindowReset;
948
    assert (outboundWriteFrameFull = '0')
949
      report "Unexpected writeFrameFull." severity error;
950
    assert (outboundReadFrameEmpty = '1')
951
      report "Unexpected readFrameEmpty." severity error;
952
    assert (outboundReadWindowEmpty = '1')
953
      report "Unexpected readWindowEmpty." severity error;
954
 
955
    ---------------------------------------------------------------------------
956 51 magro732
    TestSpec("-----------------------------------------------------------------");
957
    TestSpec("Step 3:");
958
    TestSpec("Action: Add maximum number of frames and test the window accesses.");
959
    TestSpec("Result: The buffer should be full and not accept more frames.");
960 3 magro732
    ---------------------------------------------------------------------------
961 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC2-Step3");
962 3 magro732
    ---------------------------------------------------------------------------
963
 
964
    assert (outboundWriteFrameFull = '0')
965
      report "Unexpected writeFrameFull." severity error;
966
    assert (outboundReadFrameEmpty = '1')
967
      report "Unexpected readFrameEmpty." severity error;
968
    assert (outboundReadWindowEmpty = '1')
969
      report "Unexpected readWindowEmpty." severity error;
970
 
971
    ---------------------------------------------------------------------------
972
    -- Write 3*63 frames => maximum number of frames.  
973
    ---------------------------------------------------------------------------
974
 
975
    for i in 0 to 2 loop
976
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
977
      assert (outboundWriteFrameFull = '0')
978
        report "Unexpected writeFrameFull." severity error;
979
      assert (outboundReadFrameEmpty = '1')
980
        report "Unexpected readFrameEmpty." severity error;
981
      assert (outboundReadWindowEmpty = '1')
982
        report "Unexpected readWindowEmpty." severity error;
983
    end loop;
984
 
985
    for j in 1 to 62 loop
986
      SetOutboundWriteFrame;
987
      assert (outboundWriteFrameFull = '0')
988
        report "Unexpected writeFrameFull." severity error;
989
      assert (outboundReadFrameEmpty = '0')
990
        report "Unexpected readFrameEmpty." severity error;
991
      assert (outboundReadWindowEmpty = '0')
992
        report "Unexpected readWindowEmpty." severity error;
993
 
994
      for i in 0 to 2 loop
995
        SetOutboundWriteContent(std_logic_vector(to_unsigned(j+i, 32)));
996
        assert (outboundWriteFrameFull = '0')
997
          report "Unexpected writeFrameFull." severity error;
998
        assert (outboundReadFrameEmpty = '0')
999
          report "Unexpected readFrameEmpty." severity error;
1000
        assert (outboundReadWindowEmpty = '0')
1001
          report "Unexpected readWindowEmpty." severity error;
1002
      end loop;
1003
    end loop;
1004
 
1005
    SetOutboundWriteFrame;
1006
    assert (outboundWriteFrameFull = '1')
1007
      report "Unexpected writeFrameFull." severity error;
1008
    assert (outboundReadFrameEmpty = '0')
1009
      report "Unexpected readFrameEmpty." severity error;
1010
    assert (outboundReadWindowEmpty = '0')
1011
      report "Unexpected readWindowEmpty." severity error;
1012
 
1013
    ---------------------------------------------------------------------------
1014
    -- Read the whole window until it is empty.
1015
    ---------------------------------------------------------------------------
1016
 
1017
    for j in 0 to 61 loop
1018 16 magro732
      for i in 0 to 1 loop
1019 3 magro732
        SetOutboundReadContent(std_logic_vector(to_unsigned(j+i, 32)));
1020
        assert (outboundWriteFrameFull = '1')
1021
          report "Unexpected writeFrameFull." severity error;
1022
        assert (outboundReadFrameEmpty = '0')
1023
          report "Unexpected readFrameEmpty." severity error;
1024
        assert (outboundReadWindowEmpty = '0')
1025
          report "Unexpected readWindowEmpty." severity error;
1026
      end loop;
1027
 
1028 16 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(j+2, 32)), '1');
1029 3 magro732
      assert (outboundWriteFrameFull = '1')
1030
        report "Unexpected writeFrameFull." severity error;
1031
      assert (outboundReadFrameEmpty = '0')
1032
        report "Unexpected readFrameEmpty." severity error;
1033
      assert (outboundReadWindowEmpty = '0')
1034
        report "Unexpected readWindowEmpty." severity error;
1035
 
1036
      SetOutboundReadWindowNext;
1037
      assert (outboundWriteFrameFull = '1')
1038
        report "Unexpected writeFrameFull." severity error;
1039
      assert (outboundReadFrameEmpty = '0')
1040
        report "Unexpected readFrameEmpty." severity error;
1041
      assert (outboundReadWindowEmpty = '0')
1042
        report "Unexpected readWindowEmpty." severity error;
1043
    end loop;
1044
 
1045 16 magro732
    for i in 0 to 1 loop
1046 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(62+i, 32)));
1047
      assert (outboundWriteFrameFull = '1')
1048
        report "Unexpected writeFrameFull." severity error;
1049
      assert (outboundReadFrameEmpty = '0')
1050
        report "Unexpected readFrameEmpty." severity error;
1051
      assert (outboundReadWindowEmpty = '0')
1052
        report "Unexpected readWindowEmpty." severity error;
1053
    end loop;
1054
 
1055 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(62+2, 32)), '1');
1056 3 magro732
    assert (outboundWriteFrameFull = '1')
1057
      report "Unexpected writeFrameFull." severity error;
1058
    assert (outboundReadFrameEmpty = '0')
1059
      report "Unexpected readFrameEmpty." severity error;
1060
    assert (outboundReadWindowEmpty = '0')
1061
      report "Unexpected readWindowEmpty." severity error;
1062
 
1063
    SetOutboundReadWindowNext;
1064
    assert (outboundWriteFrameFull = '1')
1065
      report "Unexpected writeFrameFull." severity error;
1066
    assert (outboundReadFrameEmpty = '0')
1067
      report "Unexpected readFrameEmpty." severity error;
1068
    assert (outboundReadWindowEmpty = '1')
1069
      report "Unexpected readWindowEmpty." severity error;
1070
 
1071
    ---------------------------------------------------------------------------
1072
    -- Reset the window and remove all frames.
1073
    ---------------------------------------------------------------------------
1074
 
1075
    SetOutboundReadWindowReset;
1076
    assert (outboundWriteFrameFull = '1')
1077
      report "Unexpected writeFrameFull." severity error;
1078
    assert (outboundReadFrameEmpty = '0')
1079
      report "Unexpected readFrameEmpty." severity error;
1080
    assert (outboundReadWindowEmpty = '0')
1081
      report "Unexpected readWindowEmpty." severity error;
1082
 
1083
    for j in 0 to 61 loop
1084
      SetOutboundReadFrame;
1085
      assert (outboundWriteFrameFull = '0')
1086
        report "Unexpected writeFrameFull." severity error;
1087
      assert (outboundReadFrameEmpty = '0')
1088
        report "Unexpected readFrameEmpty." severity error;
1089
      assert (outboundReadWindowEmpty = '0')
1090
        report "Unexpected readWindowEmpty." severity error;
1091
    end loop;
1092
 
1093
    SetOutboundReadWindowReset;
1094
    assert (outboundWriteFrameFull = '0')
1095
      report "Unexpected writeFrameFull." severity error;
1096
    assert (outboundReadFrameEmpty = '0')
1097
      report "Unexpected readFrameEmpty." severity error;
1098
    assert (outboundReadWindowEmpty = '0')
1099
      report "Unexpected readWindowEmpty." severity error;
1100
 
1101 16 magro732
    for i in 0 to 1 loop
1102 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(62+i, 32)));
1103
      assert (outboundWriteFrameFull = '0')
1104
        report "Unexpected writeFrameFull." severity error;
1105
      assert (outboundReadFrameEmpty = '0')
1106
        report "Unexpected readFrameEmpty." severity error;
1107
      assert (outboundReadWindowEmpty = '0')
1108
        report "Unexpected readWindowEmpty." severity error;
1109
    end loop;
1110
 
1111 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(62+2, 32)), '1');
1112 3 magro732
    assert (outboundWriteFrameFull = '0')
1113
      report "Unexpected writeFrameFull." severity error;
1114
    assert (outboundReadFrameEmpty = '0')
1115
      report "Unexpected readFrameEmpty." severity error;
1116
    assert (outboundReadWindowEmpty = '0')
1117
      report "Unexpected readWindowEmpty." severity error;
1118
 
1119
    SetOutboundReadWindowNext;
1120
    assert (outboundWriteFrameFull = '0')
1121
      report "Unexpected writeFrameFull." severity error;
1122
    assert (outboundReadFrameEmpty = '0')
1123
      report "Unexpected readFrameEmpty." severity error;
1124
    assert (outboundReadWindowEmpty = '1')
1125
      report "Unexpected readWindowEmpty." severity error;
1126
 
1127
    SetOutboundReadFrame;
1128
    assert (outboundWriteFrameFull = '0')
1129
      report "Unexpected writeFrameFull." severity error;
1130
    assert (outboundReadFrameEmpty = '1')
1131
      report "Unexpected readFrameEmpty." severity error;
1132
    assert (outboundReadWindowEmpty = '1')
1133
      report "Unexpected readWindowEmpty." severity error;
1134
 
1135
    ---------------------------------------------------------------------------
1136 51 magro732
    TestSpec("-----------------------------------------------------------------");
1137
    TestSpec("Step 4:");
1138
    TestSpec("Action: Add maximum number of words and test the window accesses.");
1139
    TestSpec("Result: The content memory should be full.");
1140 3 magro732
    ---------------------------------------------------------------------------
1141 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC2-Step4");
1142 3 magro732
    ---------------------------------------------------------------------------
1143
 
1144
    assert (outboundWriteFrameFull = '0')
1145
      report "Unexpected writeFrameFull." severity error;
1146
    assert (outboundReadFrameEmpty = '1')
1147
      report "Unexpected readFrameEmpty." severity error;
1148
    assert (outboundReadWindowEmpty = '1')
1149
      report "Unexpected readWindowEmpty." severity error;
1150
 
1151
    ---------------------------------------------------------------------------
1152
    -- Write 6*31+69=255 words and 7 frames => full content.  
1153
    ---------------------------------------------------------------------------
1154
 
1155
    for i in 0 to 30 loop
1156
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
1157
      assert (outboundWriteFrameFull = '0')
1158
        report "Unexpected writeFrameFull." severity error;
1159
      assert (outboundReadFrameEmpty = '1')
1160
        report "Unexpected readFrameEmpty." severity error;
1161
      assert (outboundReadWindowEmpty = '1')
1162
        report "Unexpected readWindowEmpty." severity error;
1163
    end loop;
1164
 
1165
    for j in 1 to 5 loop
1166
      SetOutboundWriteFrame;
1167
      assert (outboundWriteFrameFull = '0')
1168
        report "Unexpected writeFrameFull." severity error;
1169
      assert (outboundReadFrameEmpty = '0')
1170
        report "Unexpected readFrameEmpty." severity error;
1171
      assert (outboundReadWindowEmpty = '0')
1172
        report "Unexpected readWindowEmpty." severity error;
1173
 
1174
      for i in 0 to 30 loop
1175
        SetOutboundWriteContent(std_logic_vector(to_unsigned(j+i, 32)));
1176
        assert (outboundWriteFrameFull = '0')
1177
          report "Unexpected writeFrameFull." severity error;
1178
        assert (outboundReadFrameEmpty = '0')
1179
          report "Unexpected readFrameEmpty." severity error;
1180
        assert (outboundReadWindowEmpty = '0')
1181
          report "Unexpected readWindowEmpty." severity error;
1182
      end loop;
1183
    end loop;
1184
 
1185
    SetOutboundWriteFrame;
1186
    assert (outboundWriteFrameFull = '0')
1187
      report "Unexpected writeFrameFull." severity error;
1188
    assert (outboundReadFrameEmpty = '0')
1189
      report "Unexpected readFrameEmpty." severity error;
1190
    assert (outboundReadWindowEmpty = '0')
1191
      report "Unexpected readWindowEmpty." severity error;
1192
 
1193
    for i in 0 to 68 loop
1194
      SetOutboundWriteContent(std_logic_vector(to_unsigned(1024+i, 32)));
1195
      assert (outboundWriteFrameFull = '0')
1196
        report "Unexpected writeFrameFull." severity error;
1197
      assert (outboundReadFrameEmpty = '0')
1198
        report "Unexpected readFrameEmpty." severity error;
1199
      assert (outboundReadWindowEmpty = '0')
1200
        report "Unexpected readWindowEmpty." severity error;
1201
    end loop;
1202
 
1203
    SetOutboundWriteFrame;
1204
    assert (outboundWriteFrameFull = '1')
1205
      report "Unexpected writeFrameFull." severity error;
1206
    assert (outboundReadFrameEmpty = '0')
1207
      report "Unexpected readFrameEmpty." severity error;
1208
    assert (outboundReadWindowEmpty = '0')
1209
      report "Unexpected readWindowEmpty." severity error;
1210
 
1211
    ---------------------------------------------------------------------------
1212
    -- Read the whole window until it is empty.
1213
    ---------------------------------------------------------------------------
1214
 
1215
    for j in 0 to 5 loop
1216 16 magro732
      for i in 0 to 29 loop
1217 3 magro732
        SetOutboundReadContent(std_logic_vector(to_unsigned(j+i, 32)));
1218
        assert (outboundWriteFrameFull = '1')
1219
          report "Unexpected writeFrameFull." severity error;
1220
        assert (outboundReadFrameEmpty = '0')
1221
          report "Unexpected readFrameEmpty." severity error;
1222
        assert (outboundReadWindowEmpty = '0')
1223
          report "Unexpected readWindowEmpty." severity error;
1224
      end loop;
1225
 
1226 16 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(j+30, 32)), '1');
1227 3 magro732
      assert (outboundWriteFrameFull = '1')
1228
        report "Unexpected writeFrameFull." severity error;
1229
      assert (outboundReadFrameEmpty = '0')
1230
        report "Unexpected readFrameEmpty." severity error;
1231
      assert (outboundReadWindowEmpty = '0')
1232
        report "Unexpected readWindowEmpty." severity error;
1233
 
1234
      SetOutboundReadWindowNext;
1235
      assert (outboundWriteFrameFull = '1')
1236
        report "Unexpected writeFrameFull." severity error;
1237
      assert (outboundReadFrameEmpty = '0')
1238
        report "Unexpected readFrameEmpty." severity error;
1239
      assert (outboundReadWindowEmpty = '0')
1240
        report "Unexpected readWindowEmpty." severity error;
1241
    end loop;
1242
 
1243 16 magro732
    for i in 0 to 67 loop
1244 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1024+i, 32)));
1245
      assert (outboundWriteFrameFull = '1')
1246
        report "Unexpected writeFrameFull." severity error;
1247
      assert (outboundReadFrameEmpty = '0')
1248
        report "Unexpected readFrameEmpty." severity error;
1249
      assert (outboundReadWindowEmpty = '0')
1250
        report "Unexpected readWindowEmpty." severity error;
1251
    end loop;
1252
 
1253 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1024+68, 32)), '1');
1254 3 magro732
    assert (outboundWriteFrameFull = '1')
1255
      report "Unexpected writeFrameFull." severity error;
1256
    assert (outboundReadFrameEmpty = '0')
1257
      report "Unexpected readFrameEmpty." severity error;
1258
    assert (outboundReadWindowEmpty = '0')
1259
      report "Unexpected readWindowEmpty." severity error;
1260
 
1261
    SetOutboundReadWindowNext;
1262
    assert (outboundWriteFrameFull = '1')
1263
      report "Unexpected writeFrameFull." severity error;
1264
    assert (outboundReadFrameEmpty = '0')
1265
      report "Unexpected readFrameEmpty." severity error;
1266
    assert (outboundReadWindowEmpty = '1')
1267
      report "Unexpected readWindowEmpty." severity error;
1268
 
1269
    ---------------------------------------------------------------------------
1270
    -- Reset the window and remove all frames.
1271
    ---------------------------------------------------------------------------
1272
 
1273
    SetOutboundReadWindowReset;
1274
    assert (outboundWriteFrameFull = '1')
1275
      report "Unexpected writeFrameFull." severity error;
1276
    assert (outboundReadFrameEmpty = '0')
1277
      report "Unexpected readFrameEmpty." severity error;
1278
    assert (outboundReadWindowEmpty = '0')
1279
      report "Unexpected readWindowEmpty." severity error;
1280
 
1281
    for j in 0 to 1 loop
1282
      SetOutboundReadFrame;
1283
      assert (outboundWriteFrameFull = '1')
1284
        report "Unexpected writeFrameFull." severity error;
1285
      assert (outboundReadFrameEmpty = '0')
1286
        report "Unexpected readFrameEmpty." severity error;
1287
      assert (outboundReadWindowEmpty = '0')
1288
        report "Unexpected readWindowEmpty." severity error;
1289
    end loop;
1290
 
1291
    for j in 2 to 5 loop
1292
      SetOutboundReadFrame;
1293
      assert (outboundWriteFrameFull = '0')
1294
        report "Unexpected writeFrameFull." severity error;
1295
      assert (outboundReadFrameEmpty = '0')
1296
        report "Unexpected readFrameEmpty." severity error;
1297
      assert (outboundReadWindowEmpty = '0')
1298
        report "Unexpected readWindowEmpty." severity error;
1299
    end loop;
1300
 
1301
    SetOutboundReadWindowReset;
1302
    assert (outboundWriteFrameFull = '0')
1303
      report "Unexpected writeFrameFull." severity error;
1304
    assert (outboundReadFrameEmpty = '0')
1305
      report "Unexpected readFrameEmpty." severity error;
1306
    assert (outboundReadWindowEmpty = '0')
1307
      report "Unexpected readWindowEmpty." severity error;
1308
 
1309 16 magro732
    for i in 0 to 67 loop
1310 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1024+i, 32)));
1311
      assert (outboundWriteFrameFull = '0')
1312
        report "Unexpected writeFrameFull." severity error;
1313
      assert (outboundReadFrameEmpty = '0')
1314
        report "Unexpected readFrameEmpty." severity error;
1315
      assert (outboundReadWindowEmpty = '0')
1316
        report "Unexpected readWindowEmpty." severity error;
1317
    end loop;
1318
 
1319 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1024+68, 32)), '1');
1320 3 magro732
    assert (outboundWriteFrameFull = '0')
1321
      report "Unexpected writeFrameFull." severity error;
1322
    assert (outboundReadFrameEmpty = '0')
1323
      report "Unexpected readFrameEmpty." severity error;
1324
    assert (outboundReadWindowEmpty = '0')
1325
      report "Unexpected readWindowEmpty." severity error;
1326
 
1327
    SetOutboundReadWindowNext;
1328
    assert (outboundWriteFrameFull = '0')
1329
      report "Unexpected writeFrameFull." severity error;
1330
    assert (outboundReadFrameEmpty = '0')
1331
      report "Unexpected readFrameEmpty." severity error;
1332
    assert (outboundReadWindowEmpty = '1')
1333
      report "Unexpected readWindowEmpty." severity error;
1334
 
1335
    SetOutboundReadFrame;
1336
    assert (outboundWriteFrameFull = '0')
1337
      report "Unexpected writeFrameFull." severity error;
1338
    assert (outboundReadFrameEmpty = '1')
1339
      report "Unexpected readFrameEmpty." severity error;
1340
    assert (outboundReadWindowEmpty = '1')
1341
      report "Unexpected readWindowEmpty." severity error;
1342
 
1343
    ---------------------------------------------------------------------------
1344 51 magro732
    TestSpec("-----------------------------------------------------------------");
1345
    TestSpec("Step 5:");
1346
    TestSpec("Action: Add maximum number of words -1 and test the window accesses.");
1347
    TestSpec("Result: The content memory should not accept more frames.");
1348 3 magro732
    ---------------------------------------------------------------------------
1349 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC2-Step5");
1350 3 magro732
    ---------------------------------------------------------------------------
1351
 
1352
    assert (outboundWriteFrameFull = '0')
1353
      report "Unexpected writeFrameFull." severity error;
1354
    assert (outboundReadFrameEmpty = '1')
1355
      report "Unexpected readFrameEmpty." severity error;
1356
    assert (outboundReadWindowEmpty = '1')
1357
      report "Unexpected readWindowEmpty." severity error;
1358
 
1359
    ---------------------------------------------------------------------------
1360
    -- Write 11*17=187 (one full frame will not fit).
1361
    ---------------------------------------------------------------------------
1362
 
1363
    for i in 0 to 16 loop
1364
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
1365
      assert (outboundWriteFrameFull = '0')
1366
        report "Unexpected writeFrameFull." severity error;
1367
      assert (outboundReadFrameEmpty = '1')
1368
        report "Unexpected readFrameEmpty." severity error;
1369
      assert (outboundReadWindowEmpty = '1')
1370
        report "Unexpected readWindowEmpty." severity error;
1371
    end loop;
1372
 
1373
    for j in 1 to 10 loop
1374
      SetOutboundWriteFrame;
1375
      assert (outboundWriteFrameFull = '0')
1376
        report "Unexpected writeFrameFull." severity error;
1377
      assert (outboundReadFrameEmpty = '0')
1378
        report "Unexpected readFrameEmpty." severity error;
1379
      assert (outboundReadWindowEmpty = '0')
1380
        report "Unexpected readWindowEmpty." severity error;
1381
 
1382
      for i in 0 to 16 loop
1383
        SetOutboundWriteContent(std_logic_vector(to_unsigned(j+i, 32)));
1384
        assert (outboundWriteFrameFull = '0')
1385
          report "Unexpected writeFrameFull." severity error;
1386
        assert (outboundReadFrameEmpty = '0')
1387
          report "Unexpected readFrameEmpty." severity error;
1388
        assert (outboundReadWindowEmpty = '0')
1389
          report "Unexpected readWindowEmpty." severity error;
1390
      end loop;
1391
    end loop;
1392
 
1393
    SetOutboundWriteFrame;
1394
    assert (outboundWriteFrameFull = '1')
1395
      report "Unexpected writeFrameFull." severity error;
1396
    assert (outboundReadFrameEmpty = '0')
1397
      report "Unexpected readFrameEmpty." severity error;
1398
    assert (outboundReadWindowEmpty = '0')
1399
      report "Unexpected readWindowEmpty." severity error;
1400
 
1401
    ---------------------------------------------------------------------------
1402
    -- Reset the window and remove all frames.
1403
    ---------------------------------------------------------------------------
1404
 
1405
    SetOutboundReadWindowReset;
1406
    assert (outboundWriteFrameFull = '1')
1407
      report "Unexpected writeFrameFull." severity error;
1408
    assert (outboundReadFrameEmpty = '0')
1409
      report "Unexpected readFrameEmpty." severity error;
1410
    assert (outboundReadWindowEmpty = '0')
1411
      report "Unexpected readWindowEmpty." severity error;
1412
 
1413
    SetOutboundReadWindowNext;
1414
    assert (outboundWriteFrameFull = '1')
1415
      report "Unexpected writeFrameFull." severity error;
1416
    assert (outboundReadFrameEmpty = '0')
1417
      report "Unexpected readFrameEmpty." severity error;
1418
    assert (outboundReadWindowEmpty = '0')
1419
      report "Unexpected readWindowEmpty." severity error;
1420
 
1421
    SetOutboundReadFrame;
1422
    assert (outboundWriteFrameFull = '0')
1423
      report "Unexpected writeFrameFull." severity error;
1424
    assert (outboundReadFrameEmpty = '0')
1425
      report "Unexpected readFrameEmpty." severity error;
1426
    assert (outboundReadWindowEmpty = '0')
1427
      report "Unexpected readWindowEmpty." severity error;
1428
 
1429
    for j in 1 to 9 loop
1430
      SetOutboundReadWindowNext;
1431
      assert (outboundWriteFrameFull = '0')
1432
        report "Unexpected writeFrameFull." severity error;
1433
      assert (outboundReadFrameEmpty = '0')
1434
        report "Unexpected readFrameEmpty." severity error;
1435
      assert (outboundReadWindowEmpty = '0')
1436
        report "Unexpected readWindowEmpty." severity error;
1437
 
1438
      SetOutboundReadFrame;
1439
      assert (outboundWriteFrameFull = '0')
1440
        report "Unexpected writeFrameFull." severity error;
1441
      assert (outboundReadFrameEmpty = '0')
1442
        report "Unexpected readFrameEmpty." severity error;
1443
      assert (outboundReadWindowEmpty = '0')
1444
        report "Unexpected readWindowEmpty." severity error;
1445
    end loop;
1446
 
1447
    SetOutboundReadWindowNext;
1448
    assert (outboundWriteFrameFull = '0')
1449
      report "Unexpected writeFrameFull." severity error;
1450
    assert (outboundReadFrameEmpty = '0')
1451
      report "Unexpected readFrameEmpty." severity error;
1452
    assert (outboundReadWindowEmpty = '1')
1453
      report "Unexpected readWindowEmpty." severity error;
1454
 
1455
    SetOutboundReadFrame;
1456
    assert (outboundWriteFrameFull = '0')
1457
      report "Unexpected writeFrameFull." severity error;
1458
    assert (outboundReadFrameEmpty = '1')
1459
      report "Unexpected readFrameEmpty." severity error;
1460
    assert (outboundReadWindowEmpty = '1')
1461
      report "Unexpected readWindowEmpty." severity error;
1462
 
1463
    ---------------------------------------------------------------------------
1464 51 magro732
    TestSpec("-----------------------------------------------------------------");
1465
    TestSpec("Step 6:");
1466
    TestSpec("Action: Add two frames and start reading the second, then remove");
1467
    TestSpec("        the first.");
1468
    TestSpec("Result: The readContentEnd flag should not be changed when frames");
1469
    TestSpec("        are removed.");
1470 3 magro732
    ---------------------------------------------------------------------------
1471 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC2-Step6");
1472 3 magro732
    ---------------------------------------------------------------------------
1473
 
1474
    assert (outboundWriteFrameFull = '0')
1475
      report "Unexpected writeFrameFull." severity error;
1476
    assert (outboundReadFrameEmpty = '1')
1477
      report "Unexpected readFrameEmpty." severity error;
1478
    assert (outboundReadWindowEmpty = '1')
1479
      report "Unexpected readWindowEmpty." severity error;
1480
 
1481
    ---------------------------------------------------------------------------
1482
    -- 
1483
    ---------------------------------------------------------------------------
1484
 
1485
    for i in 0 to 3 loop
1486
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
1487
      assert (outboundWriteFrameFull = '0')
1488
 
1489
        report "Unexpected writeFrameFull." severity error;
1490
      assert (outboundReadFrameEmpty = '1')
1491
        report "Unexpected readFrameEmpty." severity error;
1492
      assert (outboundReadWindowEmpty = '1')
1493
        report "Unexpected readWindowEmpty." severity error;
1494
    end loop;
1495
 
1496
    SetOutboundWriteFrame;
1497
    assert (outboundWriteFrameFull = '0')
1498
      report "Unexpected writeFrameFull." severity error;
1499
    assert (outboundReadFrameEmpty = '0')
1500
      report "Unexpected readFrameEmpty." severity error;
1501
    assert (outboundReadWindowEmpty = '0')
1502
      report "Unexpected readWindowEmpty." severity error;
1503
 
1504
    for i in 0 to 3 loop
1505
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i+1, 32)));
1506
      assert (outboundWriteFrameFull = '0')
1507
        report "Unexpected writeFrameFull." severity error;
1508
      assert (outboundReadFrameEmpty = '0')
1509
        report "Unexpected readFrameEmpty." severity error;
1510
      assert (outboundReadWindowEmpty = '0')
1511
        report "Unexpected readWindowEmpty." severity error;
1512
    end loop;
1513
 
1514
    SetOutboundWriteFrame;
1515
    assert (outboundWriteFrameFull = '0')
1516
      report "Unexpected writeFrameFull." severity error;
1517
    assert (outboundReadFrameEmpty = '0')
1518
      report "Unexpected readFrameEmpty." severity error;
1519
    assert (outboundReadWindowEmpty = '0')
1520
      report "Unexpected readWindowEmpty." severity error;
1521
 
1522
    ---------------------------------------------------------------------------
1523
    -- 
1524
    ---------------------------------------------------------------------------
1525
 
1526 16 magro732
    for i in 0 to 2 loop
1527 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(i, 32)));
1528
      assert (outboundWriteFrameFull = '0')
1529
        report "Unexpected writeFrameFull." severity error;
1530
      assert (outboundReadFrameEmpty = '0')
1531
        report "Unexpected readFrameEmpty." severity error;
1532
      assert (outboundReadWindowEmpty = '0')
1533
        report "Unexpected readWindowEmpty." severity error;
1534
    end loop;
1535
 
1536 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(3, 32)), '1');
1537 3 magro732
    assert (outboundWriteFrameFull = '0')
1538
      report "Unexpected writeFrameFull." severity error;
1539
    assert (outboundReadFrameEmpty = '0')
1540
      report "Unexpected readFrameEmpty." severity error;
1541
    assert (outboundReadWindowEmpty = '0')
1542
      report "Unexpected readWindowEmpty." severity error;
1543
 
1544
    SetOutboundReadWindowNext;
1545
    assert (outboundWriteFrameFull = '0')
1546
      report "Unexpected writeFrameFull." severity error;
1547
    assert (outboundReadFrameEmpty = '0')
1548
      report "Unexpected readFrameEmpty." severity error;
1549
    assert (outboundReadWindowEmpty = '0')
1550
      report "Unexpected readWindowEmpty." severity error;
1551
 
1552
    SetOutboundReadContent(std_logic_vector(to_unsigned(1, 32)));
1553
    assert (outboundWriteFrameFull = '0')
1554
      report "Unexpected writeFrameFull." severity error;
1555
    assert (outboundReadFrameEmpty = '0')
1556
      report "Unexpected readFrameEmpty." severity error;
1557
    assert (outboundReadWindowEmpty = '0')
1558
      report "Unexpected readWindowEmpty." severity error;
1559
 
1560
    SetOutboundReadFrame;
1561
    assert (outboundWriteFrameFull = '0')
1562
      report "Unexpected writeFrameFull." severity error;
1563
    assert (outboundReadFrameEmpty = '0')
1564
      report "Unexpected readFrameEmpty." severity error;
1565
    assert (outboundReadWindowEmpty = '0')
1566
      report "Unexpected readWindowEmpty." severity error;
1567
 
1568
    SetOutboundReadContent(std_logic_vector(to_unsigned(2, 32)));
1569
    assert (outboundWriteFrameFull = '0')
1570
      report "Unexpected writeFrameFull." severity error;
1571
    assert (outboundReadFrameEmpty = '0')
1572
      report "Unexpected readFrameEmpty." severity error;
1573
    assert (outboundReadWindowEmpty = '0')
1574
      report "Unexpected readWindowEmpty." severity error;
1575
 
1576
    SetOutboundReadContent(std_logic_vector(to_unsigned(3, 32)));
1577
    assert (outboundWriteFrameFull = '0')
1578
      report "Unexpected writeFrameFull." severity error;
1579
    assert (outboundReadFrameEmpty = '0')
1580
      report "Unexpected readFrameEmpty." severity error;
1581
    assert (outboundReadWindowEmpty = '0')
1582
      report "Unexpected readWindowEmpty." severity error;
1583
 
1584 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(4, 32)), '1');
1585 3 magro732
    assert (outboundWriteFrameFull = '0')
1586
      report "Unexpected writeFrameFull." severity error;
1587
    assert (outboundReadFrameEmpty = '0')
1588
      report "Unexpected readFrameEmpty." severity error;
1589
    assert (outboundReadWindowEmpty = '0')
1590
      report "Unexpected readWindowEmpty." severity error;
1591
 
1592
    SetOutboundReadWindowNext;
1593
    assert (outboundWriteFrameFull = '0')
1594
      report "Unexpected writeFrameFull." severity error;
1595
    assert (outboundReadFrameEmpty = '0')
1596
      report "Unexpected readFrameEmpty." severity error;
1597
    assert (outboundReadWindowEmpty = '1')
1598
      report "Unexpected readWindowEmpty." severity error;
1599
 
1600
    SetOutboundReadFrame;
1601
    assert (outboundWriteFrameFull = '0')
1602
      report "Unexpected writeFrameFull." severity error;
1603
    assert (outboundReadFrameEmpty = '1')
1604
      report "Unexpected readFrameEmpty." severity error;
1605
    assert (outboundReadWindowEmpty = '1')
1606
      report "Unexpected readWindowEmpty." severity error;
1607
 
1608
    ---------------------------------------------------------------------------
1609 51 magro732
    TestSpec("-----------------------------------------------------------------");
1610
    TestSpec("TG_RioPacketBuffer");
1611
    TestSpec("-----------------------------------------------------------------");
1612
    TestSpec("TG_RioPacketBuffer-TC3");
1613
    TestSpec("Description: Test operation when restarting and aborting frames.");
1614
    TestSpec("Requirement: XXXXX");
1615
    TestSpec("-----------------------------------------------------------------");
1616
    TestSpec("Step 1:");
1617
    TestSpec("Action: Write one frame and abort it.");
1618
    TestSpec("Result: The aborted frame should be discarded.");
1619 3 magro732
    ---------------------------------------------------------------------------
1620 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC3-Step1");
1621 3 magro732
    ---------------------------------------------------------------------------
1622
 
1623
    assert (outboundWriteFrameFull = '0')
1624
      report "Unexpected writeFrameFull." severity error;
1625
    assert (outboundReadFrameEmpty = '1')
1626
      report "Unexpected readFrameEmpty." severity error;
1627
    assert (outboundReadWindowEmpty = '1')
1628
      report "Unexpected readWindowEmpty." severity error;
1629
 
1630
    for i in 0 to 3 loop
1631
      SetOutboundWriteContent(std_logic_vector(to_unsigned(i, 32)));
1632
      assert (outboundWriteFrameFull = '0')
1633
        report "Unexpected writeFrameFull." severity error;
1634
      assert (outboundReadFrameEmpty = '1')
1635
        report "Unexpected readFrameEmpty." severity error;
1636
      assert (outboundReadWindowEmpty = '1')
1637
        report "Unexpected readWindowEmpty." severity error;
1638
    end loop;
1639
 
1640
    SetOutboundWriteFrameAbort;
1641
    assert (outboundWriteFrameFull = '0')
1642
      report "Unexpected writeFrameFull." severity error;
1643
    assert (outboundReadFrameEmpty = '1')
1644
      report "Unexpected readFrameEmpty." severity error;
1645
    assert (outboundReadWindowEmpty = '1')
1646
      report "Unexpected readWindowEmpty." severity error;
1647
 
1648
    ---------------------------------------------------------------------------
1649 51 magro732
    TestSpec("-----------------------------------------------------------------");
1650
    TestSpec("Step 2:");
1651
    TestSpec("Action: Write one full frame then one more that is aborted.");
1652
    TestSpec("Result: The first frame should remain and the aborted should be ");
1653
    TestSpec("        discarded.");
1654 3 magro732
    ---------------------------------------------------------------------------
1655 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC3-Step2");
1656 3 magro732
    ---------------------------------------------------------------------------
1657
 
1658
    for i in 0 to 3 loop
1659
      SetOutboundWriteContent(std_logic_vector(to_unsigned(1+i, 32)));
1660
      assert (outboundWriteFrameFull = '0')
1661
        report "Unexpected writeFrameFull." severity error;
1662
      assert (outboundReadFrameEmpty = '1')
1663
        report "Unexpected readFrameEmpty." severity error;
1664
      assert (outboundReadWindowEmpty = '1')
1665
        report "Unexpected readWindowEmpty." severity error;
1666
    end loop;
1667
 
1668
    SetOutboundWriteFrame;
1669
    assert (outboundWriteFrameFull = '0')
1670
      report "Unexpected writeFrameFull." severity error;
1671
    assert (outboundReadFrameEmpty = '0')
1672
      report "Unexpected readFrameEmpty." severity error;
1673
    assert (outboundReadWindowEmpty = '0')
1674
      report "Unexpected readWindowEmpty." severity error;
1675
 
1676
    for i in 0 to 3 loop
1677
      SetOutboundWriteContent(std_logic_vector(to_unsigned(2+i, 32)));
1678
      assert (outboundWriteFrameFull = '0')
1679
        report "Unexpected writeFrameFull." severity error;
1680
      assert (outboundReadFrameEmpty = '0')
1681
        report "Unexpected readFrameEmpty." severity error;
1682
      assert (outboundReadWindowEmpty = '0')
1683
        report "Unexpected readWindowEmpty." severity error;
1684
    end loop;
1685
 
1686
    SetOutboundWriteFrameAbort;
1687
    assert (outboundWriteFrameFull = '0')
1688
      report "Unexpected writeFrameFull." severity error;
1689
    assert (outboundReadFrameEmpty = '0')
1690
      report "Unexpected readFrameEmpty." severity error;
1691
    assert (outboundReadWindowEmpty = '0')
1692
      report "Unexpected readWindowEmpty." severity error;
1693
 
1694
    for i in 0 to 3 loop
1695
      SetOutboundWriteContent(std_logic_vector(to_unsigned(3+i, 32)));
1696
      assert (outboundWriteFrameFull = '0')
1697
        report "Unexpected writeFrameFull." severity error;
1698
      assert (outboundReadFrameEmpty = '0')
1699
        report "Unexpected readFrameEmpty." severity error;
1700
      assert (outboundReadWindowEmpty = '0')
1701
        report "Unexpected readWindowEmpty." severity error;
1702
    end loop;
1703
 
1704
    SetOutboundWriteFrame;
1705
    assert (outboundWriteFrameFull = '0')
1706
      report "Unexpected writeFrameFull." severity error;
1707
    assert (outboundReadFrameEmpty = '0')
1708
      report "Unexpected readFrameEmpty." severity error;
1709
    assert (outboundReadWindowEmpty = '0')
1710
      report "Unexpected readWindowEmpty." severity error;
1711
 
1712 16 magro732
    for i in 0 to 2 loop
1713 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1+i, 32)));
1714
      assert (outboundWriteFrameFull = '0')
1715
        report "Unexpected writeFrameFull." severity error;
1716
      assert (outboundReadFrameEmpty = '0')
1717
        report "Unexpected readFrameEmpty." severity error;
1718
      assert (outboundReadWindowEmpty = '0')
1719
        report "Unexpected readWindowEmpty." severity error;
1720
    end loop;
1721
 
1722 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1+3, 32)), '1');
1723 3 magro732
    assert (outboundWriteFrameFull = '0')
1724
      report "Unexpected writeFrameFull." severity error;
1725
    assert (outboundReadFrameEmpty = '0')
1726
      report "Unexpected readFrameEmpty." severity error;
1727
    assert (outboundReadWindowEmpty = '0')
1728
      report "Unexpected readWindowEmpty." severity error;
1729
 
1730
    SetOutboundReadWindowNext;
1731
    assert (outboundWriteFrameFull = '0')
1732
      report "Unexpected writeFrameFull." severity error;
1733
    assert (outboundReadFrameEmpty = '0')
1734
      report "Unexpected readFrameEmpty." severity error;
1735
    assert (outboundReadWindowEmpty = '0')
1736
      report "Unexpected readWindowEmpty." severity error;
1737
 
1738
    SetOutboundReadFrame;
1739
    assert (outboundWriteFrameFull = '0')
1740
      report "Unexpected writeFrameFull." severity error;
1741
    assert (outboundReadFrameEmpty = '0')
1742
      report "Unexpected readFrameEmpty." severity error;
1743
    assert (outboundReadWindowEmpty = '0')
1744
      report "Unexpected readWindowEmpty." severity error;
1745
 
1746 16 magro732
    for i in 0 to 2 loop
1747 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(3+i, 32)));
1748
      assert (outboundWriteFrameFull = '0')
1749
        report "Unexpected writeFrameFull." severity error;
1750
      assert (outboundReadFrameEmpty = '0')
1751
        report "Unexpected readFrameEmpty." severity error;
1752
      assert (outboundReadWindowEmpty = '0')
1753
        report "Unexpected readWindowEmpty." severity error;
1754
    end loop;
1755
 
1756 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(3+3, 32)), '1');
1757 3 magro732
    assert (outboundWriteFrameFull = '0')
1758
      report "Unexpected writeFrameFull." severity error;
1759
    assert (outboundReadFrameEmpty = '0')
1760
      report "Unexpected readFrameEmpty." severity error;
1761
    assert (outboundReadWindowEmpty = '0')
1762
      report "Unexpected readWindowEmpty." severity error;
1763
 
1764
    SetOutboundReadWindowNext;
1765
    assert (outboundWriteFrameFull = '0')
1766
      report "Unexpected writeFrameFull." severity error;
1767
    assert (outboundReadFrameEmpty = '0')
1768
      report "Unexpected readFrameEmpty." severity error;
1769
    assert (outboundReadWindowEmpty = '1')
1770
      report "Unexpected readWindowEmpty." severity error;
1771
 
1772
    SetOutboundReadFrame;
1773
    assert (outboundWriteFrameFull = '0')
1774
      report "Unexpected writeFrameFull." severity error;
1775
    assert (outboundReadFrameEmpty = '1')
1776
      report "Unexpected readFrameEmpty." severity error;
1777
    assert (outboundReadWindowEmpty = '1')
1778
      report "Unexpected readWindowEmpty." severity error;
1779
 
1780
    ---------------------------------------------------------------------------
1781 51 magro732
    TestSpec("-----------------------------------------------------------------");
1782
    TestSpec("Step 3:");
1783
    TestSpec("Action: Write one full frame then read one that is restarted.");
1784
    TestSpec("Result: The content of the first frame should be read twice. ");
1785 3 magro732
    ---------------------------------------------------------------------------
1786 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC3-Step3");
1787 3 magro732
    ---------------------------------------------------------------------------
1788
 
1789
    for i in 0 to 3 loop
1790
      SetOutboundWriteContent(std_logic_vector(to_unsigned(1+i, 32)));
1791
      assert (outboundWriteFrameFull = '0')
1792
        report "Unexpected writeFrameFull." severity error;
1793
      assert (outboundReadFrameEmpty = '1')
1794
        report "Unexpected readFrameEmpty." severity error;
1795
      assert (outboundReadWindowEmpty = '1')
1796
        report "Unexpected readWindowEmpty." severity error;
1797
    end loop;
1798
 
1799
    SetOutboundWriteFrame;
1800
    assert (outboundWriteFrameFull = '0')
1801
      report "Unexpected writeFrameFull." severity error;
1802
    assert (outboundReadFrameEmpty = '0')
1803
      report "Unexpected readFrameEmpty." severity error;
1804
    assert (outboundReadWindowEmpty = '0')
1805
      report "Unexpected readWindowEmpty." severity error;
1806
 
1807 16 magro732
    for i in 0 to 2 loop
1808 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1+i, 32)));
1809
      assert (outboundWriteFrameFull = '0')
1810
        report "Unexpected writeFrameFull." severity error;
1811
      assert (outboundReadFrameEmpty = '0')
1812
        report "Unexpected readFrameEmpty." severity error;
1813
      assert (outboundReadWindowEmpty = '0')
1814
        report "Unexpected readWindowEmpty." severity error;
1815
    end loop;
1816
 
1817 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1+3, 32)), '1');
1818 3 magro732
    assert (outboundWriteFrameFull = '0')
1819
      report "Unexpected writeFrameFull." severity error;
1820
    assert (outboundReadFrameEmpty = '0')
1821
      report "Unexpected readFrameEmpty." severity error;
1822
    assert (outboundReadWindowEmpty = '0')
1823
      report "Unexpected readWindowEmpty." severity error;
1824
 
1825
    SetOutboundReadFrameRestart;
1826
    assert (outboundWriteFrameFull = '0')
1827
      report "Unexpected writeFrameFull." severity error;
1828
    assert (outboundReadFrameEmpty = '0')
1829
      report "Unexpected readFrameEmpty." severity error;
1830
    assert (outboundReadWindowEmpty = '0')
1831
      report "Unexpected readWindowEmpty." severity error;
1832
 
1833 16 magro732
    for i in 0 to 2 loop
1834 3 magro732
      SetOutboundReadContent(std_logic_vector(to_unsigned(1+i, 32)));
1835
      assert (outboundWriteFrameFull = '0')
1836
        report "Unexpected writeFrameFull." severity error;
1837
      assert (outboundReadFrameEmpty = '0')
1838
        report "Unexpected readFrameEmpty." severity error;
1839
      assert (outboundReadWindowEmpty = '0')
1840
        report "Unexpected readWindowEmpty." severity error;
1841
    end loop;
1842
 
1843 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1+3, 32)), '1');
1844 3 magro732
    assert (outboundWriteFrameFull = '0')
1845
      report "Unexpected writeFrameFull." severity error;
1846
    assert (outboundReadFrameEmpty = '0')
1847
      report "Unexpected readFrameEmpty." severity error;
1848
    assert (outboundReadWindowEmpty = '0')
1849
      report "Unexpected readWindowEmpty." severity error;
1850
 
1851
    SetOutboundReadWindowNext;
1852
    assert (outboundWriteFrameFull = '0')
1853
      report "Unexpected writeFrameFull." severity error;
1854
    assert (outboundReadFrameEmpty = '0')
1855
      report "Unexpected readFrameEmpty." severity error;
1856
    assert (outboundReadWindowEmpty = '1')
1857
      report "Unexpected readWindowEmpty." severity error;
1858
 
1859
    SetOutboundReadFrame;
1860
    assert (outboundWriteFrameFull = '0')
1861
      report "Unexpected writeFrameFull." severity error;
1862
    assert (outboundReadFrameEmpty = '1')
1863
      report "Unexpected readFrameEmpty." severity error;
1864
    assert (outboundReadWindowEmpty = '1')
1865
      report "Unexpected readWindowEmpty." severity error;
1866
 
1867
    ---------------------------------------------------------------------------
1868 51 magro732
    TestSpec("-----------------------------------------------------------------");
1869
    TestSpec("TG_RioPacketBuffer");
1870
    TestSpec("-----------------------------------------------------------------");
1871
    TestSpec("TG_RioPacketBuffer-TC4");
1872
    TestSpec("Description: Test operation when partial frames are read.");
1873
    TestSpec("Requirement: XXXXX");
1874
    TestSpec("-----------------------------------------------------------------");
1875
    TestSpec("Step 1:");
1876
    TestSpec("Action: Write a one word frame and read it before it is completed.");
1877
    TestSpec("Result: Empty signals should reflect the status of the frame.");
1878 3 magro732
    ---------------------------------------------------------------------------
1879 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC4-Step1");
1880 3 magro732
    ---------------------------------------------------------------------------
1881
 
1882
    assert (outboundWriteFrameFull = '0')
1883
      report "Unexpected writeFrameFull." severity error;
1884
    assert (outboundReadFrameEmpty = '1')
1885
      report "Unexpected readFrameEmpty." severity error;
1886
    assert (outboundReadWindowEmpty = '1')
1887
      report "Unexpected readWindowEmpty." severity error;
1888
    assert (outboundReadContentEmpty = '1')
1889
      report "Unexpected readContentEmpty." severity error;
1890
 
1891
    SetOutboundWriteContent(std_logic_vector(to_unsigned(1, 32)));
1892
    assert (outboundWriteFrameFull = '0')
1893
      report "Unexpected writeFrameFull." severity error;
1894
    assert (outboundReadFrameEmpty = '1')
1895
      report "Unexpected readFrameEmpty." severity error;
1896
    assert (outboundReadWindowEmpty = '1')
1897
      report "Unexpected readWindowEmpty." severity error;
1898
    assert (outboundReadContentEmpty = '0')
1899
      report "Unexpected readContentEmpty." severity error;
1900
 
1901 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1, 32)), '1');
1902 3 magro732
    assert (outboundWriteFrameFull = '0')
1903
      report "Unexpected writeFrameFull." severity error;
1904
    assert (outboundReadFrameEmpty = '1')
1905
      report "Unexpected readFrameEmpty." severity error;
1906
    assert (outboundReadWindowEmpty = '1')
1907
      report "Unexpected readWindowEmpty." severity error;
1908
    assert (outboundReadContentEmpty = '1')
1909
      report "Unexpected readContentEmpty." severity error;
1910
 
1911
    SetOutboundWriteFrame;
1912
    assert (outboundWriteFrameFull = '0')
1913
      report "Unexpected writeFrameFull." severity error;
1914
    assert (outboundReadFrameEmpty = '0')
1915
      report "Unexpected readFrameEmpty." severity error;
1916
    assert (outboundReadWindowEmpty = '0')
1917
      report "Unexpected readWindowEmpty." severity error;
1918
    assert (outboundReadContentEmpty = '0')
1919
      report "Unexpected readContentEmpty." severity error;
1920
 
1921
    SetOutboundReadWindowNext;
1922
    assert (outboundWriteFrameFull = '0')
1923
      report "Unexpected writeFrameFull." severity error;
1924
    assert (outboundReadFrameEmpty = '0')
1925
      report "Unexpected readFrameEmpty." severity error;
1926
    assert (outboundReadWindowEmpty = '1')
1927
      report "Unexpected readWindowEmpty." severity error;
1928
    assert (outboundReadContentEmpty = '1')
1929
      report "Unexpected readContentEmpty." severity error;
1930
 
1931
    SetOutboundReadFrame;
1932
    assert (outboundWriteFrameFull = '0')
1933
      report "Unexpected writeFrameFull." severity error;
1934
    assert (outboundReadFrameEmpty = '1')
1935
      report "Unexpected readFrameEmpty." severity error;
1936
    assert (outboundReadWindowEmpty = '1')
1937
      report "Unexpected readWindowEmpty." severity error;
1938
    assert (outboundReadContentEmpty = '1')
1939
      report "Unexpected readContentEmpty." severity error;
1940
 
1941
    ---------------------------------------------------------------------------
1942 51 magro732
    TestSpec("-----------------------------------------------------------------");
1943
    TestSpec("Step 2:");
1944
    TestSpec("Action: Write content to a frame and read it, then abort the frame.");
1945
    TestSpec("Result: The reader should be notified about the aborted frame. The");
1946
    TestSpec("        notification should be reset when the frame has been ");
1947
    TestSpec("        restarted.");
1948 3 magro732
    ---------------------------------------------------------------------------
1949 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC4-Step2");
1950 3 magro732
    ---------------------------------------------------------------------------
1951
 
1952
    SetOutboundWriteContent(std_logic_vector(to_unsigned(1, 32)));
1953
    assert (outboundWriteFrameFull = '0')
1954
      report "Unexpected writeFrameFull." severity error;
1955
    assert (outboundReadFrameEmpty = '1')
1956
      report "Unexpected readFrameEmpty." severity error;
1957
    assert (outboundReadWindowEmpty = '1')
1958
      report "Unexpected readWindowEmpty." severity error;
1959
    assert (outboundReadContentEmpty = '0')
1960
      report "Unexpected readContentEmpty." severity error;
1961
    assert (outboundReadFrameAborted = '0')
1962
      report "Unexpected readFrameAborted." severity error;
1963
 
1964
    SetOutboundReadContent(std_logic_vector(to_unsigned(1, 32)));
1965
    assert (outboundWriteFrameFull = '0')
1966
      report "Unexpected writeFrameFull." severity error;
1967
    assert (outboundReadFrameEmpty = '1')
1968
      report "Unexpected readFrameEmpty." severity error;
1969
    assert (outboundReadWindowEmpty = '1')
1970
      report "Unexpected readWindowEmpty." severity error;
1971
    assert (outboundReadContentEmpty = '1')
1972
      report "Unexpected readContentEmpty." severity error;
1973
    assert (outboundReadFrameAborted = '0')
1974
      report "Unexpected readFrameAborted." severity error;
1975
 
1976
    SetOutboundWriteFrameAbort;
1977
    assert (outboundWriteFrameFull = '0')
1978
      report "Unexpected writeFrameFull." severity error;
1979
    assert (outboundReadFrameEmpty = '1')
1980
      report "Unexpected readFrameEmpty." severity error;
1981
    assert (outboundReadWindowEmpty = '1')
1982
      report "Unexpected readWindowEmpty." severity error;
1983
    assert (outboundReadContentEmpty = '0')
1984
      report "Unexpected readContentEmpty." severity error;
1985
    assert (outboundReadFrameAborted = '1')
1986
      report "Unexpected readFrameAborted." severity error;
1987
 
1988
    SetOutboundWriteContent(std_logic_vector(to_unsigned(2, 32)));
1989
    assert (outboundWriteFrameFull = '0')
1990
      report "Unexpected writeFrameFull." severity error;
1991
    assert (outboundReadFrameEmpty = '1')
1992
      report "Unexpected readFrameEmpty." severity error;
1993
    assert (outboundReadWindowEmpty = '1')
1994
      report "Unexpected readWindowEmpty." severity error;
1995
    assert (outboundReadContentEmpty = '1')
1996
      report "Unexpected readContentEmpty." severity error;
1997
    assert (outboundReadFrameAborted = '1')
1998
      report "Unexpected readFrameAborted." severity error;
1999
 
2000
    SetOutboundReadFrameRestart;
2001
    assert (outboundWriteFrameFull = '0')
2002
      report "Unexpected writeFrameFull." severity error;
2003
    assert (outboundReadFrameEmpty = '1')
2004
      report "Unexpected readFrameEmpty." severity error;
2005
    assert (outboundReadWindowEmpty = '1')
2006
      report "Unexpected readWindowEmpty." severity error;
2007
    assert (outboundReadContentEmpty = '0')
2008
      report "Unexpected readContentEmpty." severity error;
2009
    assert (outboundReadFrameAborted = '0')
2010
      report "Unexpected readFrameAborted." severity error;
2011
 
2012 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(2, 32)), '1');
2013 3 magro732
    assert (outboundWriteFrameFull = '0')
2014
      report "Unexpected writeFrameFull." severity error;
2015
    assert (outboundReadFrameEmpty = '1')
2016
      report "Unexpected readFrameEmpty." severity error;
2017
    assert (outboundReadWindowEmpty = '1')
2018
      report "Unexpected readWindowEmpty." severity error;
2019
    assert (outboundReadContentEmpty = '1')
2020
      report "Unexpected readContentEmpty." severity error;
2021
    assert (outboundReadFrameAborted = '0')
2022
      report "Unexpected readFrameAborted." severity error;
2023
 
2024
    SetOutboundWriteFrame;
2025
    assert (outboundWriteFrameFull = '0')
2026
      report "Unexpected writeFrameFull." severity error;
2027
    assert (outboundReadFrameEmpty = '0')
2028
      report "Unexpected readFrameEmpty." severity error;
2029
    assert (outboundReadWindowEmpty = '0')
2030
      report "Unexpected readWindowEmpty." severity error;
2031
    assert (outboundReadContentEmpty = '0')
2032
      report "Unexpected readContentEmpty." severity error;
2033
    assert (outboundReadFrameAborted = '0')
2034
      report "Unexpected readFrameAborted." severity error;
2035
 
2036
    SetOutboundReadWindowNext;
2037
    assert (outboundWriteFrameFull = '0')
2038
      report "Unexpected writeFrameFull." severity error;
2039
    assert (outboundReadFrameEmpty = '0')
2040
      report "Unexpected readFrameEmpty." severity error;
2041
    assert (outboundReadWindowEmpty = '1')
2042
      report "Unexpected readWindowEmpty." severity error;
2043
    assert (outboundReadContentEmpty = '1')
2044
      report "Unexpected readContentEmpty." severity error;
2045
    assert (outboundReadFrameAborted = '0')
2046
      report "Unexpected readFrameAborted." severity error;
2047
 
2048
    SetOutboundReadFrame;
2049
    assert (outboundWriteFrameFull = '0')
2050
      report "Unexpected writeFrameFull." severity error;
2051
    assert (outboundReadFrameEmpty = '1')
2052
      report "Unexpected readFrameEmpty." severity error;
2053
    assert (outboundReadWindowEmpty = '1')
2054
      report "Unexpected readWindowEmpty." severity error;
2055
    assert (outboundReadContentEmpty = '1')
2056
      report "Unexpected readContentEmpty." severity error;
2057
    assert (outboundReadFrameAborted = '0')
2058
      report "Unexpected readFrameAborted." severity error;
2059
 
2060
    ---------------------------------------------------------------------------
2061 51 magro732
    TestSpec("-----------------------------------------------------------------");
2062
    TestSpec("Step 3:");
2063
    TestSpec("Action: Write one complete frame then abort a second.");
2064
    TestSpec("Result: The reader should not notice the aborted frame. ");
2065 3 magro732
    ---------------------------------------------------------------------------
2066 51 magro732
    TestCaseStart("TG_RioPacketBuffer-TC4-Step3");
2067 3 magro732
    ---------------------------------------------------------------------------
2068
 
2069
    SetOutboundWriteContent(std_logic_vector(to_unsigned(1, 32)));
2070
    assert (outboundWriteFrameFull = '0')
2071
      report "Unexpected writeFrameFull." severity error;
2072
    assert (outboundReadFrameEmpty = '1')
2073
      report "Unexpected readFrameEmpty." severity error;
2074
    assert (outboundReadWindowEmpty = '1')
2075
      report "Unexpected readWindowEmpty." severity error;
2076
    assert (outboundReadContentEmpty = '0')
2077
      report "Unexpected readContentEmpty." severity error;
2078
    assert (outboundReadFrameAborted = '0')
2079
      report "Unexpected readFrameAborted." severity error;
2080
 
2081 16 magro732
    SetOutboundReadContent(std_logic_vector(to_unsigned(1, 32)), '1');
2082 3 magro732
    assert (outboundWriteFrameFull = '0')
2083
      report "Unexpected writeFrameFull." severity error;
2084
    assert (outboundReadFrameEmpty = '1')
2085
      report "Unexpected readFrameEmpty." severity error;
2086
    assert (outboundReadWindowEmpty = '1')
2087
      report "Unexpected readWindowEmpty." severity error;
2088
    assert (outboundReadContentEmpty = '1')
2089
      report "Unexpected readContentEmpty." severity error;
2090
    assert (outboundReadFrameAborted = '0')
2091
      report "Unexpected readFrameAborted." severity error;
2092
 
2093
    SetOutboundWriteFrame;
2094
    assert (outboundWriteFrameFull = '0')
2095
      report "Unexpected writeFrameFull." severity error;
2096
    assert (outboundReadFrameEmpty = '0')
2097
      report "Unexpected readFrameEmpty." severity error;
2098
    assert (outboundReadWindowEmpty = '0')
2099
      report "Unexpected readWindowEmpty." severity error;
2100
    assert (outboundReadContentEmpty = '0')
2101
      report "Unexpected readContentEmpty." severity error;
2102
    assert (outboundReadFrameAborted = '0')
2103
      report "Unexpected readFrameAborted." severity error;
2104
 
2105
    SetOutboundWriteContent(std_logic_vector(to_unsigned(2, 32)));
2106
    assert (outboundWriteFrameFull = '0')
2107
      report "Unexpected writeFrameFull." severity error;
2108
    assert (outboundReadFrameEmpty = '0')
2109
      report "Unexpected readFrameEmpty." severity error;
2110
    assert (outboundReadWindowEmpty = '0')
2111
      report "Unexpected readWindowEmpty." severity error;
2112
    assert (outboundReadContentEmpty = '0')
2113
      report "Unexpected readContentEmpty." severity error;
2114
    assert (outboundReadFrameAborted = '0')
2115
      report "Unexpected readFrameAborted." severity error;
2116
 
2117
    SetOutboundWriteFrameAbort;
2118
    assert (outboundWriteFrameFull = '0')
2119
      report "Unexpected writeFrameFull." severity error;
2120
    assert (outboundReadFrameEmpty = '0')
2121
      report "Unexpected readFrameEmpty." severity error;
2122
    assert (outboundReadWindowEmpty = '0')
2123
      report "Unexpected readWindowEmpty." severity error;
2124
    assert (outboundReadContentEmpty = '0')
2125
      report "Unexpected readContentEmpty." severity error;
2126
    assert (outboundReadFrameAborted = '0')
2127
      report "Unexpected readFrameAborted." severity error;
2128
 
2129
    SetOutboundReadWindowNext;
2130
    assert (outboundWriteFrameFull = '0')
2131
      report "Unexpected writeFrameFull." severity error;
2132
    assert (outboundReadFrameEmpty = '0')
2133
      report "Unexpected readFrameEmpty." severity error;
2134
    assert (outboundReadWindowEmpty = '1')
2135
      report "Unexpected readWindowEmpty." severity error;
2136
    assert (outboundReadContentEmpty = '1')
2137
      report "Unexpected readContentEmpty." severity error;
2138
    assert (outboundReadFrameAborted = '0')
2139
      report "Unexpected readFrameAborted." severity error;
2140
 
2141
    SetOutboundReadFrame;
2142
    assert (outboundWriteFrameFull = '0')
2143
      report "Unexpected writeFrameFull." severity error;
2144
    assert (outboundReadFrameEmpty = '1')
2145
      report "Unexpected readFrameEmpty." severity error;
2146
    assert (outboundReadWindowEmpty = '1')
2147
      report "Unexpected readWindowEmpty." severity error;
2148
    assert (outboundReadContentEmpty = '1')
2149
      report "Unexpected readContentEmpty." severity error;
2150
    assert (outboundReadFrameAborted = '0')
2151
      report "Unexpected readFrameAborted." severity error;
2152
 
2153
    ---------------------------------------------------------------------------
2154
    -- Test completed.
2155
    ---------------------------------------------------------------------------
2156
 
2157
    TestEnd;
2158
  end process;
2159
 
2160
  -----------------------------------------------------------------------------
2161
  -- Instantiate the testobject.
2162
  -----------------------------------------------------------------------------
2163
 
2164
  TestPacketBuffer: RioPacketBufferWindow
2165
    port map(
2166
      clk=>clk, areset_n=>areset_n,
2167
      inboundWriteFrameFull_o=>inboundWriteFrameFull,
2168
      inboundWriteFrame_i=>inboundWriteFrame,
2169
      inboundWriteFrameAbort_i=>inboundWriteFrameAbort,
2170
      inboundWriteContent_i=>inboundWriteContent,
2171
      inboundWriteContentData_i=>inboundWriteContentData,
2172
      inboundReadFrameEmpty_o=>inboundReadFrameEmpty,
2173
      inboundReadFrame_i=>inboundReadFrame,
2174
      inboundReadFrameRestart_i=>inboundReadFrameRestart,
2175
      inboundReadFrameAborted_o=>inboundReadFrameAborted,
2176
      inboundReadContentEmpty_o=>inboundReadContentEmpty,
2177
      inboundReadContent_i=>inboundReadContent,
2178
      inboundReadContentEnd_o=>inboundReadContentEnd,
2179
      inboundReadContentData_o=>inboundReadContentData,
2180
      outboundWriteFrameFull_o=>outboundWriteFrameFull,
2181
      outboundWriteFrame_i=>outboundWriteFrame,
2182
      outboundWriteFrameAbort_i=>outboundWriteFrameAbort,
2183
      outboundWriteContent_i=>outboundWriteContent,
2184
      outboundWriteContentData_i=>outboundWriteContentData,
2185
      outboundReadFrameEmpty_o=>outboundReadFrameEmpty,
2186
      outboundReadFrame_i=>outboundReadFrame,
2187
      outboundReadFrameRestart_i=>outboundReadFrameRestart,
2188
      outboundReadFrameAborted_o=>outboundReadFrameAborted,
2189
      outboundReadWindowEmpty_o=>outboundReadWindowEmpty,
2190
      outboundReadWindowReset_i=>outboundReadWindowReset,
2191
      outboundReadWindowNext_i=>outboundReadWindowNext,
2192
      outboundReadContentEmpty_o=>outboundReadContentEmpty,
2193
      outboundReadContent_i=>outboundReadContent,
2194
      outboundReadContentEnd_o=>outboundReadContentEnd,
2195
      outboundReadContentData_o=>outboundReadContentData);
2196
 
2197
end architecture;

powered by: WebSVN 2.1.0

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