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

Subversion Repositories vhdl_wavefiles

[/] [vhdl_wavefiles/] [trunk/] [src/] [Testbench-ea.vhd] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alex008
-------------------------------------------------------------------------------
2
-- Project    : VHDL WAVE files 
3
-------------------------------------------------------------------------------
4
-- File       : Testbench-ea.vhd
5
-- Author     : Alexander Lindert <alexander.lindert@fh-hagenberg.at>
6
-- Created    : 2008-08-20
7
-- Last update: 2008-08-23
8
-- Platform   : 
9
-------------------------------------------------------------------------------
10
-- Description: 
11
-------------------------------------------------------------------------------
12
-- Copyright (c) 2008 
13
-------------------------------------------------------------------------------
14
-- Revisions  :
15
-- Date        Version  
16
-- 2008-08-20  1.0    
17
-------------------------------------------------------------------------------
18
 
19
library ieee;
20
use ieee.std_logic_1164.all;
21
use ieee.numeric_std.all;
22
use work.WaveFiles.all;
23
 
24
entity Testbench is
25
end entity;
26
 
27
architecture bhv of Testbench is
28
 
29
  -- signal iMono   : signed(7 downto 0);
30
  -- type   aPCM16 is array(natural range<>) of signed(15 downto 0);
31
--  signal iStereo : aPCM16(0 to 1);
32
--  signal i10     : aPCM16(0 to 9);
33
  signal ts            : time;
34
  signal ReaderInfo    : aWaveFileInfo;
35
  signal WriteData, ReadData : integer;
36
  signal Mono          : integer;
37
  signal Stereo        : aIntArray(0 to 1);
38
  signal Ch10          : aIntArray(0 to 9);
39
 
40
begin
41
 
42
  Read : process
43
    file Reader          : aFileHandle;
44
    file Writer          : aFileHandle;
45
    variable vReaderInfo : aWaveFileInfo;
46
    variable vFileName   : string(1 to 11);
47
    variable vMono       : integer;
48
    variable vStereo     : aIntArray(0 to 1);
49
    variable vCh10       : aIntArray(0 to 9);
50
     variable vWriteData, vReadData : integer;
51
  begin
52
    for i in 0 to 3 loop
53
      case i is
54
        when 0      => vFileName := "iMono.wav  ";
55
        when 1      => vFileName := "iStereo.wav";
56
        when 2      => vFileName := "iCh10.wav  ";
57
        when 3      => vFileName := "iBit32.wav ";
58
        when others => null;
59
      end case;
60
      OpenWaveFileRead(vFileName, Reader, vReaderInfo);
61
      case i is
62
        when 0      => vFileName := "oMono.wav  ";
63
        when 1      => vFileName := "oStereo.wav";
64
        when 2      => vFileName := "oCh10.wav  ";
65
        when 3      => vFileName := "oBit32.wav ";
66
        when others => null;
67
      end case;
68
      OpenWaveFileWrite(vFileName, Writer, vReaderInfo);
69
      ReaderInfo <= vReaderInfo;
70
      vReadData := vReaderInfo.DataSize;
71
      vWriteData := vReaderInfo.DataSize;
72
      ts         <= 1 sec /(vReaderInfo.SamplingRate);
73
      wait for 0 ns;
74
      wait for ts;
75
 
76
      while vReadData > 0 loop
77
        case vReaderInfo.Channels is
78
          when 1 =>
79
            ReadSample(Reader, vMono,
80
                       vReadData, vReaderInfo.DataTyp);
81
            Mono <= vMono;
82
            WriteSample(Writer, vMono,
83
                        vWriteData, vReaderInfo.DataTyp);
84
          when 2 =>
85
            ReadSamples(Reader, vStereo, vReadData,
86
                        vReaderInfo.Channels, vReaderInfo.DataTyp);
87
            Stereo <= vStereo;
88
            WriteSamples(Writer, vStereo, vWriteData,
89
                         vReaderInfo.Channels, vReaderInfo.DataTyp);
90
          when 10 =>
91
            ReadSamples(Reader, vCh10, vReadData,
92
                        vReaderInfo.Channels, vReaderInfo.DataTyp);
93
            Ch10 <= vCh10;
94
            WriteSamples(Writer, vCh10, vWriteData,
95
                         vReaderInfo.Channels, vReaderInfo.DataTyp);
96
          when others =>
97
            report "Untestet" severity note;
98
            vReaderInfo.DataSize := 0;
99
        end case;
100
        ReadData <= vReadData;
101
        WriteData <= vReadData;
102
        wait for ts;
103
      end loop;
104
      file_close(Reader);
105
      file_close(Writer);
106
    end loop;
107
 
108
    wait;
109
  end process;
110
 
111
end architecture;
112
 
113
 

powered by: WebSVN 2.1.0

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