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

Subversion Repositories the_wizardry_project

[/] [the_wizardry_project/] [trunk/] [Wizardry/] [VHDL/] [Wizardry Top Level/] [Address Generation/] [JOP/] [sc_wizardry_processes.vhd] - Blame information for rev 22

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 22 mcwaccent
----------------------------------------------------------------------------------
2
-- Company: 
3
-- Engineer: 
4
-- 
5
-- Create Date:    10:07:42 01/30/2009 
6
-- Design Name: 
7
-- Module Name:    sc_wizardry_processes - Behavioral 
8
-- Project Name: 
9
-- Target Devices: 
10
-- Tool versions: 
11
-- Description: 
12
--
13
-- Dependencies: 
14
--
15
-- Revision: 
16
-- Revision 0.01 - File Created
17
-- Additional Comments: 
18
--
19
----------------------------------------------------------------------------------
20
library IEEE;
21
use IEEE.STD_LOGIC_1164.ALL;
22
use IEEE.STD_LOGIC_ARITH.ALL;
23
use IEEE.STD_LOGIC_UNSIGNED.ALL;
24
 
25
---- Uncomment the following library declaration if instantiating
26
---- any Xilinx primitives in this code.
27
--library UNISIM;
28
--use UNISIM.VComponents.all;
29
 
30
entity sc_wizardry_processes is
31
   port(  clk : in std_logic;
32
                         reset : in std_logic;
33
                         rd : in std_logic;
34
                         wr : in std_logic;
35
                         ack_i : in std_Logic;
36
                         dat_i : in std_logic_Vector(31 downto 0);
37
                         address : in std_logic_Vector(3 downto 0);
38
                         wr_data : in std_Logic_Vector(31 downto 0);
39
                         rd_data : out std_logic_Vector(31 downto 0);
40
                         store_address : in std_Logic;
41
                         store_data : in std_Logic;
42
                         store_config_data : in  STD_LOGIC;
43
                         set_sc_data : in std_Logic;
44
                         adr_o_reg : out std_logic_Vector(21 downto 0);
45
                         dat_o_reg : out std_logic_Vector(31 downto 0);
46
--                       config_trigger_reg : out std_logic_vector(7 downto 0);
47
                         eRCP_trigger_reg : out std_logic;
48
                         address_reg : out std_logic_vector(3 downto 0));
49
end sc_wizardry_processes;
50
 
51
architecture Behavioral of sc_wizardry_processes is
52
 
53
signal adr_o_reg_s : std_logic_Vector(21 downto 0);
54
signal dat_o_reg_s : std_logic_vector(31 downto 0);
55
signal wr_data_reg : std_logic_vector(31 downto 0);
56
signal address_reg_s : std_logic_vector(3 downto 0);
57
signal rd_data_reg : std_logic_vector(31 downto 0);
58
signal dat_i_reg : std_logic_vector(31 downto 0);
59
signal config_trigger_reg_s : std_logic_vector(7 downto 0);
60
signal eRCP_trigger_reg_s,eRCP_trigger_reg_s_1,eRCP_trigger_reg_s_2,
61
                eRCP_trigger_reg_s_3: std_logic; --_vector(7 downto 0);
62
 
63
begin
64
 
65
process(clk,reset,set_sc_data)
66
begin
67
        if reset = '1' then
68
                rd_data_reg <= X"075bcd15";--(others => '0');
69
        elsif rising_Edge(clk) then
70
                if set_sc_data = '1' then
71
                        rd_data_reg <= dat_i_reg;
72
                else
73
                        rd_data_reg <= rd_data_reg;
74
                end if;
75
        end if;
76
end process;
77
rd_data <= rd_data_reg;
78
 
79
process(clk,reset,ack_i)
80
begin
81
        if reset = '1' then
82
                dat_i_reg <= X"075BCD14";--(others => '0');
83
        elsif rising_Edge(clk) then
84
                if ack_i = '1' then
85
                        dat_i_reg <= dat_i;
86
                else
87
                        dat_i_reg <= dat_i_reg;
88
                end if;
89
        end if;
90
end process;
91
 
92
process(clk,reset,wr)
93
begin
94
        if reset = '1' then
95
                wr_data_reg <= (others => '0');
96
        elsif rising_edge(clk) then
97
                if wr = '1' then
98
                        wr_data_reg <= wr_data;
99
                else
100
                        wr_data_reg <= wr_data_reg;
101
                end if;
102
        end if;
103
end process;
104
 
105
process(clk,reset,wr,rd,address)
106
begin
107
        if reset = '1' then
108
                address_reg_s <= (others => '0');
109
        elsif rising_Edge(clk) then
110
                if wr = '1' or rd = '1' then
111
                        address_reg_s <= address; --(1 downto 0);
112
                else
113
                        address_reg_s <= address_reg_s;
114
                end if;
115
        end if;
116
end process;
117
address_reg <= address_reg_s;
118
process(clk,reset,store_data)
119
begin
120
        if reset = '1' then
121
                dat_o_reg_s <= (others => '0');
122
        elsif rising_edge(clk) then
123
                if store_data = '1' then
124
                        dat_o_reg_s <= wr_data_reg;
125
                else
126
                        dat_o_reg_s <= dat_o_reg_s;
127
                end if;
128
        end if;
129
end process;
130
dat_o_reg <= dat_o_reg_s;
131
process(clk,reset,store_address)
132
begin
133
        if reset = '1' then
134
                adr_o_reg_s <= (others => '0');
135
        elsif rising_edge(clk) then
136
                if store_address = '1' then
137
                        adr_o_reg_s <= wr_data_reg(21 downto 0);
138
                else
139
                        adr_o_reg_s <= adr_o_reg_s;
140
                end if;
141
        end if;
142
end process;
143
adr_o_reg <= adr_o_reg_s;
144
process(clk,reset,store_config_data,eRCP_trigger_reg_s_1,eRCP_trigger_reg_s_2,
145
                        eRCP_trigger_reg_s_3)
146
begin
147
        if reset = '1' then
148
--              config_trigger_reg_s <= (others => '0');
149
                eRCP_trigger_reg_s_1 <= '1';
150
                eRCP_trigger_reg_s_2 <= '0';
151
                eRCP_trigger_reg_s_3 <= '0';
152
                eRCP_trigger_reg_s <= '0';
153
        elsif rising_edge(clk) then
154
                if store_config_data = '1' then
155
                        eRCP_trigger_reg_s_1 <= '1';
156
                        eRCP_trigger_reg_s_2 <= '0';
157
                        eRCP_trigger_reg_s_3 <= '0';
158
                        eRCP_trigger_reg_s <= '0';
159
                else
160
                        eRCP_trigger_reg_s_1 <= '0';
161
                        eRCP_trigger_reg_s_2 <= eRCP_trigger_reg_s_1;
162
                        eRCP_trigger_reg_s_3 <= eRCP_trigger_reg_s_2;
163
                        eRCP_trigger_reg_s <= eRCP_trigger_reg_s_3;
164
 
165
--                      eRCP_trigger_reg_s <= eRCP_trigger_reg_s;
166
--                      eRCP_trigger_reg_s <= eRCP_trigger_reg_s;
167
                end if;
168
        end if;
169
end process;
170
eRCP_trigger_reg <= eRCP_trigger_reg_s;
171
--process(clk,reset,store_config_data)
172
--begin
173
--      if reset = '1' then
174
--              config_trigger_reg_s <= (others => '0');
175
--      elsif rising_edge(clk) then
176
--              if store_config_data = '1' then
177
--                      config_trigger_reg_s <= wr_data_reg(7 downto 0);
178
--              else
179
--                      config_trigger_reg_s <= config_trigger_reg_s;
180
--              end if;
181
--      end if;
182
--end process;
183
--config_trigger_reg <= config_trigger_reg_s;
184
end Behavioral;
185
 

powered by: WebSVN 2.1.0

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