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

Subversion Repositories avuc

[/] [avuc/] [trunk/] [example/] [ts.vhd] - Blame information for rev 9

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 fblanco
-- Test bench created by Fernando Blanco (ferblanco@anagramix.com)
2
 
3
library ieee;
4
use ieee.std_logic_1164.all;
5
use ieee.std_logic_unsigned.all;
6
 
7
entity ts is
8
end ts;
9
 
10
architecture testbench of ts is
11
 
12
-- To start the program: 
13
signal avuc_start: std_logic;
14
-- To stop the program:
15
signal avuc_rst: std_logic;
16
-- Main clock:
17
signal clk: std_logic;
18
-- Memory data bus:
19
signal mem_data: std_logic_vector(7 downto 0);
20
-- Memory address bus:
21
signal mem_addr: std_logic_vector(6 downto 0);
22
-- State of the program (running/stopped):
23
signal avuc_state: std_logic;
24
 
25
constant clk_cycle: time := 10 ns;
26
 
27
component max_mem
28
   port (
29
      -- To start the program:
30
      avuc_start: in std_logic;
31
      -- To stop the program:
32
      avuc_rst: in std_logic;
33
      -- Main clock:
34
      clk: in std_logic;
35
      -- Memory data bus:
36
      mem_data: in std_logic_vector(7 downto 0);
37
      -- Memory address bus:
38
      mem_addr: out std_logic_vector(6 downto 0);
39
      -- State of the program (running/stopped):
40
      avuc_state: out std_logic
41
   );
42
end component max_mem;
43
 
44
   begin
45
 
46
   i_max_mem: max_mem port map (avuc_start => avuc_start,
47
      avuc_rst => avuc_rst,
48
      clk => clk,
49
      mem_data => mem_data,
50
      mem_addr => mem_addr,
51
      avuc_state => avuc_state );
52
 
53
   mem_data <= x"2B" when mem_addr = 0 else
54
               x"2F" when mem_addr = 1 else
55
               x"32" when mem_addr = 2 else
56
               x"24" when mem_addr = 3 else
57
               x"16" when mem_addr = 4 else
58
               x"1A" when mem_addr = 5 else
59
               x"34" when mem_addr = 6 else
60
               x"27" when mem_addr = 7 else
61
               x"11" when mem_addr = 8 else
62
               x"13" when mem_addr = 9 else
63
               x"02" when mem_addr = 10 else
64
               x"39" when mem_addr = 11 else
65
               x"41" when mem_addr = 12 else
66
               x"46" when mem_addr = 13 else
67
               x"2E" when mem_addr = 14 else
68
               x"1C" when mem_addr = 15 else
69
               x"04" when mem_addr = 16 else
70
               x"07" when mem_addr = 17 else
71
               x"53" when mem_addr = 18 else
72
               x"03" when mem_addr = 19 else
73
               x"13" when mem_addr = 20 else
74
               x"35" when mem_addr = 21 else
75
               x"4F" when mem_addr = 22 else
76
               x"00";
77
 
78
   avuc_start <= '0',
79
                 '1' after 80*clk_cycle,
80
                 '0' after 81*clk_cycle;
81
 
82
   avuc_rst <= '0';
83
 
84
   p_clk: process
85
   begin
86
      clk <= '0' after 0 ns, '1' after clk_cycle/2;
87
      wait for clk_cycle;
88
   end process p_clk;
89
 
90
end testbench;

powered by: WebSVN 2.1.0

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