OpenCores
URL https://opencores.org/ocsvn/a-z80/a-z80/trunk

Subversion Repositories a-z80

[/] [a-z80/] [trunk/] [cpu/] [registers/] [reg_control.v] - Blame information for rev 13

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 gdevic
// Copyright (C) 1991-2013 Altera Corporation
2
// Your use of Altera Corporation's design tools, logic functions 
3
// and other software and tools, and its AMPP partner logic 
4
// functions, and any output files from any of the foregoing 
5
// (including device programming or simulation files), and any 
6
// associated documentation or information are expressly subject 
7
// to the terms and conditions of the Altera Program License 
8
// Subscription Agreement, Altera MegaCore Function License 
9
// Agreement, or other applicable license agreement, including, 
10
// without limitation, that your use is for the sole purpose of 
11
// programming logic devices manufactured by Altera and sold by 
12
// Altera or its authorized distributors.  Please refer to the 
13
// applicable agreement for further details.
14
 
15
// PROGRAM              "Quartus II 64-Bit"
16
// VERSION              "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition"
17 13 gdevic
// CREATED              "Thu Dec 08 22:19:25 2016"
18 3 gdevic
 
19
module reg_control(
20
        ctl_reg_exx,
21
        ctl_reg_ex_af,
22
        ctl_reg_ex_de_hl,
23
        ctl_reg_use_sp,
24
        nreset,
25
        ctl_reg_sel_pc,
26
        ctl_reg_sel_ir,
27
        ctl_reg_sel_wz,
28
        ctl_reg_gp_we,
29
        ctl_reg_not_pc,
30
        use_ixiy,
31
        use_ix,
32
        ctl_reg_sys_we_lo,
33
        ctl_reg_sys_we_hi,
34
        ctl_reg_sys_we,
35
        clk,
36 8 gdevic
        ctl_sw_4d,
37 13 gdevic
        hold_clk_wait,
38 3 gdevic
        ctl_reg_gp_hilo,
39
        ctl_reg_gp_sel,
40
        ctl_reg_sys_hilo,
41
        reg_sel_bc,
42
        reg_sel_bc2,
43
        reg_sel_ix,
44
        reg_sel_iy,
45
        reg_sel_de,
46
        reg_sel_hl,
47
        reg_sel_de2,
48
        reg_sel_hl2,
49
        reg_sel_af,
50
        reg_sel_af2,
51
        reg_sel_wz,
52
        reg_sel_pc,
53
        reg_sel_ir,
54
        reg_sel_sp,
55
        reg_sel_gp_hi,
56
        reg_sel_gp_lo,
57
        reg_sel_sys_lo,
58
        reg_sel_sys_hi,
59
        reg_gp_we,
60
        reg_sys_we_lo,
61 8 gdevic
        reg_sys_we_hi,
62
        reg_sw_4d_lo,
63
        reg_sw_4d_hi
64 3 gdevic
);
65
 
66
 
67
input wire      ctl_reg_exx;
68
input wire      ctl_reg_ex_af;
69
input wire      ctl_reg_ex_de_hl;
70
input wire      ctl_reg_use_sp;
71
input wire      nreset;
72
input wire      ctl_reg_sel_pc;
73
input wire      ctl_reg_sel_ir;
74
input wire      ctl_reg_sel_wz;
75
input wire      ctl_reg_gp_we;
76
input wire      ctl_reg_not_pc;
77
input wire      use_ixiy;
78
input wire      use_ix;
79
input wire      ctl_reg_sys_we_lo;
80
input wire      ctl_reg_sys_we_hi;
81
input wire      ctl_reg_sys_we;
82
input wire      clk;
83 8 gdevic
input wire      ctl_sw_4d;
84 13 gdevic
input wire      hold_clk_wait;
85 3 gdevic
input wire      [1:0] ctl_reg_gp_hilo;
86
input wire      [1:0] ctl_reg_gp_sel;
87
input wire      [1:0] ctl_reg_sys_hilo;
88
output wire     reg_sel_bc;
89
output wire     reg_sel_bc2;
90
output wire     reg_sel_ix;
91
output wire     reg_sel_iy;
92
output wire     reg_sel_de;
93
output wire     reg_sel_hl;
94
output wire     reg_sel_de2;
95
output wire     reg_sel_hl2;
96
output wire     reg_sel_af;
97
output wire     reg_sel_af2;
98
output wire     reg_sel_wz;
99
output wire     reg_sel_pc;
100
output wire     reg_sel_ir;
101
output wire     reg_sel_sp;
102
output wire     reg_sel_gp_hi;
103
output wire     reg_sel_gp_lo;
104
output wire     reg_sel_sys_lo;
105
output wire     reg_sel_sys_hi;
106
output wire     reg_gp_we;
107
output wire     reg_sys_we_lo;
108
output wire     reg_sys_we_hi;
109 8 gdevic
output wire     reg_sw_4d_lo;
110
output wire     reg_sw_4d_hi;
111 3 gdevic
 
112
reg     bank_af;
113
reg     bank_exx;
114
reg     bank_hl_de1;
115
reg     bank_hl_de2;
116 13 gdevic
wire    n_hold_clk_wait;
117 8 gdevic
wire    reg_sys_we_lo_ALTERA_SYNTHESIZED;
118 3 gdevic
wire    SYNTHESIZED_WIRE_52;
119
wire    SYNTHESIZED_WIRE_53;
120 8 gdevic
wire    SYNTHESIZED_WIRE_2;
121 3 gdevic
wire    SYNTHESIZED_WIRE_54;
122
wire    SYNTHESIZED_WIRE_55;
123 8 gdevic
wire    SYNTHESIZED_WIRE_5;
124 3 gdevic
wire    SYNTHESIZED_WIRE_56;
125 8 gdevic
wire    SYNTHESIZED_WIRE_10;
126 3 gdevic
wire    SYNTHESIZED_WIRE_57;
127 8 gdevic
wire    SYNTHESIZED_WIRE_58;
128
wire    SYNTHESIZED_WIRE_59;
129
wire    SYNTHESIZED_WIRE_60;
130 3 gdevic
wire    SYNTHESIZED_WIRE_21;
131
wire    SYNTHESIZED_WIRE_23;
132
wire    SYNTHESIZED_WIRE_24;
133
wire    SYNTHESIZED_WIRE_25;
134
wire    SYNTHESIZED_WIRE_30;
135
wire    SYNTHESIZED_WIRE_31;
136
wire    SYNTHESIZED_WIRE_32;
137 8 gdevic
wire    SYNTHESIZED_WIRE_61;
138 3 gdevic
wire    SYNTHESIZED_WIRE_34;
139
wire    SYNTHESIZED_WIRE_36;
140
wire    SYNTHESIZED_WIRE_37;
141
wire    SYNTHESIZED_WIRE_38;
142
wire    SYNTHESIZED_WIRE_39;
143
wire    SYNTHESIZED_WIRE_40;
144
wire    SYNTHESIZED_WIRE_41;
145
wire    SYNTHESIZED_WIRE_42;
146
wire    SYNTHESIZED_WIRE_43;
147
wire    SYNTHESIZED_WIRE_44;
148
wire    SYNTHESIZED_WIRE_45;
149
wire    SYNTHESIZED_WIRE_46;
150
wire    SYNTHESIZED_WIRE_47;
151 8 gdevic
wire    SYNTHESIZED_WIRE_48;
152
wire    SYNTHESIZED_WIRE_49;
153
wire    SYNTHESIZED_WIRE_50;
154 3 gdevic
 
155
assign  reg_sel_wz = ctl_reg_sel_wz;
156
assign  reg_sel_ir = ctl_reg_sel_ir;
157
assign  reg_sel_gp_hi = ctl_reg_gp_hilo[1];
158
assign  reg_sel_gp_lo = ctl_reg_gp_hilo[0];
159
assign  reg_sel_sys_lo = ctl_reg_sys_hilo[0];
160
assign  reg_sel_sys_hi = ctl_reg_sys_hilo[1];
161
assign  reg_gp_we = ctl_reg_gp_we;
162 8 gdevic
assign  reg_sw_4d_lo = ctl_sw_4d;
163 3 gdevic
 
164
 
165
 
166 8 gdevic
assign  reg_sel_bc = SYNTHESIZED_WIRE_52 & SYNTHESIZED_WIRE_53;
167 3 gdevic
 
168 8 gdevic
assign  reg_sel_af = SYNTHESIZED_WIRE_2 & SYNTHESIZED_WIRE_54;
169 3 gdevic
 
170 8 gdevic
assign  SYNTHESIZED_WIRE_54 = SYNTHESIZED_WIRE_55 & SYNTHESIZED_WIRE_5;
171 3 gdevic
 
172 8 gdevic
assign  reg_sel_sp = SYNTHESIZED_WIRE_55 & ctl_reg_use_sp;
173 3 gdevic
 
174
assign  SYNTHESIZED_WIRE_5 =  ~ctl_reg_use_sp;
175
 
176 8 gdevic
assign  reg_sel_ix = SYNTHESIZED_WIRE_56 & use_ix;
177 3 gdevic
 
178 13 gdevic
assign  SYNTHESIZED_WIRE_50 = ctl_reg_ex_de_hl & SYNTHESIZED_WIRE_53;
179 3 gdevic
 
180 8 gdevic
assign  reg_sel_iy = SYNTHESIZED_WIRE_56 & SYNTHESIZED_WIRE_10;
181 3 gdevic
 
182 8 gdevic
assign  reg_sel_af2 = bank_af & SYNTHESIZED_WIRE_54;
183 3 gdevic
 
184
assign  SYNTHESIZED_WIRE_2 =  ~bank_af;
185
 
186 13 gdevic
assign  SYNTHESIZED_WIRE_47 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_58;
187 3 gdevic
 
188 13 gdevic
assign  SYNTHESIZED_WIRE_46 = bank_hl_de2 & SYNTHESIZED_WIRE_59;
189 3 gdevic
 
190 13 gdevic
assign  SYNTHESIZED_WIRE_39 = SYNTHESIZED_WIRE_60 & SYNTHESIZED_WIRE_58;
191 3 gdevic
 
192 13 gdevic
assign  SYNTHESIZED_WIRE_49 = bank_hl_de2 & SYNTHESIZED_WIRE_58;
193 3 gdevic
 
194 13 gdevic
assign  SYNTHESIZED_WIRE_48 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_59;
195 3 gdevic
 
196 8 gdevic
assign  reg_sel_de = SYNTHESIZED_WIRE_53 & SYNTHESIZED_WIRE_21;
197 3 gdevic
 
198 8 gdevic
assign  reg_sel_hl = SYNTHESIZED_WIRE_53 & SYNTHESIZED_WIRE_23;
199 3 gdevic
 
200
assign  reg_sel_de2 = bank_exx & SYNTHESIZED_WIRE_24;
201
 
202
assign  reg_sel_hl2 = bank_exx & SYNTHESIZED_WIRE_25;
203
 
204 13 gdevic
assign  SYNTHESIZED_WIRE_38 = bank_hl_de1 & SYNTHESIZED_WIRE_59;
205 3 gdevic
 
206 8 gdevic
assign  SYNTHESIZED_WIRE_53 =  ~bank_exx;
207 3 gdevic
 
208 13 gdevic
assign  SYNTHESIZED_WIRE_45 = bank_hl_de1 & SYNTHESIZED_WIRE_58;
209 3 gdevic
 
210 13 gdevic
assign  SYNTHESIZED_WIRE_44 = SYNTHESIZED_WIRE_60 & SYNTHESIZED_WIRE_59;
211 3 gdevic
 
212 8 gdevic
assign  SYNTHESIZED_WIRE_52 = SYNTHESIZED_WIRE_30 & SYNTHESIZED_WIRE_31;
213 3 gdevic
 
214 8 gdevic
assign  SYNTHESIZED_WIRE_60 =  ~bank_hl_de1;
215 3 gdevic
 
216
assign  reg_sys_we_hi = ctl_reg_sys_we | ctl_reg_sys_we_hi;
217
 
218
assign  reg_sel_pc = ctl_reg_sel_pc & SYNTHESIZED_WIRE_32;
219
 
220 8 gdevic
assign  SYNTHESIZED_WIRE_58 = SYNTHESIZED_WIRE_61 & SYNTHESIZED_WIRE_34;
221 3 gdevic
 
222
assign  SYNTHESIZED_WIRE_32 =  ~ctl_reg_not_pc;
223
 
224
assign  SYNTHESIZED_WIRE_36 =  ~ctl_reg_gp_sel[1];
225
 
226 8 gdevic
assign  reg_sys_we_lo_ALTERA_SYNTHESIZED = ctl_reg_sys_we_lo | ctl_reg_sys_we;
227 3 gdevic
 
228 8 gdevic
assign  SYNTHESIZED_WIRE_56 = SYNTHESIZED_WIRE_61 & use_ixiy;
229 3 gdevic
 
230 13 gdevic
assign  SYNTHESIZED_WIRE_42 =  ~ctl_reg_gp_sel[0];
231 3 gdevic
 
232 13 gdevic
assign  SYNTHESIZED_WIRE_43 = ctl_reg_ex_de_hl & bank_exx;
233 3 gdevic
 
234
assign  SYNTHESIZED_WIRE_34 =  ~use_ixiy;
235
 
236 8 gdevic
assign  SYNTHESIZED_WIRE_59 = ctl_reg_gp_sel[0] & SYNTHESIZED_WIRE_36;
237 3 gdevic
 
238
 
239
always@(posedge clk or negedge nreset)
240
begin
241
if (!nreset)
242
        begin
243 13 gdevic
        bank_af <= 0;
244 3 gdevic
        end
245
else
246 13 gdevic
if (n_hold_clk_wait)
247
        begin
248
        bank_af <= bank_af ^ ctl_reg_ex_af;
249
        end
250 3 gdevic
end
251
 
252 13 gdevic
assign  SYNTHESIZED_WIRE_10 =  ~use_ix;
253 3 gdevic
 
254 13 gdevic
assign  SYNTHESIZED_WIRE_57 =  ~bank_hl_de2;
255 8 gdevic
 
256 13 gdevic
assign  SYNTHESIZED_WIRE_41 =  ~reg_sys_we_lo_ALTERA_SYNTHESIZED;
257
 
258
assign  SYNTHESIZED_WIRE_40 =  ~SYNTHESIZED_WIRE_37;
259
 
260
assign  SYNTHESIZED_WIRE_23 = SYNTHESIZED_WIRE_38 | SYNTHESIZED_WIRE_39;
261
 
262
assign  reg_sw_4d_hi = ctl_sw_4d & SYNTHESIZED_WIRE_40;
263
 
264
assign  SYNTHESIZED_WIRE_37 = ctl_reg_sys_hilo[1] & SYNTHESIZED_WIRE_41 & ctl_reg_sel_ir;
265
 
266
assign  SYNTHESIZED_WIRE_61 = SYNTHESIZED_WIRE_42 & ctl_reg_gp_sel[1];
267
 
268
 
269 3 gdevic
always@(posedge clk or negedge nreset)
270
begin
271
if (!nreset)
272
        begin
273
        bank_hl_de2 <= 0;
274
        end
275
else
276 13 gdevic
if (n_hold_clk_wait)
277
        begin
278
        bank_hl_de2 <= bank_hl_de2 ^ SYNTHESIZED_WIRE_43;
279
        end
280 3 gdevic
end
281
 
282 13 gdevic
assign  SYNTHESIZED_WIRE_21 = SYNTHESIZED_WIRE_44 | SYNTHESIZED_WIRE_45;
283 3 gdevic
 
284 13 gdevic
assign  SYNTHESIZED_WIRE_25 = SYNTHESIZED_WIRE_46 | SYNTHESIZED_WIRE_47;
285 3 gdevic
 
286 13 gdevic
assign  SYNTHESIZED_WIRE_24 = SYNTHESIZED_WIRE_48 | SYNTHESIZED_WIRE_49;
287 3 gdevic
 
288
 
289
always@(posedge clk or negedge nreset)
290
begin
291
if (!nreset)
292
        begin
293 13 gdevic
        bank_hl_de1 <= 0;
294 3 gdevic
        end
295
else
296 13 gdevic
if (n_hold_clk_wait)
297
        begin
298
        bank_hl_de1 <= bank_hl_de1 ^ SYNTHESIZED_WIRE_50;
299
        end
300 3 gdevic
end
301
 
302
 
303
always@(posedge clk or negedge nreset)
304
begin
305
if (!nreset)
306
        begin
307 13 gdevic
        bank_exx <= 0;
308 3 gdevic
        end
309
else
310 13 gdevic
if (n_hold_clk_wait)
311
        begin
312
        bank_exx <= bank_exx ^ ctl_reg_exx;
313
        end
314 3 gdevic
end
315
 
316 13 gdevic
assign  SYNTHESIZED_WIRE_55 = ctl_reg_gp_sel[0] & ctl_reg_gp_sel[1];
317
 
318
assign  SYNTHESIZED_WIRE_30 =  ~ctl_reg_gp_sel[0];
319
 
320
assign  SYNTHESIZED_WIRE_31 =  ~ctl_reg_gp_sel[1];
321
 
322
assign  n_hold_clk_wait =  ~hold_clk_wait;
323
 
324
assign  reg_sel_bc2 = SYNTHESIZED_WIRE_52 & bank_exx;
325
 
326 8 gdevic
assign  reg_sys_we_lo = reg_sys_we_lo_ALTERA_SYNTHESIZED;
327 3 gdevic
 
328
endmodule

powered by: WebSVN 2.1.0

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