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 3

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
// CREATED              "Fri Oct 31 20:41:01 2014"
18
 
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
        ctl_reg_gp_hilo,
37
        ctl_reg_gp_sel,
38
        ctl_reg_sys_hilo,
39
        reg_sel_bc,
40
        reg_sel_bc2,
41
        reg_sel_ix,
42
        reg_sel_iy,
43
        reg_sel_de,
44
        reg_sel_hl,
45
        reg_sel_de2,
46
        reg_sel_hl2,
47
        reg_sel_af,
48
        reg_sel_af2,
49
        reg_sel_wz,
50
        reg_sel_pc,
51
        reg_sel_ir,
52
        reg_sel_sp,
53
        reg_sel_gp_hi,
54
        reg_sel_gp_lo,
55
        reg_sel_sys_lo,
56
        reg_sel_sys_hi,
57
        reg_gp_we,
58
        reg_sys_we_lo,
59
        reg_sys_we_hi
60
);
61
 
62
 
63
input wire      ctl_reg_exx;
64
input wire      ctl_reg_ex_af;
65
input wire      ctl_reg_ex_de_hl;
66
input wire      ctl_reg_use_sp;
67
input wire      nreset;
68
input wire      ctl_reg_sel_pc;
69
input wire      ctl_reg_sel_ir;
70
input wire      ctl_reg_sel_wz;
71
input wire      ctl_reg_gp_we;
72
input wire      ctl_reg_not_pc;
73
input wire      use_ixiy;
74
input wire      use_ix;
75
input wire      ctl_reg_sys_we_lo;
76
input wire      ctl_reg_sys_we_hi;
77
input wire      ctl_reg_sys_we;
78
input wire      clk;
79
input wire      [1:0] ctl_reg_gp_hilo;
80
input wire      [1:0] ctl_reg_gp_sel;
81
input wire      [1:0] ctl_reg_sys_hilo;
82
output wire     reg_sel_bc;
83
output wire     reg_sel_bc2;
84
output wire     reg_sel_ix;
85
output wire     reg_sel_iy;
86
output wire     reg_sel_de;
87
output wire     reg_sel_hl;
88
output wire     reg_sel_de2;
89
output wire     reg_sel_hl2;
90
output wire     reg_sel_af;
91
output wire     reg_sel_af2;
92
output wire     reg_sel_wz;
93
output wire     reg_sel_pc;
94
output wire     reg_sel_ir;
95
output wire     reg_sel_sp;
96
output wire     reg_sel_gp_hi;
97
output wire     reg_sel_gp_lo;
98
output wire     reg_sel_sys_lo;
99
output wire     reg_sel_sys_hi;
100
output wire     reg_gp_we;
101
output wire     reg_sys_we_lo;
102
output wire     reg_sys_we_hi;
103
 
104
reg     bank_af;
105
reg     bank_exx;
106
reg     bank_hl_de1;
107
reg     bank_hl_de2;
108
wire    SYNTHESIZED_WIRE_49;
109
wire    SYNTHESIZED_WIRE_50;
110
wire    SYNTHESIZED_WIRE_2;
111
wire    SYNTHESIZED_WIRE_51;
112
wire    SYNTHESIZED_WIRE_52;
113
wire    SYNTHESIZED_WIRE_5;
114
wire    SYNTHESIZED_WIRE_53;
115
wire    SYNTHESIZED_WIRE_10;
116
wire    SYNTHESIZED_WIRE_54;
117
wire    SYNTHESIZED_WIRE_55;
118
wire    SYNTHESIZED_WIRE_56;
119
wire    SYNTHESIZED_WIRE_57;
120
wire    SYNTHESIZED_WIRE_21;
121
wire    SYNTHESIZED_WIRE_23;
122
wire    SYNTHESIZED_WIRE_24;
123
wire    SYNTHESIZED_WIRE_25;
124
wire    SYNTHESIZED_WIRE_30;
125
wire    SYNTHESIZED_WIRE_31;
126
wire    SYNTHESIZED_WIRE_32;
127
wire    SYNTHESIZED_WIRE_58;
128
wire    SYNTHESIZED_WIRE_34;
129
wire    SYNTHESIZED_WIRE_36;
130
wire    SYNTHESIZED_WIRE_37;
131
wire    SYNTHESIZED_WIRE_38;
132
wire    SYNTHESIZED_WIRE_39;
133
wire    SYNTHESIZED_WIRE_40;
134
wire    SYNTHESIZED_WIRE_41;
135
wire    SYNTHESIZED_WIRE_42;
136
wire    SYNTHESIZED_WIRE_43;
137
wire    SYNTHESIZED_WIRE_44;
138
wire    SYNTHESIZED_WIRE_45;
139
wire    SYNTHESIZED_WIRE_46;
140
wire    SYNTHESIZED_WIRE_47;
141
 
142
assign  reg_sel_wz = ctl_reg_sel_wz;
143
assign  reg_sel_ir = ctl_reg_sel_ir;
144
assign  reg_sel_gp_hi = ctl_reg_gp_hilo[1];
145
assign  reg_sel_gp_lo = ctl_reg_gp_hilo[0];
146
assign  reg_sel_sys_lo = ctl_reg_sys_hilo[0];
147
assign  reg_sel_sys_hi = ctl_reg_sys_hilo[1];
148
assign  reg_gp_we = ctl_reg_gp_we;
149
 
150
 
151
 
152
assign  reg_sel_bc = SYNTHESIZED_WIRE_49 & SYNTHESIZED_WIRE_50;
153
 
154
assign  reg_sel_af = SYNTHESIZED_WIRE_2 & SYNTHESIZED_WIRE_51;
155
 
156
assign  SYNTHESIZED_WIRE_51 = SYNTHESIZED_WIRE_52 & SYNTHESIZED_WIRE_5;
157
 
158
assign  reg_sel_sp = SYNTHESIZED_WIRE_52 & ctl_reg_use_sp;
159
 
160
assign  SYNTHESIZED_WIRE_5 =  ~ctl_reg_use_sp;
161
 
162
assign  reg_sel_ix = SYNTHESIZED_WIRE_53 & use_ix;
163
 
164
assign  SYNTHESIZED_WIRE_37 = ctl_reg_ex_de_hl & SYNTHESIZED_WIRE_50;
165
 
166
assign  reg_sel_iy = SYNTHESIZED_WIRE_53 & SYNTHESIZED_WIRE_10;
167
 
168
assign  reg_sel_af2 = bank_af & SYNTHESIZED_WIRE_51;
169
 
170
assign  SYNTHESIZED_WIRE_2 =  ~bank_af;
171
 
172
assign  SYNTHESIZED_WIRE_45 = SYNTHESIZED_WIRE_54 & SYNTHESIZED_WIRE_55;
173
 
174
assign  SYNTHESIZED_WIRE_44 = bank_hl_de2 & SYNTHESIZED_WIRE_56;
175
 
176
assign  SYNTHESIZED_WIRE_40 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_55;
177
 
178
assign  SYNTHESIZED_WIRE_47 = bank_hl_de2 & SYNTHESIZED_WIRE_55;
179
 
180
assign  SYNTHESIZED_WIRE_46 = SYNTHESIZED_WIRE_54 & SYNTHESIZED_WIRE_56;
181
 
182
assign  reg_sel_de = SYNTHESIZED_WIRE_50 & SYNTHESIZED_WIRE_21;
183
 
184
assign  reg_sel_hl = SYNTHESIZED_WIRE_50 & SYNTHESIZED_WIRE_23;
185
 
186
assign  reg_sel_de2 = bank_exx & SYNTHESIZED_WIRE_24;
187
 
188
assign  reg_sel_hl2 = bank_exx & SYNTHESIZED_WIRE_25;
189
 
190
assign  SYNTHESIZED_WIRE_39 = bank_hl_de1 & SYNTHESIZED_WIRE_56;
191
 
192
assign  SYNTHESIZED_WIRE_50 =  ~bank_exx;
193
 
194
assign  SYNTHESIZED_WIRE_43 = bank_hl_de1 & SYNTHESIZED_WIRE_55;
195
 
196
assign  SYNTHESIZED_WIRE_42 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_56;
197
 
198
assign  SYNTHESIZED_WIRE_49 = SYNTHESIZED_WIRE_30 & SYNTHESIZED_WIRE_31;
199
 
200
assign  SYNTHESIZED_WIRE_57 =  ~bank_hl_de1;
201
 
202
assign  reg_sys_we_hi = ctl_reg_sys_we | ctl_reg_sys_we_hi;
203
 
204
assign  reg_sel_pc = ctl_reg_sel_pc & SYNTHESIZED_WIRE_32;
205
 
206
assign  SYNTHESIZED_WIRE_55 = SYNTHESIZED_WIRE_58 & SYNTHESIZED_WIRE_34;
207
 
208
assign  SYNTHESIZED_WIRE_32 =  ~ctl_reg_not_pc;
209
 
210
assign  SYNTHESIZED_WIRE_36 =  ~ctl_reg_gp_sel[1];
211
 
212
assign  reg_sys_we_lo = ctl_reg_sys_we_lo | ctl_reg_sys_we;
213
 
214
assign  SYNTHESIZED_WIRE_53 = SYNTHESIZED_WIRE_58 & use_ixiy;
215
 
216
assign  SYNTHESIZED_WIRE_41 =  ~ctl_reg_gp_sel[0];
217
 
218
assign  SYNTHESIZED_WIRE_38 = ctl_reg_ex_de_hl & bank_exx;
219
 
220
assign  SYNTHESIZED_WIRE_34 =  ~use_ixiy;
221
 
222
assign  SYNTHESIZED_WIRE_56 = ctl_reg_gp_sel[0] & SYNTHESIZED_WIRE_36;
223
 
224
assign  SYNTHESIZED_WIRE_10 =  ~use_ix;
225
 
226
assign  SYNTHESIZED_WIRE_54 =  ~bank_hl_de2;
227
 
228
 
229
always@(posedge clk or negedge nreset)
230
begin
231
if (!nreset)
232
        begin
233
        bank_hl_de1 <= 0;
234
        end
235
else
236
        bank_hl_de1 <= bank_hl_de1 ^ SYNTHESIZED_WIRE_37;
237
end
238
 
239
 
240
always@(posedge clk or negedge nreset)
241
begin
242
if (!nreset)
243
        begin
244
        bank_hl_de2 <= 0;
245
        end
246
else
247
        bank_hl_de2 <= bank_hl_de2 ^ SYNTHESIZED_WIRE_38;
248
end
249
 
250
assign  SYNTHESIZED_WIRE_23 = SYNTHESIZED_WIRE_39 | SYNTHESIZED_WIRE_40;
251
 
252
assign  SYNTHESIZED_WIRE_58 = SYNTHESIZED_WIRE_41 & ctl_reg_gp_sel[1];
253
 
254
assign  SYNTHESIZED_WIRE_21 = SYNTHESIZED_WIRE_42 | SYNTHESIZED_WIRE_43;
255
 
256
assign  SYNTHESIZED_WIRE_25 = SYNTHESIZED_WIRE_44 | SYNTHESIZED_WIRE_45;
257
 
258
assign  SYNTHESIZED_WIRE_24 = SYNTHESIZED_WIRE_46 | SYNTHESIZED_WIRE_47;
259
 
260
assign  SYNTHESIZED_WIRE_52 = ctl_reg_gp_sel[0] & ctl_reg_gp_sel[1];
261
 
262
assign  SYNTHESIZED_WIRE_30 =  ~ctl_reg_gp_sel[0];
263
 
264
assign  SYNTHESIZED_WIRE_31 =  ~ctl_reg_gp_sel[1];
265
 
266
 
267
always@(posedge clk or negedge nreset)
268
begin
269
if (!nreset)
270
        begin
271
        bank_exx <= 0;
272
        end
273
else
274
        bank_exx <= bank_exx ^ ctl_reg_exx;
275
end
276
 
277
assign  reg_sel_bc2 = SYNTHESIZED_WIRE_49 & bank_exx;
278
 
279
 
280
always@(posedge clk or negedge nreset)
281
begin
282
if (!nreset)
283
        begin
284
        bank_af <= 0;
285
        end
286
else
287
        bank_af <= bank_af ^ ctl_reg_ex_af;
288
end
289
 
290
 
291
endmodule

powered by: WebSVN 2.1.0

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