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

Subversion Repositories ratpack

[/] [ratpack/] [trunk/] [bench/] [vhdl/] [ratpack_tb1.vhd] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 kavi
--------------------------------------------------------------------------------
2
-- Filename: ratpack_tb1.vhd
3
-- Purpose : A simple testbench for "ratpack".
4
-- Author  : Nikolaos Kavvadias <nikolaos.kavvadias@gmail.com>
5
-- Date    : 14-May-2010
6
-- Version : 0.1
7
-- Revision: 0.0.0 (2010/05/14)
8
--           Initial version.
9
-- License : Copyright (C) 2010 by Nikolaos Kavvadias 
10
--           This program is free software. You can redistribute it and/or 
11
--           modify it under the terms of the GNU Lesser General Public License, 
12
--           either version 3 of the License, or (at your option) any later 
13
--           version. See COPYING.
14
--
15
--------------------------------------------------------------------------------
16
 
17
library STD, IEEE;
18
use STD.textio.all;
19
use IEEE.std_logic_1164.all;
20
use WORK.ratpack.all;
21
 
22
 
23
entity ratpack_tb is
24
end ratpack_tb;
25
 
26
 
27
architecture tb_arch of ratpack_tb is
28
  -------------------------------------------------------
29
  -- Declare results file
30
  -------------------------------------------------------
31
  file ResultsFile: text open write_mode is
32
  "ratpack_results.txt";
33
  -------------------------------------------------------
34
  -- Constant declarations
35
  -------------------------------------------------------
36
  constant CLK_PERIOD : time := 10 ns;
37
begin
38
 
39
  -- Test the basic operators. 
40
  TEST_OPS: process
41
    variable a, b, c: rational := RAT_ZERO;
42
    variable BufLine: line;
43
  begin
44
    a := to_rational(5, 12);
45
    b := to_rational(2, 3);
46
    wait for CLK_PERIOD;
47
    -- Test rational addition
48
    c := a + b;
49
    write(Bufline, a(numer));
50
    write(Bufline, string'("/"));
51
    write(Bufline, a(denom));
52
    write(Bufline, string'(" + "));
53
    write(Bufline, b(numer));
54
    write(Bufline, string'("/"));
55
    write(Bufline, b(denom));
56
    write(Bufline, string'(" = "));
57
    write(Bufline, c(numer));
58
    write(Bufline, string'("/"));
59
    write(Bufline, c(denom));
60
    writeline(ResultsFile, Bufline);
61
    wait for CLK_PERIOD;
62
    -- Test rational subtraction
63
    c := a - b;
64
    write(Bufline, a(numer));
65
    write(Bufline, string'("/"));
66
    write(Bufline, a(denom));
67
    write(Bufline, string'(" - "));
68
    write(Bufline, b(numer));
69
    write(Bufline, string'("/"));
70
    write(Bufline, b(denom));
71
    write(Bufline, string'(" = "));
72
    write(Bufline, c(numer));
73
    write(Bufline, string'("/"));
74
    write(Bufline, c(denom));
75
    writeline(ResultsFile, Bufline);
76
    wait for CLK_PERIOD;
77
    -- Test rational multiplication
78
    c := a * b;
79
    write(Bufline, a(numer));
80
    write(Bufline, string'("/"));
81
    write(Bufline, a(denom));
82
    write(Bufline, string'(" * "));
83
    write(Bufline, b(numer));
84
    write(Bufline, string'("/"));
85
    write(Bufline, b(denom));
86
    write(Bufline, string'(" = "));
87
    write(Bufline, c(numer));
88
    write(Bufline, string'("/"));
89
    write(Bufline, c(denom));
90
    writeline(ResultsFile, Bufline);
91
    wait for CLK_PERIOD;
92
    -- Test rational division
93
    c := a / b;
94
    write(Bufline, a(numer));
95
    write(Bufline, string'("/"));
96
    write(Bufline, a(denom));
97
    write(Bufline, string'(" : "));
98
    write(Bufline, b(numer));
99
    write(Bufline, string'("/"));
100
    write(Bufline, b(denom));
101
    write(Bufline, string'(" = "));
102
    write(Bufline, c(numer));
103
    write(Bufline, string'("/"));
104
    write(Bufline, c(denom));
105
    writeline(ResultsFile, Bufline);
106
    wait for CLK_PERIOD;
107
    -- Test mediant
108
    c := mediant(a, b);
109
    write(Bufline, string'("mediant("));
110
    write(Bufline, a(numer));
111
    write(Bufline, string'("/"));
112
    write(Bufline, a(denom));
113
    write(Bufline, string'(" , "));
114
    write(Bufline, b(numer));
115
    write(Bufline, string'("/"));
116
    write(Bufline, b(denom));
117
    write(Bufline, string'(") = "));
118
    write(Bufline, c(numer));
119
    write(Bufline, string'("/"));
120
    write(Bufline, c(denom));
121
    writeline(ResultsFile, Bufline);
122
    wait for CLK_PERIOD;
123
  end process TEST_OPS;
124
 
125
end tb_arch;

powered by: WebSVN 2.1.0

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