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

Subversion Repositories avr_hp

[/] [avr_hp/] [trunk/] [rtl/] [rtl_v5_cm4/] [reg_file.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tobil
--**********************************************************************************************
2
--  General purpose register file for the AVR Core
3
--  Version 1.4 (Special version for the JTAG OCD)
4
--  Modified 22.04.2004
5
--  Designed by Ruslan Lepetenok
6
--**********************************************************************************************
7
 
8
library IEEE;
9
use IEEE.std_logic_1164.all;
10
use IEEE.std_logic_unsigned.all;
11
 
12
use WORK.SynthCtrlPack.all; -- Synthesis control
13
 
14
entity reg_file_cm4 is port (
15
                cp2_cml_1 : in std_logic;
16
                cp2_cml_2 : in std_logic;
17
                cp2_cml_3 : in std_logic;
18
 
19
                                                  --Clock and reset
20
                                              cp2         : in  std_logic;
21
                                                  cp2en       : in  std_logic;
22
                          ireset      : in  std_logic;
23
 
24
                          reg_rd_in   : in  std_logic_vector(7 downto 0);
25
                          reg_rd_out  : out std_logic_vector(7 downto 0);
26
                          reg_rd_out_int  : out std_logic_vector(7 downto 0);
27
                          reg_rd_adr  : in  std_logic_vector(4 downto 0);
28
                          reg_rd_adr_int      : in std_logic_vector  (4 downto 0);
29
                          reg_rr_out  : out std_logic_vector(7 downto 0);
30
                          reg_rr_adr  : in  std_logic_vector(4 downto 0);
31
                          reg_rd_wr   : in  std_logic;
32
 
33
                          post_inc    : in  std_logic; -- POST INCREMENT FOR LD/ST INSTRUCTIONS
34
                          pre_dec     : in  std_logic; -- PRE DECREMENT FOR LD/ST INSTRUCTIONS
35
                          reg_h_wr    : in  std_logic;
36
                          reg_h_out   : out std_logic_vector(15 downto 0);
37
                          reg_h_adr   : in  std_logic_vector(2 downto 0);  -- x,y,z
38
                                  reg_z_out   : out std_logic_vector(15 downto 0) -- OUTPUT OF R31:R30 FOR LPM/ELPM/IJMP INSTRUCTIONS
39
                          );
40
end reg_file_cm4;
41
 
42
architecture RTL of reg_file_cm4 is
43
 
44
type register_file_type is array(0 to 25) of std_logic_vector(7 downto 0);
45
type register_mux_type is array(0 to 31) of std_logic_vector(7 downto 0);
46
signal register_file : register_file_type;
47
signal r26h : std_logic_vector(7 downto 0);
48
signal r27h : std_logic_vector(7 downto 0);
49
signal r28h : std_logic_vector(7 downto 0);
50
signal r29h : std_logic_vector(7 downto 0);
51
signal r30h : std_logic_vector(7 downto 0);
52
signal r31h : std_logic_vector(7 downto 0);
53
 
54
signal register_wr_en  : std_logic_vector(31 downto 0);
55
 
56
signal sg_rd_decode   : std_logic_vector (31 downto 0);
57
signal sg_rd_decode_int   : std_logic_vector (31 downto 0);
58
signal sg_rr_decode   : std_logic_vector (31 downto 0);
59
 
60
--signal sg_tmp_rd_data : register_mux_type;
61
signal sg_tmp_rd_data_0 : std_logic_vector(7 downto 0);
62
signal sg_tmp_rd_data_1 : std_logic_vector(7 downto 0);
63
signal sg_tmp_rd_data_2 : std_logic_vector(7 downto 0);
64
signal sg_tmp_rd_data_3 : std_logic_vector(7 downto 0);
65
signal sg_tmp_rd_data_4 : std_logic_vector(7 downto 0);
66
signal sg_tmp_rd_data_5 : std_logic_vector(7 downto 0);
67
signal sg_tmp_rd_data_6 : std_logic_vector(7 downto 0);
68
signal sg_tmp_rd_data_7 : std_logic_vector(7 downto 0);
69
signal sg_tmp_rd_data_8 : std_logic_vector(7 downto 0);
70
signal sg_tmp_rd_data_9 : std_logic_vector(7 downto 0);
71
signal sg_tmp_rd_data_10 : std_logic_vector(7 downto 0);
72
signal sg_tmp_rd_data_11 : std_logic_vector(7 downto 0);
73
signal sg_tmp_rd_data_12 : std_logic_vector(7 downto 0);
74
signal sg_tmp_rd_data_13 : std_logic_vector(7 downto 0);
75
signal sg_tmp_rd_data_14 : std_logic_vector(7 downto 0);
76
signal sg_tmp_rd_data_15 : std_logic_vector(7 downto 0);
77
signal sg_tmp_rd_data_16 : std_logic_vector(7 downto 0);
78
signal sg_tmp_rd_data_17 : std_logic_vector(7 downto 0);
79
signal sg_tmp_rd_data_18 : std_logic_vector(7 downto 0);
80
signal sg_tmp_rd_data_19 : std_logic_vector(7 downto 0);
81
signal sg_tmp_rd_data_20 : std_logic_vector(7 downto 0);
82
signal sg_tmp_rd_data_21 : std_logic_vector(7 downto 0);
83
signal sg_tmp_rd_data_22 : std_logic_vector(7 downto 0);
84
signal sg_tmp_rd_data_23 : std_logic_vector(7 downto 0);
85
signal sg_tmp_rd_data_24 : std_logic_vector(7 downto 0);
86
signal sg_tmp_rd_data_25 : std_logic_vector(7 downto 0);
87
signal sg_tmp_rd_data_26 : std_logic_vector(7 downto 0);
88
signal sg_tmp_rd_data_27 : std_logic_vector(7 downto 0);
89
signal sg_tmp_rd_data_28 : std_logic_vector(7 downto 0);
90
signal sg_tmp_rd_data_29 : std_logic_vector(7 downto 0);
91
signal sg_tmp_rd_data_30 : std_logic_vector(7 downto 0);
92
signal sg_tmp_rd_data_31 : std_logic_vector(7 downto 0);
93
signal sg_tmp_rd_data_0_int : std_logic_vector(7 downto 0);
94
signal sg_tmp_rd_data_1_int : std_logic_vector(7 downto 0);
95
signal sg_tmp_rd_data_2_int : std_logic_vector(7 downto 0);
96
signal sg_tmp_rd_data_3_int : std_logic_vector(7 downto 0);
97
signal sg_tmp_rd_data_4_int : std_logic_vector(7 downto 0);
98
signal sg_tmp_rd_data_5_int : std_logic_vector(7 downto 0);
99
signal sg_tmp_rd_data_6_int : std_logic_vector(7 downto 0);
100
signal sg_tmp_rd_data_7_int : std_logic_vector(7 downto 0);
101
signal sg_tmp_rd_data_8_int : std_logic_vector(7 downto 0);
102
signal sg_tmp_rd_data_9_int : std_logic_vector(7 downto 0);
103
signal sg_tmp_rd_data_10_int : std_logic_vector(7 downto 0);
104
signal sg_tmp_rd_data_11_int : std_logic_vector(7 downto 0);
105
signal sg_tmp_rd_data_12_int : std_logic_vector(7 downto 0);
106
signal sg_tmp_rd_data_13_int : std_logic_vector(7 downto 0);
107
signal sg_tmp_rd_data_14_int : std_logic_vector(7 downto 0);
108
signal sg_tmp_rd_data_15_int : std_logic_vector(7 downto 0);
109
signal sg_tmp_rd_data_16_int : std_logic_vector(7 downto 0);
110
signal sg_tmp_rd_data_17_int : std_logic_vector(7 downto 0);
111
signal sg_tmp_rd_data_18_int : std_logic_vector(7 downto 0);
112
signal sg_tmp_rd_data_19_int : std_logic_vector(7 downto 0);
113
signal sg_tmp_rd_data_20_int : std_logic_vector(7 downto 0);
114
signal sg_tmp_rd_data_21_int : std_logic_vector(7 downto 0);
115
signal sg_tmp_rd_data_22_int : std_logic_vector(7 downto 0);
116
signal sg_tmp_rd_data_23_int : std_logic_vector(7 downto 0);
117
signal sg_tmp_rd_data_24_int : std_logic_vector(7 downto 0);
118
signal sg_tmp_rd_data_25_int : std_logic_vector(7 downto 0);
119
signal sg_tmp_rd_data_26_int : std_logic_vector(7 downto 0);
120
signal sg_tmp_rd_data_27_int : std_logic_vector(7 downto 0);
121
signal sg_tmp_rd_data_28_int : std_logic_vector(7 downto 0);
122
signal sg_tmp_rd_data_29_int : std_logic_vector(7 downto 0);
123
signal sg_tmp_rd_data_30_int : std_logic_vector(7 downto 0);
124
signal sg_tmp_rd_data_31_int : std_logic_vector(7 downto 0);
125
--signal sg_tmp_rr_data : register_mux_type;
126
signal sg_tmp_rr_data_0 : std_logic_vector(7 downto 0);
127
signal sg_tmp_rr_data_1 : std_logic_vector(7 downto 0);
128
signal sg_tmp_rr_data_2 : std_logic_vector(7 downto 0);
129
signal sg_tmp_rr_data_3 : std_logic_vector(7 downto 0);
130
signal sg_tmp_rr_data_4 : std_logic_vector(7 downto 0);
131
signal sg_tmp_rr_data_5 : std_logic_vector(7 downto 0);
132
signal sg_tmp_rr_data_6 : std_logic_vector(7 downto 0);
133
signal sg_tmp_rr_data_7 : std_logic_vector(7 downto 0);
134
signal sg_tmp_rr_data_8 : std_logic_vector(7 downto 0);
135
signal sg_tmp_rr_data_9 : std_logic_vector(7 downto 0);
136
signal sg_tmp_rr_data_10 : std_logic_vector(7 downto 0);
137
signal sg_tmp_rr_data_11 : std_logic_vector(7 downto 0);
138
signal sg_tmp_rr_data_12 : std_logic_vector(7 downto 0);
139
signal sg_tmp_rr_data_13 : std_logic_vector(7 downto 0);
140
signal sg_tmp_rr_data_14 : std_logic_vector(7 downto 0);
141
signal sg_tmp_rr_data_15 : std_logic_vector(7 downto 0);
142
signal sg_tmp_rr_data_16 : std_logic_vector(7 downto 0);
143
signal sg_tmp_rr_data_17 : std_logic_vector(7 downto 0);
144
signal sg_tmp_rr_data_18 : std_logic_vector(7 downto 0);
145
signal sg_tmp_rr_data_19 : std_logic_vector(7 downto 0);
146
signal sg_tmp_rr_data_20 : std_logic_vector(7 downto 0);
147
signal sg_tmp_rr_data_21 : std_logic_vector(7 downto 0);
148
signal sg_tmp_rr_data_22 : std_logic_vector(7 downto 0);
149
signal sg_tmp_rr_data_23 : std_logic_vector(7 downto 0);
150
signal sg_tmp_rr_data_24 : std_logic_vector(7 downto 0);
151
signal sg_tmp_rr_data_25 : std_logic_vector(7 downto 0);
152
signal sg_tmp_rr_data_26 : std_logic_vector(7 downto 0);
153
signal sg_tmp_rr_data_27 : std_logic_vector(7 downto 0);
154
signal sg_tmp_rr_data_28 : std_logic_vector(7 downto 0);
155
signal sg_tmp_rr_data_29 : std_logic_vector(7 downto 0);
156
signal sg_tmp_rr_data_30 : std_logic_vector(7 downto 0);
157
signal sg_tmp_rr_data_31 : std_logic_vector(7 downto 0);
158
 
159
signal sg_adr16_postinc : std_logic_vector (15 downto 0);
160
signal sg_adr16_predec  : std_logic_vector (15 downto 0);
161
signal reg_h_in         : std_logic_vector  (15 downto 0);
162
 
163
signal sg_tmp_h_data    : std_logic_vector  (15 downto 0);
164
 
165
signal reg_rd_in_cml_3 :  std_logic_vector ( 7 downto 0 );
166
signal reg_rd_adr_cml_3 :  std_logic_vector ( 4 downto 0 );
167
signal reg_rd_adr_cml_2 :  std_logic_vector ( 4 downto 0 );
168
signal reg_rd_wr_cml_3 :  std_logic;
169
signal reg_h_adr_cml_3 :  std_logic_vector ( 2 downto 0 );
170
signal reg_h_adr_cml_2 :  std_logic_vector ( 2 downto 0 );
171
signal register_file_cml_3 :  register_file_type;
172
signal register_file_cml_2 :  register_file_type;
173
signal register_file_cml_1 :  register_file_type;
174
signal r26h_cml_3 :  std_logic_vector ( 7 downto 0 );
175
signal r26h_cml_2 :  std_logic_vector ( 7 downto 0 );
176
signal r26h_cml_1 :  std_logic_vector ( 7 downto 0 );
177
signal r27h_cml_3 :  std_logic_vector ( 7 downto 0 );
178
signal r27h_cml_2 :  std_logic_vector ( 7 downto 0 );
179
signal r27h_cml_1 :  std_logic_vector ( 7 downto 0 );
180
signal r28h_cml_3 :  std_logic_vector ( 7 downto 0 );
181
signal r28h_cml_2 :  std_logic_vector ( 7 downto 0 );
182
signal r28h_cml_1 :  std_logic_vector ( 7 downto 0 );
183
signal r29h_cml_3 :  std_logic_vector ( 7 downto 0 );
184
signal r29h_cml_2 :  std_logic_vector ( 7 downto 0 );
185
signal r29h_cml_1 :  std_logic_vector ( 7 downto 0 );
186
signal reg_z_out_cml_out :  std_logic_vector ( 15 downto 0 );
187
signal r30h_cml_3 :  std_logic_vector ( 7 downto 0 );
188
signal r30h_cml_2 :  std_logic_vector ( 7 downto 0 );
189
signal r30h_cml_1 :  std_logic_vector ( 7 downto 0 );
190
signal r31h_cml_3 :  std_logic_vector ( 7 downto 0 );
191
signal r31h_cml_2 :  std_logic_vector ( 7 downto 0 );
192
signal r31h_cml_1 :  std_logic_vector ( 7 downto 0 );
193
signal sg_adr16_predec_cml_3 :  std_logic_vector ( 15 downto 0 );
194
signal sg_adr16_predec_cml_2 :  std_logic_vector ( 15 downto 0 );
195
signal sg_tmp_h_data_cml_3 :  std_logic_vector ( 15 downto 0 );
196
signal sg_tmp_h_data_cml_2 :  std_logic_vector ( 15 downto 0 );
197
 
198
begin
199
 
200
 
201
 
202
process(cp2_cml_1) begin
203
if (cp2_cml_1 = '1' and cp2_cml_1'event) then
204
        register_file_cml_1 <= register_file;
205
        r26h_cml_1 <= r26h;
206
        r27h_cml_1 <= r27h;
207
        r28h_cml_1 <= r28h;
208
        r29h_cml_1 <= r29h;
209
        r30h_cml_1 <= r30h;
210
        r31h_cml_1 <= r31h;
211
end if;
212
end process;
213
 
214
process(cp2_cml_2) begin
215
if (cp2_cml_2 = '1' and cp2_cml_2'event) then
216
        reg_rd_adr_cml_2 <= reg_rd_adr;
217
        reg_h_adr_cml_2 <= reg_h_adr;
218
        register_file_cml_2 <= register_file_cml_1;
219
        r26h_cml_2 <= r26h_cml_1;
220
        r27h_cml_2 <= r27h_cml_1;
221
        r28h_cml_2 <= r28h_cml_1;
222
        r29h_cml_2 <= r29h_cml_1;
223
        r30h_cml_2 <= r30h_cml_1;
224
        r31h_cml_2 <= r31h_cml_1;
225
        sg_adr16_predec_cml_2 <= sg_adr16_predec;
226
        sg_tmp_h_data_cml_2 <= sg_tmp_h_data;
227
end if;
228
end process;
229
 
230
process(cp2_cml_3) begin
231
if (cp2_cml_3 = '1' and cp2_cml_3'event) then
232
        reg_rd_in_cml_3 <= reg_rd_in;
233
        reg_rd_adr_cml_3 <= reg_rd_adr_cml_2;
234
        reg_rd_wr_cml_3 <= reg_rd_wr;
235
        reg_h_adr_cml_3 <= reg_h_adr_cml_2;
236
        register_file_cml_3 <= register_file_cml_2;
237
        r26h_cml_3 <= r26h_cml_2;
238
        r27h_cml_3 <= r27h_cml_2;
239
        r28h_cml_3 <= r28h_cml_2;
240
        r29h_cml_3 <= r29h_cml_2;
241
        r30h_cml_3 <= r30h_cml_2;
242
        r31h_cml_3 <= r31h_cml_2;
243
        sg_adr16_predec_cml_3 <= sg_adr16_predec_cml_2;
244
        sg_tmp_h_data_cml_3 <= sg_tmp_h_data_cml_2;
245
end if;
246
end process;
247
reg_z_out <= reg_z_out_cml_out;
248
 
249
 
250
write_decode: for i in 0 to 31 generate
251
-- SynEDA CoreMultiplier
252
-- assignment(s): register_wr_en
253
-- replace(s): reg_rd_adr, reg_rd_wr
254
 
255
register_wr_en(i) <= '1' when (i=reg_rd_adr_cml_3 and reg_rd_wr_cml_3='1') else '0';
256
end generate;
257
 
258
rd_mux_decode: for i in 0 to 31 generate
259
sg_rd_decode(i) <= '1' when (reg_rd_adr=i) else '0';
260
end generate;
261
 
262
rd_mux_decode_int: for i in 0 to 31 generate
263
sg_rd_decode_int(i) <= '1' when (reg_rd_adr_int=i) else '0';
264
end generate;
265
 
266
rr_mux_decode: for i in 0 to 31 generate
267
sg_rr_decode(i) <= '1' when (reg_rr_adr=i) else '0';
268
end generate;
269
 
270
-- SynEDA CoreMultiplier
271
-- assignment(s): reg_z_out
272
-- replace(s): r30h, r31h
273
 
274
reg_z_out_cml_out <= r31h_cml_1&r30h_cml_1; -- R31:R30 OUTPUT FOR LPM/ELPM INSTRUCTIONS 
275
 
276
--sg_tmp_rd_data(0) <= register_file(0) when sg_rd_decode(0)='1' else (others=>'0');
277
--read_rd_mux: for i in 1 to 25 generate
278
--sg_tmp_rd_data(i) <= register_file(i) when sg_rd_decode(i)='1' else sg_tmp_rd_data(i-1);
279
--end generate;
280
--sg_tmp_rd_data(26) <= r26h when sg_rd_decode(26)='1' else sg_tmp_rd_data(25);
281
--sg_tmp_rd_data(27) <= r27h when sg_rd_decode(27)='1' else sg_tmp_rd_data(26);
282
--sg_tmp_rd_data(28) <= r28h when sg_rd_decode(28)='1' else sg_tmp_rd_data(27);
283
--sg_tmp_rd_data(29) <= r29h when sg_rd_decode(29)='1' else sg_tmp_rd_data(28);
284
--sg_tmp_rd_data(30) <= r30h when sg_rd_decode(30)='1' else sg_tmp_rd_data(29);
285
--sg_tmp_rd_data(31) <= r31h when sg_rd_decode(31)='1' else sg_tmp_rd_data(30); 
286
--reg_rd_out <= sg_tmp_rd_data(31); 
287
 
288
-- SynEDA CoreMultiplier
289
-- assignment(s): sg_tmp_rd_data_0
290
-- replace(s): register_file
291
 
292
sg_tmp_rd_data_0 <= register_file_cml_1(0) when sg_rd_decode(0)='1' else (others=>'0');
293
-- SynEDA CoreMultiplier
294
-- assignment(s): sg_tmp_rd_data_1
295
-- replace(s): register_file
296
 
297
sg_tmp_rd_data_1 <= register_file_cml_1(1) when sg_rd_decode(1)='1' else sg_tmp_rd_data_0;
298
-- SynEDA CoreMultiplier
299
-- assignment(s): sg_tmp_rd_data_2
300
-- replace(s): register_file
301
 
302
sg_tmp_rd_data_2 <= register_file_cml_1(2) when sg_rd_decode(2)='1' else sg_tmp_rd_data_1;
303
-- SynEDA CoreMultiplier
304
-- assignment(s): sg_tmp_rd_data_3
305
-- replace(s): register_file
306
 
307
sg_tmp_rd_data_3 <= register_file_cml_1(3) when sg_rd_decode(3)='1' else sg_tmp_rd_data_2;
308
-- SynEDA CoreMultiplier
309
-- assignment(s): sg_tmp_rd_data_4
310
-- replace(s): register_file
311
 
312
sg_tmp_rd_data_4 <= register_file_cml_1(4) when sg_rd_decode(4)='1' else sg_tmp_rd_data_3;
313
-- SynEDA CoreMultiplier
314
-- assignment(s): sg_tmp_rd_data_5
315
-- replace(s): register_file
316
 
317
sg_tmp_rd_data_5 <= register_file_cml_1(5) when sg_rd_decode(5)='1' else sg_tmp_rd_data_4;
318
-- SynEDA CoreMultiplier
319
-- assignment(s): sg_tmp_rd_data_6
320
-- replace(s): register_file
321
 
322
sg_tmp_rd_data_6 <= register_file_cml_1(6) when sg_rd_decode(6)='1' else sg_tmp_rd_data_5;
323
-- SynEDA CoreMultiplier
324
-- assignment(s): sg_tmp_rd_data_7
325
-- replace(s): register_file
326
 
327
sg_tmp_rd_data_7 <= register_file_cml_1(7) when sg_rd_decode(7)='1' else sg_tmp_rd_data_6;
328
-- SynEDA CoreMultiplier
329
-- assignment(s): sg_tmp_rd_data_8
330
-- replace(s): register_file
331
 
332
sg_tmp_rd_data_8 <= register_file_cml_1(8) when sg_rd_decode(8)='1' else sg_tmp_rd_data_7;
333
-- SynEDA CoreMultiplier
334
-- assignment(s): sg_tmp_rd_data_9
335
-- replace(s): register_file
336
 
337
sg_tmp_rd_data_9 <= register_file_cml_1(9) when sg_rd_decode(9)='1' else sg_tmp_rd_data_8;
338
-- SynEDA CoreMultiplier
339
-- assignment(s): sg_tmp_rd_data_10
340
-- replace(s): register_file
341
 
342
sg_tmp_rd_data_10 <= register_file_cml_1(10) when sg_rd_decode(10)='1' else sg_tmp_rd_data_9;
343
-- SynEDA CoreMultiplier
344
-- assignment(s): sg_tmp_rd_data_11
345
-- replace(s): register_file
346
 
347
sg_tmp_rd_data_11 <= register_file_cml_1(11) when sg_rd_decode(11)='1' else sg_tmp_rd_data_10;
348
-- SynEDA CoreMultiplier
349
-- assignment(s): sg_tmp_rd_data_12
350
-- replace(s): register_file
351
 
352
sg_tmp_rd_data_12 <= register_file_cml_1(12) when sg_rd_decode(12)='1' else sg_tmp_rd_data_11;
353
-- SynEDA CoreMultiplier
354
-- assignment(s): sg_tmp_rd_data_13
355
-- replace(s): register_file
356
 
357
sg_tmp_rd_data_13 <= register_file_cml_1(13) when sg_rd_decode(13)='1' else sg_tmp_rd_data_12;
358
-- SynEDA CoreMultiplier
359
-- assignment(s): sg_tmp_rd_data_14
360
-- replace(s): register_file
361
 
362
sg_tmp_rd_data_14 <= register_file_cml_1(14) when sg_rd_decode(14)='1' else sg_tmp_rd_data_13;
363
-- SynEDA CoreMultiplier
364
-- assignment(s): sg_tmp_rd_data_15
365
-- replace(s): register_file
366
 
367
sg_tmp_rd_data_15 <= register_file_cml_1(15) when sg_rd_decode(15)='1' else sg_tmp_rd_data_14;
368
-- SynEDA CoreMultiplier
369
-- assignment(s): sg_tmp_rd_data_16
370
-- replace(s): register_file
371
 
372
sg_tmp_rd_data_16 <= register_file_cml_1(16) when sg_rd_decode(16)='1' else sg_tmp_rd_data_15;
373
-- SynEDA CoreMultiplier
374
-- assignment(s): sg_tmp_rd_data_17
375
-- replace(s): register_file
376
 
377
sg_tmp_rd_data_17 <= register_file_cml_1(17) when sg_rd_decode(17)='1' else sg_tmp_rd_data_16;
378
-- SynEDA CoreMultiplier
379
-- assignment(s): sg_tmp_rd_data_18
380
-- replace(s): register_file
381
 
382
sg_tmp_rd_data_18 <= register_file_cml_1(18) when sg_rd_decode(18)='1' else sg_tmp_rd_data_17;
383
-- SynEDA CoreMultiplier
384
-- assignment(s): sg_tmp_rd_data_19
385
-- replace(s): register_file
386
 
387
sg_tmp_rd_data_19 <= register_file_cml_1(19) when sg_rd_decode(19)='1' else sg_tmp_rd_data_18;
388
-- SynEDA CoreMultiplier
389
-- assignment(s): sg_tmp_rd_data_20
390
-- replace(s): register_file
391
 
392
sg_tmp_rd_data_20 <= register_file_cml_1(20) when sg_rd_decode(20)='1' else sg_tmp_rd_data_19;
393
-- SynEDA CoreMultiplier
394
-- assignment(s): sg_tmp_rd_data_21
395
-- replace(s): register_file
396
 
397
sg_tmp_rd_data_21 <= register_file_cml_1(21) when sg_rd_decode(21)='1' else sg_tmp_rd_data_20;
398
-- SynEDA CoreMultiplier
399
-- assignment(s): sg_tmp_rd_data_22
400
-- replace(s): register_file
401
 
402
sg_tmp_rd_data_22 <= register_file_cml_1(22) when sg_rd_decode(22)='1' else sg_tmp_rd_data_21;
403
-- SynEDA CoreMultiplier
404
-- assignment(s): sg_tmp_rd_data_23
405
-- replace(s): register_file
406
 
407
sg_tmp_rd_data_23 <= register_file_cml_1(23) when sg_rd_decode(23)='1' else sg_tmp_rd_data_22;
408
-- SynEDA CoreMultiplier
409
-- assignment(s): sg_tmp_rd_data_24
410
-- replace(s): register_file
411
 
412
sg_tmp_rd_data_24 <= register_file_cml_1(24) when sg_rd_decode(24)='1' else sg_tmp_rd_data_23;
413
-- SynEDA CoreMultiplier
414
-- assignment(s): sg_tmp_rd_data_25
415
-- replace(s): register_file
416
 
417
sg_tmp_rd_data_25 <= register_file_cml_1(25) when sg_rd_decode(25)='1' else sg_tmp_rd_data_24;
418
-- SynEDA CoreMultiplier
419
-- assignment(s): sg_tmp_rd_data_26
420
-- replace(s): r26h
421
 
422
sg_tmp_rd_data_26 <= r26h_cml_1 when sg_rd_decode(26)='1' else sg_tmp_rd_data_25;
423
-- SynEDA CoreMultiplier
424
-- assignment(s): sg_tmp_rd_data_27
425
-- replace(s): r27h
426
 
427
sg_tmp_rd_data_27 <= r27h_cml_1 when sg_rd_decode(27)='1' else sg_tmp_rd_data_26;
428
-- SynEDA CoreMultiplier
429
-- assignment(s): sg_tmp_rd_data_28
430
-- replace(s): r28h
431
 
432
sg_tmp_rd_data_28 <= r28h_cml_1 when sg_rd_decode(28)='1' else sg_tmp_rd_data_27;
433
-- SynEDA CoreMultiplier
434
-- assignment(s): sg_tmp_rd_data_29
435
-- replace(s): r29h
436
 
437
sg_tmp_rd_data_29 <= r29h_cml_1 when sg_rd_decode(29)='1' else sg_tmp_rd_data_28;
438
-- SynEDA CoreMultiplier
439
-- assignment(s): sg_tmp_rd_data_30
440
-- replace(s): r30h
441
 
442
sg_tmp_rd_data_30 <= r30h_cml_1 when sg_rd_decode(30)='1' else sg_tmp_rd_data_29;
443
-- SynEDA CoreMultiplier
444
-- assignment(s): sg_tmp_rd_data_31
445
-- replace(s): r31h
446
 
447
sg_tmp_rd_data_31 <= r31h_cml_1 when sg_rd_decode(31)='1' else sg_tmp_rd_data_30;
448
reg_rd_out <= sg_tmp_rd_data_31;
449
 
450
sg_tmp_rd_data_0_int <= register_file(0) when sg_rd_decode_int(0)='1' else (others=>'0');
451
sg_tmp_rd_data_1_int <= register_file(1) when sg_rd_decode_int(1)='1' else sg_tmp_rd_data_0_int;
452
sg_tmp_rd_data_2_int <= register_file(2) when sg_rd_decode_int(2)='1' else sg_tmp_rd_data_1_int;
453
sg_tmp_rd_data_3_int <= register_file(3) when sg_rd_decode_int(3)='1' else sg_tmp_rd_data_2_int;
454
sg_tmp_rd_data_4_int <= register_file(4) when sg_rd_decode_int(4)='1' else sg_tmp_rd_data_3_int;
455
sg_tmp_rd_data_5_int <= register_file(5) when sg_rd_decode_int(5)='1' else sg_tmp_rd_data_4_int;
456
sg_tmp_rd_data_6_int <= register_file(6) when sg_rd_decode_int(6)='1' else sg_tmp_rd_data_5_int;
457
sg_tmp_rd_data_7_int <= register_file(7) when sg_rd_decode_int(7)='1' else sg_tmp_rd_data_6_int;
458
sg_tmp_rd_data_8_int <= register_file(8) when sg_rd_decode_int(8)='1' else sg_tmp_rd_data_7_int;
459
sg_tmp_rd_data_9_int <= register_file(9) when sg_rd_decode_int(9)='1' else sg_tmp_rd_data_8_int;
460
sg_tmp_rd_data_10_int <= register_file(10) when sg_rd_decode_int(10)='1' else sg_tmp_rd_data_9_int;
461
sg_tmp_rd_data_11_int <= register_file(11) when sg_rd_decode_int(11)='1' else sg_tmp_rd_data_10_int;
462
sg_tmp_rd_data_12_int <= register_file(12) when sg_rd_decode_int(12)='1' else sg_tmp_rd_data_11_int;
463
sg_tmp_rd_data_13_int <= register_file(13) when sg_rd_decode_int(13)='1' else sg_tmp_rd_data_12_int;
464
sg_tmp_rd_data_14_int <= register_file(14) when sg_rd_decode_int(14)='1' else sg_tmp_rd_data_13_int;
465
sg_tmp_rd_data_15_int <= register_file(15) when sg_rd_decode_int(15)='1' else sg_tmp_rd_data_14_int;
466
sg_tmp_rd_data_16_int <= register_file(16) when sg_rd_decode_int(16)='1' else sg_tmp_rd_data_15_int;
467
sg_tmp_rd_data_17_int <= register_file(17) when sg_rd_decode_int(17)='1' else sg_tmp_rd_data_16_int;
468
sg_tmp_rd_data_18_int <= register_file(18) when sg_rd_decode_int(18)='1' else sg_tmp_rd_data_17_int;
469
sg_tmp_rd_data_19_int <= register_file(19) when sg_rd_decode_int(19)='1' else sg_tmp_rd_data_18_int;
470
sg_tmp_rd_data_20_int <= register_file(20) when sg_rd_decode_int(20)='1' else sg_tmp_rd_data_19_int;
471
sg_tmp_rd_data_21_int <= register_file(21) when sg_rd_decode_int(21)='1' else sg_tmp_rd_data_20_int;
472
sg_tmp_rd_data_22_int <= register_file(22) when sg_rd_decode_int(22)='1' else sg_tmp_rd_data_21_int;
473
sg_tmp_rd_data_23_int <= register_file(23) when sg_rd_decode_int(23)='1' else sg_tmp_rd_data_22_int;
474
sg_tmp_rd_data_24_int <= register_file(24) when sg_rd_decode_int(24)='1' else sg_tmp_rd_data_23_int;
475
sg_tmp_rd_data_25_int <= register_file(25) when sg_rd_decode_int(25)='1' else sg_tmp_rd_data_24_int;
476
sg_tmp_rd_data_26_int <= r26h when sg_rd_decode_int(26)='1' else sg_tmp_rd_data_25_int;
477
sg_tmp_rd_data_27_int <= r27h when sg_rd_decode_int(27)='1' else sg_tmp_rd_data_26_int;
478
sg_tmp_rd_data_28_int <= r28h when sg_rd_decode_int(28)='1' else sg_tmp_rd_data_27_int;
479
sg_tmp_rd_data_29_int <= r29h when sg_rd_decode_int(29)='1' else sg_tmp_rd_data_28_int;
480
sg_tmp_rd_data_30_int <= r30h when sg_rd_decode_int(30)='1' else sg_tmp_rd_data_29_int;
481
sg_tmp_rd_data_31_int <= r31h when sg_rd_decode_int(31)='1' else sg_tmp_rd_data_30_int;
482
reg_rd_out_int <= sg_tmp_rd_data_31_int;
483
 
484
--sg_tmp_rr_data(0) <= register_file(0) when sg_rr_decode(0)='1' else (others=>'0');
485
--read_rr_mux: for i in 1 to 25 generate
486
--sg_tmp_rr_data(i) <= register_file(i) when sg_rr_decode(i)='1' else sg_tmp_rr_data(i-1);
487
--end generate;
488
--sg_tmp_rr_data() <= register_file() when sg_rr_decode()='1' else sg_tmp_rr_data();
489
--sg_tmp_rr_data(26) <= r26h when sg_rr_decode(26)='1' else sg_tmp_rr_data(25);
490
--sg_tmp_rr_data(27) <= r27h when sg_rr_decode(27)='1' else sg_tmp_rr_data(26);
491
--sg_tmp_rr_data(28) <= r28h when sg_rr_decode(28)='1' else sg_tmp_rr_data(27);
492
--sg_tmp_rr_data(29) <= r29h when sg_rr_decode(29)='1' else sg_tmp_rr_data(28);
493
--sg_tmp_rr_data(30) <= r30h when sg_rr_decode(30)='1' else sg_tmp_rr_data(29);
494
--sg_tmp_rr_data(31) <= r31h when sg_rr_decode(31)='1' else sg_tmp_rr_data(30);
495
--reg_rr_out <= sg_tmp_rr_data(31);
496
 
497
 
498
sg_tmp_rr_data_0 <= register_file(0) when sg_rr_decode(0)='1' else (others=>'0');
499
sg_tmp_rr_data_1 <= register_file(1) when sg_rr_decode(1)='1' else sg_tmp_rr_data_0;
500
sg_tmp_rr_data_2 <= register_file(2) when sg_rr_decode(2)='1' else sg_tmp_rr_data_1;
501
sg_tmp_rr_data_3 <= register_file(3) when sg_rr_decode(3)='1' else sg_tmp_rr_data_2;
502
sg_tmp_rr_data_4 <= register_file(4) when sg_rr_decode(4)='1' else sg_tmp_rr_data_3;
503
sg_tmp_rr_data_5 <= register_file(5) when sg_rr_decode(5)='1' else sg_tmp_rr_data_4;
504
sg_tmp_rr_data_6 <= register_file(6) when sg_rr_decode(6)='1' else sg_tmp_rr_data_5;
505
sg_tmp_rr_data_7 <= register_file(7) when sg_rr_decode(7)='1' else sg_tmp_rr_data_6;
506
sg_tmp_rr_data_8 <= register_file(8) when sg_rr_decode(8)='1' else sg_tmp_rr_data_7;
507
sg_tmp_rr_data_9 <= register_file(9) when sg_rr_decode(9)='1' else sg_tmp_rr_data_8;
508
sg_tmp_rr_data_10 <= register_file(10) when sg_rr_decode(10)='1' else sg_tmp_rr_data_9;
509
sg_tmp_rr_data_11 <= register_file(11) when sg_rr_decode(11)='1' else sg_tmp_rr_data_10;
510
sg_tmp_rr_data_12 <= register_file(12) when sg_rr_decode(12)='1' else sg_tmp_rr_data_11;
511
sg_tmp_rr_data_13 <= register_file(13) when sg_rr_decode(13)='1' else sg_tmp_rr_data_12;
512
sg_tmp_rr_data_14 <= register_file(14) when sg_rr_decode(14)='1' else sg_tmp_rr_data_13;
513
sg_tmp_rr_data_15 <= register_file(15) when sg_rr_decode(15)='1' else sg_tmp_rr_data_14;
514
sg_tmp_rr_data_16 <= register_file(16) when sg_rr_decode(16)='1' else sg_tmp_rr_data_15;
515
sg_tmp_rr_data_17 <= register_file(17) when sg_rr_decode(17)='1' else sg_tmp_rr_data_16;
516
sg_tmp_rr_data_18 <= register_file(18) when sg_rr_decode(18)='1' else sg_tmp_rr_data_17;
517
sg_tmp_rr_data_19 <= register_file(19) when sg_rr_decode(19)='1' else sg_tmp_rr_data_18;
518
sg_tmp_rr_data_20 <= register_file(20) when sg_rr_decode(20)='1' else sg_tmp_rr_data_19;
519
sg_tmp_rr_data_21 <= register_file(21) when sg_rr_decode(21)='1' else sg_tmp_rr_data_20;
520
sg_tmp_rr_data_22 <= register_file(22) when sg_rr_decode(22)='1' else sg_tmp_rr_data_21;
521
sg_tmp_rr_data_23 <= register_file(23) when sg_rr_decode(23)='1' else sg_tmp_rr_data_22;
522
sg_tmp_rr_data_24 <= register_file(24) when sg_rr_decode(24)='1' else sg_tmp_rr_data_23;
523
sg_tmp_rr_data_25 <= register_file(25) when sg_rr_decode(25)='1' else sg_tmp_rr_data_24;
524
sg_tmp_rr_data_26 <= r26h when sg_rr_decode(26)='1' else sg_tmp_rr_data_25;
525
sg_tmp_rr_data_27 <= r27h when sg_rr_decode(27)='1' else sg_tmp_rr_data_26;
526
sg_tmp_rr_data_28 <= r28h when sg_rr_decode(28)='1' else sg_tmp_rr_data_27;
527
sg_tmp_rr_data_29 <= r29h when sg_rr_decode(29)='1' else sg_tmp_rr_data_28;
528
sg_tmp_rr_data_30 <= r30h when sg_rr_decode(30)='1' else sg_tmp_rr_data_29;
529
sg_tmp_rr_data_31 <= r31h when sg_rr_decode(31)='1' else sg_tmp_rr_data_30;
530
reg_rr_out <= sg_tmp_rr_data_31;
531
 
532
 
533
h_dat_mux_l:for i in 0 to 7 generate
534
sg_tmp_h_data(i) <= (r26h_cml_1(i) and reg_h_adr(0)) or (r28h_cml_1(i) and reg_h_adr(1)) or (r30h_cml_1(i) and reg_h_adr(2));
535
end generate;
536
h_dat_mux_h:for i in 8 to 15 generate
537
-- SynEDA CoreMultiplier
538
-- assignment(s): sg_tmp_h_data
539
-- replace(s): r26h, r27h, r28h, r29h, r30h, r31h
540
 
541
sg_tmp_h_data(i) <= (r27h_cml_1(i-8) and reg_h_adr(0)) or (r29h_cml_1(i-8) and reg_h_adr(1)) or (r31h_cml_1(i-8) and reg_h_adr(2));
542
end generate;
543
 
544
 
545
-- SynEDA CoreMultiplier
546
-- assignment(s): sg_adr16_postinc
547
-- replace(s): sg_tmp_h_data
548
 
549
sg_adr16_postinc <= sg_tmp_h_data_cml_3 +1;
550
sg_adr16_predec  <= sg_tmp_h_data -1;
551
-- OUTPUT TO THE ADDRESS BUS
552
reg_h_out <= sg_adr16_predec when (pre_dec='1') else           -- PREDECREMENT
553
             sg_tmp_h_data;            -- NO PREDECREMENT
554
 
555
-- SynEDA CoreMultiplier
556
-- assignment(s): reg_h_in
557
-- replace(s): sg_adr16_predec
558
 
559
-- TO REGISTERS
560
reg_h_in  <= sg_adr16_postinc when (post_inc='1') else         -- POST INC 
561
             sg_adr16_predec_cml_3;                                  -- PRE DEC
562
 
563
-- Register file with global reset (for simulation)
564
 
565
RegFileWithRst:if CResetRegFile generate
566
 
567
-- SynEDA CoreMultiplier
568
-- assignment(s): register_file
569
-- replace(s): reg_rd_in, register_file
570
 
571
R0_R25:process(cp2,ireset)
572
begin
573
 if ireset='0' then
574
  for i in 0 to 25 loop
575
   register_file(i) <= (others =>'0');
576
  end loop;
577
 elsif (cp2='1' and cp2'event) then register_file <= register_file_cml_3;
578
  if (cp2en='1') then                                                     -- Clock enable        
579
   for i in 0 to 25 loop
580
    if register_wr_en(i)='1' then
581
     register_file(i) <= reg_rd_in_cml_3;
582
    end if;
583
   end loop;
584
  end if;
585
 end if;
586
end process;
587
 
588
 
589
-- SynEDA CoreMultiplier
590
-- assignment(s): r26h
591
-- replace(s): reg_rd_in, reg_h_adr, r26h
592
 
593
-- R26 (LOW)
594
R26:process(cp2,ireset)
595
begin
596
 if ireset='0' then
597
  r26h <= (others =>'0');
598
 elsif (cp2='1' and cp2'event) then r26h <= r26h_cml_3;
599
  if (cp2en='1') then                                                     -- Clock enable        
600
   if register_wr_en(26)='1' then
601
    r26h <= reg_rd_in_cml_3;
602
   elsif (reg_h_adr_cml_3(0)='1'and reg_h_wr='1') then
603
    r26h <= reg_h_in(7 downto 0);
604
   end if;
605
  end if;
606
 end if;
607
end process;
608
 
609
-- SynEDA CoreMultiplier
610
-- assignment(s): r27h
611
-- replace(s): reg_rd_in, reg_h_adr, r27h
612
 
613
-- R27 (HIGH)
614
R27:process(cp2,ireset)
615
begin
616
 if ireset='0' then
617
  r27h <= (others =>'0');
618
 elsif (cp2='1' and cp2'event) then r27h <= r27h_cml_3;
619
  if (cp2en='1') then                                                     -- Clock enable        
620
   if register_wr_en(27)='1' then
621
    r27h <= reg_rd_in_cml_3;
622
   elsif (reg_h_adr_cml_3(0)='1'and reg_h_wr='1') then
623
    r27h <= reg_h_in(15 downto 8);
624
   end if;
625
  end if;
626
 end if;
627
end process;
628
 
629
-- SynEDA CoreMultiplier
630
-- assignment(s): r28h
631
-- replace(s): reg_rd_in, reg_h_adr, r28h
632
 
633
-- R28 (LOW)
634
R28:process(cp2,ireset)
635
begin
636
 if ireset='0' then
637
  r28h <= (others =>'0');
638
 elsif (cp2='1' and cp2'event) then r28h <= r28h_cml_3;
639
  if (cp2en='1') then                                                     -- Clock enable        
640
   if register_wr_en(28)='1' then
641
    r28h <= reg_rd_in_cml_3;
642
   elsif (reg_h_adr_cml_3(1)='1'and reg_h_wr='1') then
643
    r28h <= reg_h_in(7 downto 0);
644
   end if;
645
  end if;
646
 end if;
647
end process;
648
 
649
-- SynEDA CoreMultiplier
650
-- assignment(s): r29h
651
-- replace(s): reg_rd_in, reg_h_adr, r29h
652
 
653
-- R29 (HIGH)
654
R29:process(cp2,ireset)
655
begin
656
 if ireset='0' then
657
  r29h <= (others =>'0');
658
 elsif (cp2='1' and cp2'event) then r29h <= r29h_cml_3;
659
  if (cp2en='1') then                                                     -- Clock enable        
660
   if register_wr_en(29)='1' then
661
    r29h <= reg_rd_in_cml_3;
662
   elsif (reg_h_adr_cml_3(1)='1'and reg_h_wr='1') then
663
    r29h <= reg_h_in(15 downto 8);
664
   end if;
665
  end if;
666
 end if;
667
end process;
668
 
669
-- SynEDA CoreMultiplier
670
-- assignment(s): r30h
671
-- replace(s): reg_rd_in, reg_h_adr, r30h
672
 
673
-- R30 (LOW)
674
R30:process(cp2,ireset)
675
begin
676
 if ireset='0' then
677
  r30h <= (others =>'0');
678
 elsif (cp2='1' and cp2'event) then r30h <= r30h_cml_3;
679
  if (cp2en='1') then                                                     -- Clock enable        
680
   if register_wr_en(30)='1' then
681
    r30h <= reg_rd_in_cml_3;
682
   elsif (reg_h_adr_cml_3(2)='1'and reg_h_wr='1') then
683
    r30h <= reg_h_in(7 downto 0);
684
   end if;
685
  end if;
686
 end if;
687
end process;
688
 
689
-- SynEDA CoreMultiplier
690
-- assignment(s): r31h
691
-- replace(s): reg_rd_in, reg_h_adr, r31h
692
 
693
-- R31 (HIGH)
694
R31:process(cp2,ireset)
695
begin
696
 if ireset='0' then
697
  r31h <= (others =>'0');
698
 elsif (cp2='1' and cp2'event) then r31h <= r31h_cml_3;
699
  if (cp2en='1') then                                                     -- Clock enable        
700
   if register_wr_en(31)='1' then
701
    r31h <= reg_rd_in_cml_3;
702
   elsif (reg_h_adr_cml_3(2)='1'and reg_h_wr='1') then
703
    r31h <= reg_h_in(15 downto 8);
704
   end if;
705
  end if;
706
 end if;
707
end process;
708
 
709
end generate;
710
 
711
 
712
-- Register file without global reset (for synthesis)
713
 
714
RegFileWithoutRst:if not CResetRegFile generate
715
 
716
R0_R25:process(cp2)
717
begin
718
 if (cp2='1' and cp2'event) then
719
  if (cp2en='1') then                                                     -- Clock enable        
720
   for i in 0 to 25 loop
721
    if register_wr_en(i)='1' then
722
     register_file(i) <= reg_rd_in;
723
    end if;
724
   end loop;
725
  end if;
726
 end if;
727
end process;
728
 
729
 
730
-- R26 (LOW)
731
R26:process(cp2)
732
begin
733
 if (cp2='1' and cp2'event) then
734
  if (cp2en='1') then                                                     -- Clock enable        
735
   if register_wr_en(26)='1' then
736
    r26h <= reg_rd_in;
737
   elsif (reg_h_adr(0)='1'and reg_h_wr='1') then
738
    r26h <= reg_h_in(7 downto 0);
739
   end if;
740
  end if;
741
 end if;
742
end process;
743
 
744
-- R27 (HIGH)
745
R27:process(cp2)
746
begin
747
 if (cp2='1' and cp2'event) then
748
  if (cp2en='1') then                                                     -- Clock enable        
749
   if register_wr_en(27)='1' then
750
    r27h <= reg_rd_in;
751
   elsif (reg_h_adr(0)='1'and reg_h_wr='1') then
752
    r27h <= reg_h_in(15 downto 8);
753
   end if;
754
  end if;
755
 end if;
756
end process;
757
 
758
-- R28 (LOW)
759
R28:process(cp2)
760
begin
761
 if (cp2='1' and cp2'event) then
762
  if (cp2en='1') then                                                     -- Clock enable        
763
   if register_wr_en(28)='1' then
764
    r28h <= reg_rd_in;
765
   elsif (reg_h_adr(1)='1'and reg_h_wr='1') then
766
    r28h <= reg_h_in(7 downto 0);
767
   end if;
768
  end if;
769
 end if;
770
end process;
771
 
772
-- R29 (HIGH)
773
R29:process(cp2)
774
begin
775
 if (cp2='1' and cp2'event) then
776
  if (cp2en='1') then                                                     -- Clock enable        
777
   if register_wr_en(29)='1' then
778
    r29h <= reg_rd_in;
779
   elsif (reg_h_adr(1)='1'and reg_h_wr='1') then
780
    r29h <= reg_h_in(15 downto 8);
781
   end if;
782
  end if;
783
 end if;
784
end process;
785
 
786
-- R30 (LOW)
787
R30:process(cp2)
788
begin
789
 if (cp2='1' and cp2'event) then
790
  if (cp2en='1') then                                                     -- Clock enable        
791
   if register_wr_en(30)='1' then
792
    r30h <= reg_rd_in;
793
   elsif (reg_h_adr(2)='1'and reg_h_wr='1') then
794
    r30h <= reg_h_in(7 downto 0);
795
   end if;
796
  end if;
797
 end if;
798
end process;
799
 
800
-- R31 (HIGH)
801
R31:process(cp2)
802
begin
803
 if (cp2='1' and cp2'event) then
804
  if (cp2en='1') then                                                     -- Clock enable        
805
   if register_wr_en(31)='1' then
806
    r31h <= reg_rd_in;
807
   elsif (reg_h_adr(2)='1'and reg_h_wr='1') then
808
    r31h <= reg_h_in(15 downto 8);
809
   end if;
810
  end if;
811
 end if;
812
end process;
813
 
814
end generate;
815
 
816
end RTL;

powered by: WebSVN 2.1.0

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