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

Subversion Repositories lateq

[/] [lateq/] [trunk/] [hdl_single_type/] [src/] [lateq_pkg.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 wzab
-------------------------------------------------------------------------------
2
-- Title      : Versatile latency checker/equalizer for pipelines
3
--            : package with types and functions definitions
4
-- Project    :
5
-------------------------------------------------------------------------------
6
-- File       : lateq.vhd
7
-- Author     : Wojciech M. Zabolotny ( wzab01<at>gmail.com )
8
-- Company    :
9
-- License    : BSD
10
-- Created    : 2013-11-01
11
-- Standard   : VHDL'93/02
12
 
13
-- Libraries used
14
library ieee;
15
use ieee.std_logic_1164.all;
16
use ieee.numeric_std.all;
17
use std.textio.all;
18
 
19
library work;
20
 
21
package lateq_pkg is
22
 
23
  -- pragma translate_off
24
 
25
  file f_lat_rep : text is out "/tmp/latrep.txt";
26
  file f_leq_mode : text is in "/tmp/lateq_mode.txt";
27
 
28
  -- Function reading the simulation mode
29
  function lateq_mode_read
30
    return integer;
31
 
32
  constant C_LATEQ_MODE     : integer   :=  lateq_mode_read;
33
 
34
  subtype T_LATEQ_MRK is integer;
35
  constant C_LATEQ_MRK_INIT : integer := -1;
36
 
37
  -- Function reporting the delay for analyzis
38
  procedure lateq_report_delay (
39
    constant s1     :    string;
40
    constant i1, i2 : in integer);
41
  -- Function marking the end of reports from single block
42
  procedure lateq_report_end (
43
    constant s1 : string);
44
 
45
  -- Function for comparison of time markers
46
  function lateq_mrk_cmp (
47
    constant v1, v2 : T_LATEQ_MRK)
48
    return integer;
49
 
50
  -- Function converting time marker to string (for reports)
51
  function lateq_mrk_to_str (
52
    constant v1 : T_LATEQ_MRK)
53
    return string;
54
 
55
  -- Function incrementing the time marker
56
  function lateq_mrk_incr (
57
    constant v1 : T_LATEQ_MRK)
58
    return T_LATEQ_MRK;
59
-- pragma translate_on
60
 
61
end package lateq_pkg;
62
 
63
package body lateq_pkg is
64
 
65
 
66
  -- pragma translate_off
67
 
68
  function lateq_mode_read
69
    return integer is
70
    variable rl : line;
71
    variable res : integer;
72
    begin
73
      readline(f_leq_mode,rl);
74
      read(rl,res);
75
      return res;
76
    end function lateq_mode_read;
77
 
78
  function lateq_mrk_cmp (
79
    constant v1, v2 : T_LATEQ_MRK)
80
    return integer is
81
    variable res : integer;
82
  begin  -- function "-"
83
    res := v1-v2;
84
    return res;
85
  end function lateq_mrk_cmp;
86
 
87
  function lateq_mrk_incr (
88
    constant v1 : T_LATEQ_MRK)
89
    return T_LATEQ_MRK is
90
    variable res : T_LATEQ_MRK;
91
  begin  -- function "-"
92
    res := v1+1;
93
    return res;
94
  end function lateq_mrk_incr;
95
 
96
 
97
  procedure lateq_report_delay (
98
    constant s1     :    string;
99
    constant i1, i2 : in integer) is
100
    variable wl : line;
101
  begin
102
    write(wl, s1 & string'(","));
103
    write(wl, integer'image(i1));
104
    write(wl, string'(","));
105
    write(wl, integer'image(i2));
106
    writeline(f_lat_rep, wl);
107
  end procedure lateq_report_delay;
108
 
109
  procedure lateq_report_end (
110
    constant s1 : string) is
111
    variable wl : line;
112
  begin
113
    write(wl, s1 & string'(",end"));
114
    writeline(f_lat_rep, wl);
115
  end procedure lateq_report_end;
116
 
117
  function lateq_mrk_to_str (
118
    constant v1 : T_LATEQ_MRK)
119
    return string is
120
  begin
121
    return integer'image(v1);
122
  end function lateq_mrk_to_str;
123
 
124
  -- pragma translate_on 
125
 
126
end package body lateq_pkg;

powered by: WebSVN 2.1.0

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