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

Subversion Repositories sdram_ctrl

[/] [sdram_ctrl/] [trunk/] [test_bench/] [old/] [cpu_simulator_file_based.vhd] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ntpqa
LIBRARY ieee;
2
USE ieee.std_logic_1164.ALL;
3
USE ieee.numeric_std.ALL;
4
 
5
ENTITY cpu_simulator IS
6
        PORT(clk, reset: in std_logic;
7
 
8
                address : out std_logic_vector(21 downto 0);
9
                writedata : out std_logic_vector(31 downto 0);
10
                byteenable : out std_logic_vector(3 downto 0);
11
                write : out std_logic;
12
                read : out std_logic;
13
                readdata : in std_logic_vector(31 downto 0);
14
                waitrequest : in std_logic;
15
                readdatavalid : in std_logic
16
                );
17
END cpu_simulator;
18
 
19
ARCHITECTURE behaviour OF cpu_simulator IS
20
        signal address: std_logic_vector(21 downto 0);
21
        signal writedata: std_logic_vector(31 downto 0);
22
        signal byteenable: std_logic_vector(3 downto 0);
23
        signal write: std_logic;
24
        signal read: std_logic;
25
 
26
BEGIN
27
        process(clk,reset)
28
                variable service: std_logic_vector(7 downto 0);
29
                variable b0,b1,b2,b3,b4,b5,b6,b7: BYTE;
30
        begin
31
                if reset='1'
32
                        then
33
                        file_close(NIOS);
34
                        file_open(NIOS, FILES_PATH&"nios.dat", READ_MODE);
35
                elsif rising_edge(clk)
36
                        then
37
                        if waitrequest='0'
38
                                then
39
                                if Endfile(NIOS)
40
                                        then
41
                                        file_close(NIOS);
42
                                        file_open(NIOS, FILES_PATH&"nios.dat", READ_MODE);
43
                                else
44
                                        Read(NIOS,b0);
45
                                        Read(NIOS,b1);
46
                                        Read(NIOS,b2);
47
                                        Read(NIOS,b3);
48
                                        Read(NIOS,b4);
49
                                        Read(NIOS,b5);
50
                                        Read(NIOS,b6);
51
                                        Read(NIOS,b7);
52
                                        service:=char2std_logic_vector(b0);
53
                                        address<=service(5 downto 0)&char2std_logic_vector(b1)&char2std_logic_vector(b2);
54
                                        writedata<=char2std_logic_vector(b3)&char2std_logic_vector(b4)&char2std_logic_vector(b5)&char2std_logic_vector(b6);
55
                                        service:=char2std_logic_vector(b7);
56
                                        byteenable<=not service(7 downto 4);
57
                                        write<=service(3);
58
                                        read<=service(2);
59
                                end if;
60
                        end if;
61
                end if;
62
        end process;
63
 
64
        process(clk,reset)
65
        begin
66
                if reset='1'
67
                        then
68
                        readed<=(others=>'0');
69
                        new_data<='0';
70
                elsif rising_edge(clk)
71
                        then
72
                        new_data<=readdatavalid;
73
                        if readdatavalid='1'
74
                                then
75
                                readed<=readdata;
76
                        end if;
77
                end if;
78
        end process;
79
END behaviour;

powered by: WebSVN 2.1.0

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