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

Subversion Repositories madi_receiver

[/] [madi_receiver/] [web_uploads/] [madi_testbench.vhd] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 root
LIBRARY ieee;
2
USE ieee.std_logic_1164.ALL;
3
use ieee.std_logic_textio.all;
4
USE std.textio.all;
5
 
6
ENTITY madi_test IS
7
END madi_test;
8
 
9
ARCHITECTURE behavior OF madi_test IS
10
 
11
 component madi_to_adat
12
  port(
13
   clk_125_in : in std_logic;
14
   madi_in : in std_logic;
15
 
16
   word_clk_in : in std_logic;
17
--  word_clk_out : out std_logic;
18
   bit_clk_in : in std_logic;
19
   adat_0_out : out std_logic;
20
   adat_1_out : out std_logic;
21
   adat_2_out : out std_logic;
22
   adat_3_out : out std_logic;
23
   adat_4_out : out std_logic;
24
   adat_5_out : out std_logic;
25
   adat_6_out : out std_logic;
26
   adat_7_out : out std_logic
27
  );
28
 end component;
29
 
30
 signal clk_125_in : std_logic;
31
 signal madi_in : std_logic := '0';
32
 signal word_clk_in : std_logic;
33
-- signal word_clk_out : std_logic;
34
 signal bit_clk_in : std_logic;
35
 signal adat_0_out : std_logic;
36
 signal adat_1_out : std_logic;
37
 signal adat_2_out : std_logic;
38
 signal adat_3_out : std_logic;
39
 signal adat_4_out : std_logic;
40
 signal adat_5_out : std_logic;
41
 signal adat_6_out : std_logic;
42
 signal adat_7_out : std_logic;
43
 
44
 constant clk_125_in_half_period : time := 4 ns;
45
 constant madi_clk : time := 8 ns;
46
 constant bit_clk_in_half_period : time := 40.690104166666666666666666666667 ns; -- 12.288MHz for a period
47
 constant word_clk_in_half_period : time := 10.416666666666666666666666666667 us; -- 48kHz for a period
48
 
49
 begin
50
 
51
  uut: madi_to_adat port map(
52
   clk_125_in => clk_125_in,
53
   madi_in => madi_in,
54
   word_clk_in => word_clk_in,
55
--   word_clk_out => word_clk_out,
56
   bit_clk_in => bit_clk_in,
57
   adat_0_out => adat_0_out,
58
   adat_1_out => adat_1_out,
59
   adat_2_out => adat_2_out,
60
   adat_3_out => adat_3_out,
61
   adat_4_out => adat_4_out,
62
   adat_5_out => adat_5_out,
63
   adat_6_out => adat_6_out,
64
   adat_7_out => adat_7_out
65
  );
66
 
67
  clk_125_gen : process is
68
  begin
69
   clk_125_in <= '0' after clk_125_in_half_period, '1' after 2 * clk_125_in_half_period;
70
   wait for 2 * clk_125_in_half_period;
71
  end process clk_125_gen;
72
 
73
  bit_clk_in_gen : process is
74
  begin
75
   bit_clk_in <= '0' after bit_clk_in_half_period, '1' after 2 * bit_clk_in_half_period;
76
   wait for 2 * bit_clk_in_half_period;
77
  end process bit_clk_in_gen;
78
 
79
  word_clk_in_gen : process is
80
  begin
81
   word_clk_in <= '0' after word_clk_in_half_period, '1' after 2 * word_clk_in_half_period;
82
   wait for 2 * word_clk_in_half_period;
83
  end process word_clk_in_gen;
84
 
85
 
86
  testbench : process
87
   file infile : text open read_mode is "bitsequence.txt";
88
   variable input : std_logic;
89
   variable buf : line;
90
  begin
91
   while (not endfile(infile)) loop
92
    readline (infile,buf);
93
    read (buf,input);
94
    if input = '0' then
95
     madi_in <= madi_in;
96
    else
97
     madi_in <= not madi_in;
98
    end if;
99
    wait for madi_clk;
100
   end loop;
101
  wait; -- wait forever
102
 end process;
103
end;

powered by: WebSVN 2.1.0

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