URL
https://opencores.org/ocsvn/a-z80/a-z80/trunk
Subversion Repositories a-z80
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 12 to Rev 13
- ↔ Reverse comparison
Rev 12 → Rev 13
/a-z80/trunk/cpu/bus/data_pins_lattice.v
0,0 → 1,40
// Use this file with Lattice toolset instead of data_pins.v |
// |
// data_pins.v is auto-generated by Altera Quartus IDE from a |
// block schematic file data_pins.bdf |
|
module data_pins( |
bus_db_pin_oe, |
bus_db_pin_re, |
ctl_bus_db_we, |
clk, |
ctl_bus_db_oe, |
D, |
db |
); |
|
input wire bus_db_pin_oe; |
input wire bus_db_pin_re; |
input wire ctl_bus_db_we; |
input wire clk; |
input wire ctl_bus_db_oe; |
inout wire [7:0] D; |
inout wire [7:0] db; |
|
reg [7:0] dout; |
|
always@(negedge clk) |
begin |
if (ctl_bus_db_we | bus_db_pin_re) |
begin |
if (bus_db_pin_re) |
dout <= D; |
else if (ctl_bus_db_we) |
dout <= db; |
end |
end |
|
assign db = ctl_bus_db_oe ? dout : 8'hZ; |
assign D = bus_db_pin_oe ? dout : 8'hZ; |
|
endmodule |
/a-z80/trunk/cpu/control/decode_state.bdf
85,22 → 85,6
) |
(pin |
(input) |
(rect 40 624 216 640) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "ctl_state_tbl_clr" (rect 9 0 86 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 40 680 216 696) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "ctl_state_tbl_ed_set" (rect 9 0 108 12)(font "Arial" )) |
244,6 → 228,38
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 40 592 216 608) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "ctl_state_tbl_we" (rect 9 0 88 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 40 624 216 640) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "hold_clk_wait" (rect 9 0 73 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(output) |
(rect 640 384 816 400) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
393,7 → 409,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
405,46 → 421,6
) |
) |
(symbol |
(rect 328 608 392 656) |
(text "OR3" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst1" (rect 3 37 30 51)(font "Arial" (font_size 8))) |
(port |
(pt 0 24) |
(input) |
(text "IN2" (rect 2 15 19 27)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 15 19 27)(font "Courier New" (bold))(invisible)) |
(line (pt 0 24)(pt 18 24)) |
) |
(port |
(pt 0 32) |
(input) |
(text "IN3" (rect 2 24 19 36)(font "Courier New" (bold))(invisible)) |
(text "IN3" (rect 2 24 19 36)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 16 32)) |
) |
(port |
(pt 0 16) |
(input) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 16 16)) |
) |
(port |
(pt 64 24) |
(output) |
(text "OUT" (rect 47 15 64 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 47 15 64 27)(font "Courier New" (bold))(invisible)) |
(line (pt 49 24)(pt 64 24)) |
) |
(drawing |
(line (pt 14 13)(pt 25 13)) |
(line (pt 14 36)(pt 25 36)) |
(arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) |
(arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) |
(arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) |
) |
) |
(symbol |
(rect 552 608 616 656) |
(text "NOR2" (rect 1 0 26 10)(font "Arial" (font_size 6))) |
(text "inst3" (rect 3 37 26 49)(font "Arial" )) |
466,7 → 442,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 54 24)(pt 64 24)) |
) |
(drawing |
500,7 → 476,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 44 24)(pt 64 24)) |
) |
(drawing |
527,7 → 503,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
580,7 → 556,7
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
616,7 → 592,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
670,7 → 646,7
(pt 64 24) |
(output) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
727,7 → 703,7
(pt 64 24) |
(output) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
784,7 → 760,7
(pt 64 24) |
(output) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
841,7 → 817,7
(pt 64 24) |
(output) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
898,7 → 874,7
(pt 64 24) |
(output) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
912,6 → 888,63
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 312 584 376 632) |
(text "AND2" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "inst6" (rect 3 37 26 49)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 14 16)) |
) |
(port |
(pt 0 32) |
(input) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 14 32)) |
) |
(port |
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
(line (pt 14 12)(pt 30 12)) |
(line (pt 14 37)(pt 31 37)) |
(line (pt 14 12)(pt 14 37)) |
(arc (pt 31 37)(pt 30 12)(rect 18 12 43 37)) |
) |
) |
(symbol |
(rect 224 616 272 648) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
(text "inst8" (rect 3 21 26 33)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
(line (pt 13 25)(pt 13 7)) |
(line (pt 13 7)(pt 31 16)) |
(line (pt 13 25)(pt 31 16)) |
(circle (rect 31 12 39 20)) |
) |
) |
(connector |
(pt 376 104) |
(pt 440 104) |
1039,10 → 1072,6
(pt 472 472) |
) |
(connector |
(pt 440 608) |
(pt 408 608) |
) |
(connector |
(pt 440 720) |
(pt 408 720) |
) |
1077,30 → 1106,6
(pt 640 632) |
) |
(connector |
(pt 248 688) |
(pt 248 640) |
) |
(connector |
(pt 248 640) |
(pt 328 640) |
) |
(connector |
(pt 248 624) |
(pt 328 624) |
) |
(connector |
(pt 248 576) |
(pt 248 624) |
) |
(connector |
(pt 408 632) |
(pt 392 632) |
) |
(connector |
(pt 216 632) |
(pt 328 632) |
) |
(connector |
(text "nreset" (rect 429 632 459 644)(font "Arial" )) |
(pt 472 648) |
(pt 424 648) |
1127,30 → 1132,6
(pt 640 576) |
) |
(connector |
(pt 216 688) |
(pt 248 688) |
) |
(connector |
(pt 248 688) |
(pt 440 688) |
) |
(connector |
(pt 216 576) |
(pt 248 576) |
) |
(connector |
(pt 248 576) |
(pt 440 576) |
) |
(connector |
(pt 408 608) |
(pt 408 632) |
) |
(connector |
(pt 408 632) |
(pt 408 720) |
) |
(connector |
(pt 472 632) |
(pt 472 648) |
) |
1190,14 → 1171,52
(pt 472 912) |
(pt 472 928) |
) |
(connector |
(pt 216 576) |
(pt 440 576) |
) |
(connector |
(pt 216 688) |
(pt 440 688) |
) |
(connector |
(pt 288 616) |
(pt 312 616) |
) |
(connector |
(pt 408 608) |
(pt 408 720) |
) |
(connector |
(pt 376 608) |
(pt 408 608) |
) |
(connector |
(pt 408 608) |
(pt 440 608) |
) |
(connector |
(pt 216 600) |
(pt 312 600) |
) |
(connector |
(pt 224 632) |
(pt 216 632) |
) |
(connector |
(pt 288 616) |
(pt 288 632) |
) |
(connector |
(pt 288 632) |
(pt 272 632) |
) |
(junction (pt 312 256)) |
(junction (pt 256 96)) |
(junction (pt 536 104)) |
(junction (pt 536 688)) |
(junction (pt 536 576)) |
(junction (pt 248 688)) |
(junction (pt 248 576)) |
(junction (pt 408 632)) |
(junction (pt 408 608)) |
(text "IX and IY state flags" (rect 416 32 551 48)(font "Arial" (font_size 10))) |
(text "HALT state flag" (rect 432 328 537 344)(font "Arial" (font_size 10))) |
(text "ALU feedback wire" (rect 392 960 519 976)(font "Arial" (font_size 10))) |
1206,11 → 1225,11
(title_block |
(rect 40 1024 297 1076) |
(name "title-custom-small") |
(section (rect 0 35 256 51)(text "DATE" (rect 2 0 30 12)(font "Arial" ))(text "August 9, 2014" (rect 56 3 143 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 0 0 256 17)(text "PROJECT" (rect 2 0 52 12)(font "Arial" ))(text "A-Z80" (rect 56 2 94 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 104 0 256 17)(text "MODULE" (rect 2 1 48 13)(font "Arial" ))(text "decode_state" (rect 43 2 135 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 0 18 256 34)(text "DESIGNER" (rect 2 0 59 12)(font "Arial" ))(text "Goran Devic" (rect 56 2 135 17)(font "Arial" (font_size 9)))(border)) |
(section (rect 104 0 256 17)(text "MODULE" (rect 2 1 48 13)(font "Arial" ))(text "decode_state" (rect 43 2 135 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 0 0 256 17)(text "PROJECT" (rect 2 0 52 12)(font "Arial" ))(text "A-Z80" (rect 56 2 94 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.3" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 0 35 256 51)(text "DATE" (rect 2 0 30 12)(font "Arial" ))(text "August 9, 2014, 2016" (rect 56 3 178 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.4" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(drawing |
) |
) |
/a-z80/trunk/cpu/control/decode_state.bsf
75,53 → 75,60
(port |
(pt 0 144) |
(input) |
(text "ctl_state_tbl_clr" (rect 0 0 89 14)(font "Arial" (font_size 8))) |
(text "ctl_state_tbl_clr" (rect 21 139 110 153)(font "Arial" (font_size 8))) |
(text "ctl_state_tbl_we" (rect 0 0 94 14)(font "Arial" (font_size 8))) |
(text "ctl_state_tbl_we" (rect 21 139 115 153)(font "Arial" (font_size 8))) |
(line (pt 0 144)(pt 16 144)) |
) |
(port |
(pt 0 160) |
(input) |
(text "ctl_state_tbl_ed_set" (rect 0 0 114 14)(font "Arial" (font_size 8))) |
(text "ctl_state_tbl_ed_set" (rect 21 155 135 169)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 0 0 77 14)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 21 155 98 169)(font "Arial" (font_size 8))) |
(line (pt 0 160)(pt 16 160)) |
) |
(port |
(pt 0 176) |
(input) |
(text "address_is_1" (rect 0 0 77 14)(font "Arial" (font_size 8))) |
(text "address_is_1" (rect 21 171 98 185)(font "Arial" (font_size 8))) |
(text "ctl_state_tbl_ed_set" (rect 0 0 114 14)(font "Arial" (font_size 8))) |
(text "ctl_state_tbl_ed_set" (rect 21 171 135 185)(font "Arial" (font_size 8))) |
(line (pt 0 176)(pt 16 176)) |
) |
(port |
(pt 0 192) |
(input) |
(text "clk" (rect 0 0 15 14)(font "Arial" (font_size 8))) |
(text "clk" (rect 21 187 36 201)(font "Arial" (font_size 8))) |
(text "address_is_1" (rect 0 0 77 14)(font "Arial" (font_size 8))) |
(text "address_is_1" (rect 21 187 98 201)(font "Arial" (font_size 8))) |
(line (pt 0 192)(pt 16 192)) |
) |
(port |
(pt 0 208) |
(input) |
(text "ctl_repeat_we" (rect 0 0 82 14)(font "Arial" (font_size 8))) |
(text "ctl_repeat_we" (rect 21 203 103 217)(font "Arial" (font_size 8))) |
(text "clk" (rect 0 0 15 14)(font "Arial" (font_size 8))) |
(text "clk" (rect 21 203 36 217)(font "Arial" (font_size 8))) |
(line (pt 0 208)(pt 16 208)) |
) |
(port |
(pt 0 224) |
(input) |
(text "nreset" (rect 0 0 36 14)(font "Arial" (font_size 8))) |
(text "nreset" (rect 21 219 57 233)(font "Arial" (font_size 8))) |
(text "ctl_repeat_we" (rect 0 0 82 14)(font "Arial" (font_size 8))) |
(text "ctl_repeat_we" (rect 21 219 103 233)(font "Arial" (font_size 8))) |
(line (pt 0 224)(pt 16 224)) |
) |
(port |
(pt 0 240) |
(input) |
(text "ctl_state_alu" (rect 0 0 71 14)(font "Arial" (font_size 8))) |
(text "ctl_state_alu" (rect 21 235 92 249)(font "Arial" (font_size 8))) |
(text "nreset" (rect 0 0 36 14)(font "Arial" (font_size 8))) |
(text "nreset" (rect 21 235 57 249)(font "Arial" (font_size 8))) |
(line (pt 0 240)(pt 16 240)) |
) |
(port |
(pt 0 256) |
(input) |
(text "ctl_state_alu" (rect 0 0 71 14)(font "Arial" (font_size 8))) |
(text "ctl_state_alu" (rect 21 251 92 265)(font "Arial" (font_size 8))) |
(line (pt 0 256)(pt 16 256)) |
) |
(port |
(pt 224 32) |
(output) |
(text "use_ix" (rect 0 0 37 14)(font "Arial" (font_size 8))) |
/a-z80/trunk/cpu/control/decode_state.v
14,7 → 14,7
|
// PROGRAM "Quartus II 64-Bit" |
// VERSION "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" |
// CREATED "Fri Oct 31 20:27:41 2014" |
// CREATED "Wed Dec 07 00:18:12 2016" |
|
module decode_state( |
ctl_state_iy_set, |
21,7 → 21,6
ctl_state_ixiy_clr, |
ctl_state_ixiy_we, |
ctl_state_halt_set, |
ctl_state_tbl_clr, |
ctl_state_tbl_ed_set, |
ctl_state_tbl_cb_set, |
ctl_state_alu, |
31,6 → 30,8
in_intr, |
in_nmi, |
nreset, |
ctl_state_tbl_we, |
hold_clk_wait, |
in_halt, |
table_cb, |
table_ed, |
46,7 → 47,6
input wire ctl_state_ixiy_clr; |
input wire ctl_state_ixiy_we; |
input wire ctl_state_halt_set; |
input wire ctl_state_tbl_clr; |
input wire ctl_state_tbl_ed_set; |
input wire ctl_state_tbl_cb_set; |
input wire ctl_state_alu; |
56,6 → 56,8
input wire in_intr; |
input wire in_nmi; |
input wire nreset; |
input wire ctl_state_tbl_we; |
input wire hold_clk_wait; |
output reg in_halt; |
output wire table_cb; |
output wire table_ed; |
71,8 → 73,9
reg DFFE_instED; |
reg DFFE_instCB; |
wire SYNTHESIZED_WIRE_0; |
wire SYNTHESIZED_WIRE_1; |
wire SYNTHESIZED_WIRE_5; |
wire SYNTHESIZED_WIRE_4; |
wire SYNTHESIZED_WIRE_3; |
|
assign in_alu = ctl_state_alu; |
assign table_cb = DFFE_instCB; |
83,8 → 86,6
|
assign repeat_en = ~DFFE_instNonRep; |
|
assign SYNTHESIZED_WIRE_4 = ctl_state_tbl_clr | ctl_state_tbl_ed_set | ctl_state_tbl_cb_set; |
|
assign use_ixiy = DFFE_instIY1 | DFFE_inst4; |
|
assign table_xx = ~(DFFE_instED | DFFE_instCB); |
105,9 → 106,13
|
assign SYNTHESIZED_WIRE_0 = ~(ctl_state_iy_set | ctl_state_ixiy_clr); |
|
assign SYNTHESIZED_WIRE_3 = in_nmi | in_intr; |
assign SYNTHESIZED_WIRE_5 = ctl_state_tbl_we & SYNTHESIZED_WIRE_1; |
|
assign SYNTHESIZED_WIRE_4 = in_nmi | in_intr; |
|
assign SYNTHESIZED_WIRE_1 = ~hold_clk_wait; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
115,7 → 120,7
DFFE_instCB <= 0; |
end |
else |
if (SYNTHESIZED_WIRE_4) |
if (SYNTHESIZED_WIRE_5) |
begin |
DFFE_instCB <= ctl_state_tbl_cb_set; |
end |
129,7 → 134,7
DFFE_instED <= 0; |
end |
else |
if (SYNTHESIZED_WIRE_4) |
if (SYNTHESIZED_WIRE_5) |
begin |
DFFE_instED <= ctl_state_tbl_ed_set; |
end |
144,7 → 149,7
end |
else |
begin |
in_halt <= ~in_halt & ctl_state_halt_set | in_halt & ~SYNTHESIZED_WIRE_3; |
in_halt <= ~in_halt & ctl_state_halt_set | in_halt & ~SYNTHESIZED_WIRE_4; |
end |
end |
|
/a-z80/trunk/cpu/control/exec_matrix.vh
3646,7 → 3646,7
ctl_flags_pf_we=1; |
ctl_flags_nf_we=1; /* Previous NF, to be used when loading FLAGT */ |
ctl_flags_cf_we=1; |
ctl_state_tbl_cb_set=1; setCBED=1; /* CB-table prefix */ end |
ctl_state_tbl_we=1; ctl_state_tbl_cb_set=1; /* CB-table prefix */ end |
if (M1 & T4) begin validPLA=1; nextM=1; ctl_mRead=1; end |
if (M2 & T1) begin fMRead=1; |
ctl_reg_sel_pc=1; ctl_reg_sys_hilo=2'b11; /* Select 16-bit PC */ |
3685,7 → 3685,7
|
if (pla[44]) begin |
if (M1 & T2) begin |
ctl_state_tbl_cb_set=1; setCBED=1; /* CB-table prefix */ end |
ctl_state_tbl_we=1; ctl_state_tbl_cb_set=1; /* CB-table prefix */ end |
if (M1 & T4) begin validPLA=1; setM1=1; |
ctl_no_ints=1; /* Disable interrupt generation for this opcode (DI/EI/CB/ED/DD/FD) */ end |
end |
3692,7 → 3692,7
|
if (pla[51]) begin |
if (M1 & T2) begin |
ctl_state_tbl_ed_set=1; setCBED=1; /* ED-table prefix */ end |
ctl_state_tbl_we=1; ctl_state_tbl_ed_set=1; /* ED-table prefix */ end |
if (M1 & T4) begin validPLA=1; setM1=1; |
ctl_no_ints=1; /* Disable interrupt generation for this opcode (DI/EI/CB/ED/DD/FD) */ end |
end |
3842,7 → 3842,7
ctl_alu_core_hf|=~ctl_alu_op_low; |
ctl_flags_xy_we=1; |
ctl_alu_sel_op2_neg=flags_sf; |
ctl_state_ixiy_we=1; ctl_state_ixiy_clr=~setIXIY; /* Clear IX/IY flag */ end |
ctl_state_ixiy_we=1; ctl_state_ixiy_clr=~setIXIY; /* Clear IX/IY flag if not explicitly set */ end |
end |
|
// Default instruction fetch (M1) state machine |
3855,8 → 3855,8
ctl_reg_sel_ir=1; ctl_reg_sys_hilo=2'b11; /* Select 16-bit IR */ |
ctl_al_we=1; /* Write a value from the register bus to the address latch */ |
ctl_bus_db_oe=1; /* Read DB pads to internal data bus */ |
ctl_state_ixiy_we=1; ctl_state_ixiy_clr=~setIXIY; /* Clear IX/IY flag */ |
ctl_state_tbl_clr=~setCBED; /* Clear CB/ED prefix */ |
ctl_state_ixiy_we=1; ctl_state_ixiy_clr=~setIXIY; /* Clear IX/IY flag if not explicitly set */ |
ctl_state_tbl_we=1; /* Clear CB/ED prefix if not explicitly set */ |
ctl_ir_we=1; |
ctl_bus_zero_oe=in_halt; ctl_bus_ff_oe=(in_intr & (im1 | im2)) | in_nmi; end |
if (M1 & T3) begin |
/a-z80/trunk/cpu/control/exec_matrix_compiled.vh
5522,8 → 5522,8
ctl_flags_pf_we = ctl_flags_pf_we | (pla[49])&(M1&T3); |
ctl_flags_nf_we = ctl_flags_nf_we | (pla[49])&(M1&T3); |
ctl_flags_cf_we = ctl_flags_cf_we | (pla[49])&(M1&T3); |
ctl_state_tbl_we = ctl_state_tbl_we | (pla[49])&(M1&T3); |
ctl_state_tbl_cb_set = ctl_state_tbl_cb_set | (pla[49])&(M1&T3); |
setCBED = setCBED | (pla[49])&(M1&T3); |
validPLA = validPLA | (pla[49])&(M1&T4); |
nextM = nextM | (pla[49])&(M1&T4); |
ctl_mRead = ctl_mRead | (pla[49])&(M1&T4); |
5575,13 → 5575,13
validPLA = validPLA | (pla[3])&(M1&T4); |
setM1 = setM1 | (pla[3])&(M1&T4); |
ctl_no_ints = ctl_no_ints | (pla[3])&(M1&T4); |
ctl_state_tbl_we = ctl_state_tbl_we | (pla[44])&(M1&T2); |
ctl_state_tbl_cb_set = ctl_state_tbl_cb_set | (pla[44])&(M1&T2); |
setCBED = setCBED | (pla[44])&(M1&T2); |
validPLA = validPLA | (pla[44])&(M1&T4); |
setM1 = setM1 | (pla[44])&(M1&T4); |
ctl_no_ints = ctl_no_ints | (pla[44])&(M1&T4); |
ctl_state_tbl_we = ctl_state_tbl_we | (pla[51])&(M1&T2); |
ctl_state_tbl_ed_set = ctl_state_tbl_ed_set | (pla[51])&(M1&T2); |
setCBED = setCBED | (pla[51])&(M1&T2); |
validPLA = validPLA | (pla[51])&(M1&T4); |
setM1 = setM1 | (pla[51])&(M1&T4); |
ctl_no_ints = ctl_no_ints | (pla[51])&(M1&T4); |
5792,7 → 5792,7
ctl_bus_db_oe = ctl_bus_db_oe | (M1&T2); |
ctl_state_ixiy_we = ctl_state_ixiy_we | (M1&T2); |
ctl_state_ixiy_clr = ctl_state_ixiy_clr | (M1&T2)&(~setIXIY); |
ctl_state_tbl_clr = ctl_state_tbl_clr | (M1&T2)&(~setCBED); |
ctl_state_tbl_we = ctl_state_tbl_we | (M1&T2); |
ctl_ir_we = ctl_ir_we | (M1&T2); |
ctl_bus_zero_oe = ctl_bus_zero_oe | (M1&T2)&(in_halt); |
ctl_bus_ff_oe = ctl_bus_ff_oe | (M1&T2)&((in_intr&(im1|im2))|in_nmi); |
/a-z80/trunk/cpu/control/exec_module.vh
5,11 → 5,11
output reg ctl_state_ixiy_clr, |
output reg ctl_state_ixiy_we, |
output reg ctl_state_halt_set, |
output reg ctl_state_tbl_clr, |
output reg ctl_state_tbl_ed_set, |
output reg ctl_state_tbl_cb_set, |
output reg ctl_state_alu, |
output reg ctl_repeat_we, |
output reg ctl_state_tbl_we, |
|
// Module: control/interrupts.v |
output reg ctl_iff1_iff2, |
/a-z80/trunk/cpu/control/exec_zero.vh
5,11 → 5,11
ctl_state_ixiy_clr = 0; |
ctl_state_ixiy_we = 0; |
ctl_state_halt_set = 0; |
ctl_state_tbl_clr = 0; |
ctl_state_tbl_ed_set = 0; |
ctl_state_tbl_cb_set = 0; |
ctl_state_alu = 0; |
ctl_repeat_we = 0; |
ctl_state_tbl_we = 0; |
|
// Module: control/interrupts.v |
ctl_iff1_iff2 = 0; |
/a-z80/trunk/cpu/control/execute.bsf
18,936 → 18,929
Altera or its authorized distributors. Please refer to the |
applicable agreement for further details. |
*/ |
(header "symbol" (version "1.2")) |
(header "symbol" (version "1.1")) |
(symbol |
(rect 64 64 320 1840) |
(text "execute" (rect 5 0 43 12)(font "Arial" )) |
(text "inst" (rect 8 1760 25 1772)(font "Arial" )) |
(rect 16 16 272 1792) |
(text "execute" (rect 5 0 35 12)(font "Arial" )) |
(text "inst" (rect 8 1760 20 1772)(font "Arial" )) |
(port |
(pt 0 32) |
(input) |
(text "pla[104..0]" (rect 0 0 51 12)(font "Arial" )) |
(text "pla[104..0]" (rect 21 27 72 39)(font "Arial" )) |
(text "pla[104..0]" (rect 0 0 40 12)(font "Arial" )) |
(text "pla[104..0]" (rect 21 27 61 39)(font "Arial" )) |
(line (pt 0 32)(pt 16 32)(line_width 3)) |
) |
(port |
(pt 0 48) |
(input) |
(text "nreset" (rect 0 0 30 12)(font "Arial" )) |
(text "nreset" (rect 21 43 51 55)(font "Arial" )) |
(line (pt 0 48)(pt 16 48)) |
(text "in_intr" (rect 0 0 23 12)(font "Arial" )) |
(text "in_intr" (rect 21 43 44 55)(font "Arial" )) |
(line (pt 0 48)(pt 16 48)(line_width 1)) |
) |
(port |
(pt 0 64) |
(input) |
(text "in_intr" (rect 0 0 29 12)(font "Arial" )) |
(text "in_intr" (rect 21 59 50 71)(font "Arial" )) |
(line (pt 0 64)(pt 16 64)) |
(text "in_nmi" (rect 0 0 25 12)(font "Arial" )) |
(text "in_nmi" (rect 21 59 46 71)(font "Arial" )) |
(line (pt 0 64)(pt 16 64)(line_width 1)) |
) |
(port |
(pt 0 80) |
(input) |
(text "in_nmi" (rect 0 0 31 12)(font "Arial" )) |
(text "in_nmi" (rect 21 75 52 87)(font "Arial" )) |
(line (pt 0 80)(pt 16 80)) |
(text "in_halt" (rect 0 0 24 12)(font "Arial" )) |
(text "in_halt" (rect 21 75 45 87)(font "Arial" )) |
(line (pt 0 80)(pt 16 80)(line_width 1)) |
) |
(port |
(pt 0 96) |
(input) |
(text "in_halt" (rect 0 0 31 12)(font "Arial" )) |
(text "in_halt" (rect 21 91 52 103)(font "Arial" )) |
(line (pt 0 96)(pt 16 96)) |
(text "im1" (rect 0 0 12 12)(font "Arial" )) |
(text "im1" (rect 21 91 33 103)(font "Arial" )) |
(line (pt 0 96)(pt 16 96)(line_width 1)) |
) |
(port |
(pt 0 112) |
(input) |
(text "im1" (rect 0 0 17 12)(font "Arial" )) |
(text "im1" (rect 21 107 38 119)(font "Arial" )) |
(line (pt 0 112)(pt 16 112)) |
(text "im2" (rect 0 0 14 12)(font "Arial" )) |
(text "im2" (rect 21 107 35 119)(font "Arial" )) |
(line (pt 0 112)(pt 16 112)(line_width 1)) |
) |
(port |
(pt 0 128) |
(input) |
(text "im2" (rect 0 0 17 12)(font "Arial" )) |
(text "im2" (rect 21 123 38 135)(font "Arial" )) |
(line (pt 0 128)(pt 16 128)) |
(text "use_ixiy" (rect 0 0 33 12)(font "Arial" )) |
(text "use_ixiy" (rect 21 123 54 135)(font "Arial" )) |
(line (pt 0 128)(pt 16 128)(line_width 1)) |
) |
(port |
(pt 0 144) |
(input) |
(text "use_ixiy" (rect 0 0 41 12)(font "Arial" )) |
(text "use_ixiy" (rect 21 139 62 151)(font "Arial" )) |
(line (pt 0 144)(pt 16 144)) |
(text "flags_cond_true" (rect 0 0 64 12)(font "Arial" )) |
(text "flags_cond_true" (rect 21 139 85 151)(font "Arial" )) |
(line (pt 0 144)(pt 16 144)(line_width 1)) |
) |
(port |
(pt 0 160) |
(input) |
(text "flags_cond_true" (rect 0 0 79 12)(font "Arial" )) |
(text "flags_cond_true" (rect 21 155 100 167)(font "Arial" )) |
(line (pt 0 160)(pt 16 160)) |
(text "repeat_en" (rect 0 0 40 12)(font "Arial" )) |
(text "repeat_en" (rect 21 155 61 167)(font "Arial" )) |
(line (pt 0 160)(pt 16 160)(line_width 1)) |
) |
(port |
(pt 0 176) |
(input) |
(text "repeat_en" (rect 0 0 48 12)(font "Arial" )) |
(text "repeat_en" (rect 21 171 69 183)(font "Arial" )) |
(line (pt 0 176)(pt 16 176)) |
(text "flags_zf" (rect 0 0 31 12)(font "Arial" )) |
(text "flags_zf" (rect 21 171 52 183)(font "Arial" )) |
(line (pt 0 176)(pt 16 176)(line_width 1)) |
) |
(port |
(pt 0 192) |
(input) |
(text "flags_zf" (rect 0 0 40 12)(font "Arial" )) |
(text "flags_zf" (rect 21 187 61 199)(font "Arial" )) |
(line (pt 0 192)(pt 16 192)) |
(text "flags_nf" (rect 0 0 33 12)(font "Arial" )) |
(text "flags_nf" (rect 21 187 54 199)(font "Arial" )) |
(line (pt 0 192)(pt 16 192)(line_width 1)) |
) |
(port |
(pt 0 208) |
(input) |
(text "flags_nf" (rect 0 0 41 12)(font "Arial" )) |
(text "flags_nf" (rect 21 203 62 215)(font "Arial" )) |
(line (pt 0 208)(pt 16 208)) |
(text "flags_sf" (rect 0 0 33 12)(font "Arial" )) |
(text "flags_sf" (rect 21 203 54 215)(font "Arial" )) |
(line (pt 0 208)(pt 16 208)(line_width 1)) |
) |
(port |
(pt 0 224) |
(input) |
(text "flags_sf" (rect 0 0 41 12)(font "Arial" )) |
(text "flags_sf" (rect 21 219 62 231)(font "Arial" )) |
(line (pt 0 224)(pt 16 224)) |
(text "flags_cf" (rect 0 0 33 12)(font "Arial" )) |
(text "flags_cf" (rect 21 219 54 231)(font "Arial" )) |
(line (pt 0 224)(pt 16 224)(line_width 1)) |
) |
(port |
(pt 0 240) |
(input) |
(text "flags_cf" (rect 0 0 41 12)(font "Arial" )) |
(text "flags_cf" (rect 21 235 62 247)(font "Arial" )) |
(line (pt 0 240)(pt 16 240)) |
(text "M1" (rect 0 0 11 12)(font "Arial" )) |
(text "M1" (rect 21 235 32 247)(font "Arial" )) |
(line (pt 0 240)(pt 16 240)(line_width 1)) |
) |
(port |
(pt 0 256) |
(input) |
(text "M1" (rect 0 0 14 12)(font "Arial" )) |
(text "M1" (rect 21 251 35 263)(font "Arial" )) |
(line (pt 0 256)(pt 16 256)) |
(text "M2" (rect 0 0 12 12)(font "Arial" )) |
(text "M2" (rect 21 251 33 263)(font "Arial" )) |
(line (pt 0 256)(pt 16 256)(line_width 1)) |
) |
(port |
(pt 0 272) |
(input) |
(text "M2" (rect 0 0 14 12)(font "Arial" )) |
(text "M2" (rect 21 267 35 279)(font "Arial" )) |
(line (pt 0 272)(pt 16 272)) |
(text "M3" (rect 0 0 12 12)(font "Arial" )) |
(text "M3" (rect 21 267 33 279)(font "Arial" )) |
(line (pt 0 272)(pt 16 272)(line_width 1)) |
) |
(port |
(pt 0 288) |
(input) |
(text "M3" (rect 0 0 14 12)(font "Arial" )) |
(text "M3" (rect 21 283 35 295)(font "Arial" )) |
(line (pt 0 288)(pt 16 288)) |
(text "M4" (rect 0 0 14 12)(font "Arial" )) |
(text "M4" (rect 21 283 35 295)(font "Arial" )) |
(line (pt 0 288)(pt 16 288)(line_width 1)) |
) |
(port |
(pt 0 304) |
(input) |
(text "M4" (rect 0 0 14 12)(font "Arial" )) |
(text "M4" (rect 21 299 35 311)(font "Arial" )) |
(line (pt 0 304)(pt 16 304)) |
(text "M5" (rect 0 0 12 12)(font "Arial" )) |
(text "M5" (rect 21 299 33 311)(font "Arial" )) |
(line (pt 0 304)(pt 16 304)(line_width 1)) |
) |
(port |
(pt 0 320) |
(input) |
(text "M5" (rect 0 0 14 12)(font "Arial" )) |
(text "M5" (rect 21 315 35 327)(font "Arial" )) |
(line (pt 0 320)(pt 16 320)) |
(text "T1" (rect 0 0 9 12)(font "Arial" )) |
(text "T1" (rect 21 315 30 327)(font "Arial" )) |
(line (pt 0 320)(pt 16 320)(line_width 1)) |
) |
(port |
(pt 0 336) |
(input) |
(text "T2" (rect 0 0 10 12)(font "Arial" )) |
(text "T2" (rect 21 331 31 343)(font "Arial" )) |
(line (pt 0 336)(pt 16 336)(line_width 1)) |
) |
(port |
(pt 0 352) |
(input) |
(text "T1" (rect 0 0 11 12)(font "Arial" )) |
(text "T1" (rect 21 347 32 359)(font "Arial" )) |
(line (pt 0 352)(pt 16 352)) |
(text "T3" (rect 0 0 10 12)(font "Arial" )) |
(text "T3" (rect 21 347 31 359)(font "Arial" )) |
(line (pt 0 352)(pt 16 352)(line_width 1)) |
) |
(port |
(pt 0 368) |
(input) |
(text "T2" (rect 0 0 11 12)(font "Arial" )) |
(text "T2" (rect 21 363 32 375)(font "Arial" )) |
(line (pt 0 368)(pt 16 368)) |
(text "T4" (rect 0 0 11 12)(font "Arial" )) |
(text "T4" (rect 21 363 32 375)(font "Arial" )) |
(line (pt 0 368)(pt 16 368)(line_width 1)) |
) |
(port |
(pt 0 384) |
(input) |
(text "T3" (rect 0 0 11 12)(font "Arial" )) |
(text "T3" (rect 21 379 32 391)(font "Arial" )) |
(line (pt 0 384)(pt 16 384)) |
(text "T5" (rect 0 0 10 12)(font "Arial" )) |
(text "T5" (rect 21 379 31 391)(font "Arial" )) |
(line (pt 0 384)(pt 16 384)(line_width 1)) |
) |
(port |
(pt 0 400) |
(input) |
(text "T4" (rect 0 0 11 12)(font "Arial" )) |
(text "T4" (rect 21 395 32 407)(font "Arial" )) |
(line (pt 0 400)(pt 16 400)) |
(text "T6" (rect 0 0 10 12)(font "Arial" )) |
(text "T6" (rect 21 395 31 407)(font "Arial" )) |
(line (pt 0 400)(pt 16 400)(line_width 1)) |
) |
(port |
(pt 0 416) |
(input) |
(text "T5" (rect 0 0 11 12)(font "Arial" )) |
(text "T5" (rect 21 411 32 423)(font "Arial" )) |
(line (pt 0 416)(pt 16 416)) |
) |
(port |
(pt 0 432) |
(input) |
(text "T6" (rect 0 0 11 12)(font "Arial" )) |
(text "T6" (rect 21 427 32 439)(font "Arial" )) |
(line (pt 0 432)(pt 16 432)) |
) |
(port |
(pt 256 32) |
(output) |
(text "ctl_state_iy_set" (rect 0 0 79 12)(font "Arial" )) |
(text "ctl_state_iy_set" (rect 169 27 235 39)(font "Arial" )) |
(line (pt 256 32)(pt 240 32)) |
(text "ctl_state_iy_set" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_state_iy_set" (rect 172 27 235 39)(font "Arial" )) |
(line (pt 256 32)(pt 240 32)(line_width 1)) |
) |
(port |
(pt 256 48) |
(output) |
(text "ctl_state_ixiy_clr" (rect 0 0 83 12)(font "Arial" )) |
(text "ctl_state_ixiy_clr" (rect 165 43 235 55)(font "Arial" )) |
(line (pt 256 48)(pt 240 48)) |
(text "ctl_state_ixiy_clr" (rect 0 0 67 12)(font "Arial" )) |
(text "ctl_state_ixiy_clr" (rect 168 43 235 55)(font "Arial" )) |
(line (pt 256 48)(pt 240 48)(line_width 1)) |
) |
(port |
(pt 256 64) |
(output) |
(text "ctl_state_ixiy_we" (rect 0 0 84 12)(font "Arial" )) |
(text "ctl_state_ixiy_we" (rect 164 59 235 71)(font "Arial" )) |
(line (pt 256 64)(pt 240 64)) |
(text "ctl_state_ixiy_we" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_state_ixiy_we" (rect 167 59 235 71)(font "Arial" )) |
(line (pt 256 64)(pt 240 64)(line_width 1)) |
) |
(port |
(pt 256 80) |
(output) |
(text "ctl_state_halt_set" (rect 0 0 87 12)(font "Arial" )) |
(text "ctl_state_halt_set" (rect 162 75 235 87)(font "Arial" )) |
(line (pt 256 80)(pt 240 80)) |
(text "ctl_state_halt_set" (rect 0 0 69 12)(font "Arial" )) |
(text "ctl_state_halt_set" (rect 166 75 235 87)(font "Arial" )) |
(line (pt 256 80)(pt 240 80)(line_width 1)) |
) |
(port |
(pt 256 96) |
(output) |
(text "ctl_state_tbl_clr" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_state_tbl_clr" (rect 170 91 235 103)(font "Arial" )) |
(line (pt 256 96)(pt 240 96)) |
(text "ctl_state_tbl_ed_set" (rect 0 0 80 12)(font "Arial" )) |
(text "ctl_state_tbl_ed_set" (rect 155 91 235 103)(font "Arial" )) |
(line (pt 256 96)(pt 240 96)(line_width 1)) |
) |
(port |
(pt 256 112) |
(output) |
(text "ctl_state_tbl_ed_set" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_state_tbl_ed_set" (rect 152 107 235 119)(font "Arial" )) |
(line (pt 256 112)(pt 240 112)) |
(text "ctl_state_tbl_cb_set" (rect 0 0 80 12)(font "Arial" )) |
(text "ctl_state_tbl_cb_set" (rect 155 107 235 119)(font "Arial" )) |
(line (pt 256 112)(pt 240 112)(line_width 1)) |
) |
(port |
(pt 256 128) |
(output) |
(text "ctl_state_tbl_cb_set" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_state_tbl_cb_set" (rect 152 123 235 135)(font "Arial" )) |
(line (pt 256 128)(pt 240 128)) |
(text "ctl_state_alu" (rect 0 0 49 12)(font "Arial" )) |
(text "ctl_state_alu" (rect 186 123 235 135)(font "Arial" )) |
(line (pt 256 128)(pt 240 128)(line_width 1)) |
) |
(port |
(pt 256 144) |
(output) |
(text "ctl_state_alu" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_state_alu" (rect 183 139 235 151)(font "Arial" )) |
(line (pt 256 144)(pt 240 144)) |
(text "ctl_repeat_we" (rect 0 0 55 12)(font "Arial" )) |
(text "ctl_repeat_we" (rect 180 139 235 151)(font "Arial" )) |
(line (pt 256 144)(pt 240 144)(line_width 1)) |
) |
(port |
(pt 256 160) |
(output) |
(text "ctl_repeat_we" (rect 0 0 67 12)(font "Arial" )) |
(text "ctl_repeat_we" (rect 179 155 235 167)(font "Arial" )) |
(line (pt 256 160)(pt 240 160)) |
(text "ctl_state_tbl_we" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_state_tbl_we" (rect 172 155 235 167)(font "Arial" )) |
(line (pt 256 160)(pt 240 160)(line_width 1)) |
) |
(port |
(pt 256 176) |
(output) |
(text "ctl_iff1_iff2" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_iff1_iff2" (rect 186 171 235 183)(font "Arial" )) |
(line (pt 256 176)(pt 240 176)) |
(text "ctl_iff1_iff2" (rect 0 0 44 12)(font "Arial" )) |
(text "ctl_iff1_iff2" (rect 191 171 235 183)(font "Arial" )) |
(line (pt 256 176)(pt 240 176)(line_width 1)) |
) |
(port |
(pt 256 192) |
(output) |
(text "ctl_iffx_we" (rect 0 0 54 12)(font "Arial" )) |
(text "ctl_iffx_we" (rect 190 187 235 199)(font "Arial" )) |
(line (pt 256 192)(pt 240 192)) |
(text "ctl_iffx_we" (rect 0 0 43 12)(font "Arial" )) |
(text "ctl_iffx_we" (rect 192 187 235 199)(font "Arial" )) |
(line (pt 256 192)(pt 240 192)(line_width 1)) |
) |
(port |
(pt 256 208) |
(output) |
(text "ctl_iffx_bit" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_iffx_bit" (rect 191 203 235 215)(font "Arial" )) |
(line (pt 256 208)(pt 240 208)) |
(text "ctl_iffx_bit" (rect 0 0 41 12)(font "Arial" )) |
(text "ctl_iffx_bit" (rect 194 203 235 215)(font "Arial" )) |
(line (pt 256 208)(pt 240 208)(line_width 1)) |
) |
(port |
(pt 256 224) |
(output) |
(text "ctl_im_we" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_im_we" (rect 0 0 40 12)(font "Arial" )) |
(text "ctl_im_we" (rect 195 219 235 231)(font "Arial" )) |
(line (pt 256 224)(pt 240 224)) |
(line (pt 256 224)(pt 240 224)(line_width 1)) |
) |
(port |
(pt 256 240) |
(output) |
(text "ctl_no_ints" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_no_ints" (rect 191 235 235 247)(font "Arial" )) |
(line (pt 256 240)(pt 240 240)) |
(text "ctl_no_ints" (rect 0 0 42 12)(font "Arial" )) |
(text "ctl_no_ints" (rect 193 235 235 247)(font "Arial" )) |
(line (pt 256 240)(pt 240 240)(line_width 1)) |
) |
(port |
(pt 256 256) |
(output) |
(text "ctl_ir_we" (rect 0 0 42 12)(font "Arial" )) |
(text "ctl_ir_we" (rect 0 0 35 12)(font "Arial" )) |
(text "ctl_ir_we" (rect 200 251 235 263)(font "Arial" )) |
(line (pt 256 256)(pt 240 256)) |
(line (pt 256 256)(pt 240 256)(line_width 1)) |
) |
(port |
(pt 256 272) |
(output) |
(text "ctl_mRead" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_mRead" (rect 0 0 44 12)(font "Arial" )) |
(text "ctl_mRead" (rect 191 267 235 279)(font "Arial" )) |
(line (pt 256 272)(pt 240 272)) |
(line (pt 256 272)(pt 240 272)(line_width 1)) |
) |
(port |
(pt 256 288) |
(output) |
(text "ctl_mWrite" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_mWrite" (rect 0 0 44 12)(font "Arial" )) |
(text "ctl_mWrite" (rect 191 283 235 295)(font "Arial" )) |
(line (pt 256 288)(pt 240 288)) |
(line (pt 256 288)(pt 240 288)(line_width 1)) |
) |
(port |
(pt 256 304) |
(output) |
(text "ctl_iorw" (rect 0 0 36 12)(font "Arial" )) |
(text "ctl_iorw" (rect 205 299 235 311)(font "Arial" )) |
(line (pt 256 304)(pt 240 304)) |
(text "ctl_iorw" (rect 0 0 29 12)(font "Arial" )) |
(text "ctl_iorw" (rect 206 299 235 311)(font "Arial" )) |
(line (pt 256 304)(pt 240 304)(line_width 1)) |
) |
(port |
(pt 256 320) |
(output) |
(text "ctl_shift_en" (rect 0 0 57 12)(font "Arial" )) |
(text "ctl_shift_en" (rect 187 315 235 327)(font "Arial" )) |
(line (pt 256 320)(pt 240 320)) |
(text "ctl_shift_en" (rect 0 0 46 12)(font "Arial" )) |
(text "ctl_shift_en" (rect 189 315 235 327)(font "Arial" )) |
(line (pt 256 320)(pt 240 320)(line_width 1)) |
) |
(port |
(pt 256 336) |
(output) |
(text "ctl_daa_oe" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_daa_oe" (rect 191 331 235 343)(font "Arial" )) |
(line (pt 256 336)(pt 240 336)) |
(text "ctl_daa_oe" (rect 0 0 43 12)(font "Arial" )) |
(text "ctl_daa_oe" (rect 192 331 235 343)(font "Arial" )) |
(line (pt 256 336)(pt 240 336)(line_width 1)) |
) |
(port |
(pt 256 352) |
(output) |
(text "ctl_alu_op_low" (rect 0 0 70 12)(font "Arial" )) |
(text "ctl_alu_op_low" (rect 176 347 235 359)(font "Arial" )) |
(line (pt 256 352)(pt 240 352)) |
(text "ctl_alu_op_low" (rect 0 0 57 12)(font "Arial" )) |
(text "ctl_alu_op_low" (rect 178 347 235 359)(font "Arial" )) |
(line (pt 256 352)(pt 240 352)(line_width 1)) |
) |
(port |
(pt 256 368) |
(output) |
(text "ctl_cond_short" (rect 0 0 71 12)(font "Arial" )) |
(text "ctl_cond_short" (rect 175 363 235 375)(font "Arial" )) |
(line (pt 256 368)(pt 240 368)) |
(text "ctl_cond_short" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_cond_short" (rect 176 363 235 375)(font "Arial" )) |
(line (pt 256 368)(pt 240 368)(line_width 1)) |
) |
(port |
(pt 256 384) |
(output) |
(text "ctl_alu_core_hf" (rect 0 0 75 12)(font "Arial" )) |
(text "ctl_alu_core_hf" (rect 172 379 235 391)(font "Arial" )) |
(line (pt 256 384)(pt 240 384)) |
(text "ctl_alu_core_hf" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_alu_core_hf" (rect 173 379 235 391)(font "Arial" )) |
(line (pt 256 384)(pt 240 384)(line_width 1)) |
) |
(port |
(pt 256 400) |
(output) |
(text "ctl_eval_cond" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_eval_cond" (rect 178 395 235 407)(font "Arial" )) |
(line (pt 256 400)(pt 240 400)) |
(text "ctl_eval_cond" (rect 0 0 55 12)(font "Arial" )) |
(text "ctl_eval_cond" (rect 180 395 235 407)(font "Arial" )) |
(line (pt 256 400)(pt 240 400)(line_width 1)) |
) |
(port |
(pt 256 416) |
(output) |
(text "ctl_66_oe" (rect 0 0 47 12)(font "Arial" )) |
(text "ctl_66_oe" (rect 196 411 235 423)(font "Arial" )) |
(line (pt 256 416)(pt 240 416)) |
(text "ctl_66_oe" (rect 0 0 38 12)(font "Arial" )) |
(text "ctl_66_oe" (rect 197 411 235 423)(font "Arial" )) |
(line (pt 256 416)(pt 240 416)(line_width 1)) |
) |
(port |
(pt 256 432) |
(output) |
(text "ctl_pf_sel[1..0]" (rect 0 0 74 12)(font "Arial" )) |
(text "ctl_pf_sel[1..0]" (rect 173 427 235 439)(font "Arial" )) |
(text "ctl_pf_sel[1..0]" (rect 0 0 57 12)(font "Arial" )) |
(text "ctl_pf_sel[1..0]" (rect 178 427 235 439)(font "Arial" )) |
(line (pt 256 432)(pt 240 432)(line_width 3)) |
) |
(port |
(pt 256 448) |
(output) |
(text "ctl_alu_oe" (rect 0 0 49 12)(font "Arial" )) |
(text "ctl_alu_oe" (rect 194 443 235 455)(font "Arial" )) |
(line (pt 256 448)(pt 240 448)) |
(text "ctl_alu_oe" (rect 0 0 40 12)(font "Arial" )) |
(text "ctl_alu_oe" (rect 195 443 235 455)(font "Arial" )) |
(line (pt 256 448)(pt 240 448)(line_width 1)) |
) |
(port |
(pt 256 464) |
(output) |
(text "ctl_alu_shift_oe" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_alu_shift_oe" (rect 170 459 235 471)(font "Arial" )) |
(line (pt 256 464)(pt 240 464)) |
(text "ctl_alu_shift_oe" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_alu_shift_oe" (rect 173 459 235 471)(font "Arial" )) |
(line (pt 256 464)(pt 240 464)(line_width 1)) |
) |
(port |
(pt 256 480) |
(output) |
(text "ctl_alu_op2_oe" (rect 0 0 73 12)(font "Arial" )) |
(text "ctl_alu_op2_oe" (rect 174 475 235 487)(font "Arial" )) |
(line (pt 256 480)(pt 240 480)) |
(text "ctl_alu_op2_oe" (rect 0 0 60 12)(font "Arial" )) |
(text "ctl_alu_op2_oe" (rect 175 475 235 487)(font "Arial" )) |
(line (pt 256 480)(pt 240 480)(line_width 1)) |
) |
(port |
(pt 256 496) |
(output) |
(text "ctl_alu_res_oe" (rect 0 0 70 12)(font "Arial" )) |
(text "ctl_alu_res_oe" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_alu_res_oe" (rect 176 491 235 503)(font "Arial" )) |
(line (pt 256 496)(pt 240 496)) |
(line (pt 256 496)(pt 240 496)(line_width 1)) |
) |
(port |
(pt 256 512) |
(output) |
(text "ctl_alu_op1_oe" (rect 0 0 73 12)(font "Arial" )) |
(text "ctl_alu_op1_oe" (rect 174 507 235 519)(font "Arial" )) |
(line (pt 256 512)(pt 240 512)) |
(text "ctl_alu_op1_oe" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_alu_op1_oe" (rect 176 507 235 519)(font "Arial" )) |
(line (pt 256 512)(pt 240 512)(line_width 1)) |
) |
(port |
(pt 256 528) |
(output) |
(text "ctl_alu_bs_oe" (rect 0 0 67 12)(font "Arial" )) |
(text "ctl_alu_bs_oe" (rect 179 523 235 535)(font "Arial" )) |
(line (pt 256 528)(pt 240 528)) |
(text "ctl_alu_bs_oe" (rect 0 0 55 12)(font "Arial" )) |
(text "ctl_alu_bs_oe" (rect 180 523 235 535)(font "Arial" )) |
(line (pt 256 528)(pt 240 528)(line_width 1)) |
) |
(port |
(pt 256 544) |
(output) |
(text "ctl_alu_op1_sel_bus" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_alu_op1_sel_bus" (rect 152 539 235 551)(font "Arial" )) |
(line (pt 256 544)(pt 240 544)) |
(text "ctl_alu_op1_sel_bus" (rect 0 0 80 12)(font "Arial" )) |
(text "ctl_alu_op1_sel_bus" (rect 155 539 235 551)(font "Arial" )) |
(line (pt 256 544)(pt 240 544)(line_width 1)) |
) |
(port |
(pt 256 560) |
(output) |
(text "ctl_alu_op1_sel_low" (rect 0 0 96 12)(font "Arial" )) |
(text "ctl_alu_op1_sel_low" (rect 154 555 235 567)(font "Arial" )) |
(line (pt 256 560)(pt 240 560)) |
(text "ctl_alu_op1_sel_low" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_alu_op1_sel_low" (rect 158 555 235 567)(font "Arial" )) |
(line (pt 256 560)(pt 240 560)(line_width 1)) |
) |
(port |
(pt 256 576) |
(output) |
(text "ctl_alu_op1_sel_zero" (rect 0 0 101 12)(font "Arial" )) |
(text "ctl_alu_op1_sel_zero" (rect 150 571 235 583)(font "Arial" )) |
(line (pt 256 576)(pt 240 576)) |
(text "ctl_alu_op1_sel_zero" (rect 0 0 82 12)(font "Arial" )) |
(text "ctl_alu_op1_sel_zero" (rect 153 571 235 583)(font "Arial" )) |
(line (pt 256 576)(pt 240 576)(line_width 1)) |
) |
(port |
(pt 256 592) |
(output) |
(text "ctl_alu_op2_sel_zero" (rect 0 0 101 12)(font "Arial" )) |
(text "ctl_alu_op2_sel_zero" (rect 150 587 235 599)(font "Arial" )) |
(line (pt 256 592)(pt 240 592)) |
(text "ctl_alu_op2_sel_zero" (rect 0 0 83 12)(font "Arial" )) |
(text "ctl_alu_op2_sel_zero" (rect 152 587 235 599)(font "Arial" )) |
(line (pt 256 592)(pt 240 592)(line_width 1)) |
) |
(port |
(pt 256 608) |
(output) |
(text "ctl_alu_op2_sel_bus" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_alu_op2_sel_bus" (rect 152 603 235 615)(font "Arial" )) |
(line (pt 256 608)(pt 240 608)) |
(text "ctl_alu_op2_sel_bus" (rect 0 0 81 12)(font "Arial" )) |
(text "ctl_alu_op2_sel_bus" (rect 154 603 235 615)(font "Arial" )) |
(line (pt 256 608)(pt 240 608)(line_width 1)) |
) |
(port |
(pt 256 624) |
(output) |
(text "ctl_alu_op2_sel_lq" (rect 0 0 89 12)(font "Arial" )) |
(text "ctl_alu_op2_sel_lq" (rect 160 619 235 631)(font "Arial" )) |
(line (pt 256 624)(pt 240 624)) |
(text "ctl_alu_op2_sel_lq" (rect 0 0 73 12)(font "Arial" )) |
(text "ctl_alu_op2_sel_lq" (rect 162 619 235 631)(font "Arial" )) |
(line (pt 256 624)(pt 240 624)(line_width 1)) |
) |
(port |
(pt 256 640) |
(output) |
(text "ctl_alu_sel_op2_neg" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_alu_sel_op2_neg" (rect 152 635 235 647)(font "Arial" )) |
(line (pt 256 640)(pt 240 640)) |
(text "ctl_alu_sel_op2_neg" (rect 0 0 81 12)(font "Arial" )) |
(text "ctl_alu_sel_op2_neg" (rect 154 635 235 647)(font "Arial" )) |
(line (pt 256 640)(pt 240 640)(line_width 1)) |
) |
(port |
(pt 256 656) |
(output) |
(text "ctl_alu_sel_op2_high" (rect 0 0 101 12)(font "Arial" )) |
(text "ctl_alu_sel_op2_high" (rect 150 651 235 663)(font "Arial" )) |
(line (pt 256 656)(pt 240 656)) |
(text "ctl_alu_sel_op2_high" (rect 0 0 82 12)(font "Arial" )) |
(text "ctl_alu_sel_op2_high" (rect 153 651 235 663)(font "Arial" )) |
(line (pt 256 656)(pt 240 656)(line_width 1)) |
) |
(port |
(pt 256 672) |
(output) |
(text "ctl_alu_core_R" (rect 0 0 73 12)(font "Arial" )) |
(text "ctl_alu_core_R" (rect 174 667 235 679)(font "Arial" )) |
(line (pt 256 672)(pt 240 672)) |
(text "ctl_alu_core_R" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_alu_core_R" (rect 173 667 235 679)(font "Arial" )) |
(line (pt 256 672)(pt 240 672)(line_width 1)) |
) |
(port |
(pt 256 688) |
(output) |
(text "ctl_alu_core_V" (rect 0 0 73 12)(font "Arial" )) |
(text "ctl_alu_core_V" (rect 174 683 235 695)(font "Arial" )) |
(line (pt 256 688)(pt 240 688)) |
(text "ctl_alu_core_V" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_alu_core_V" (rect 173 683 235 695)(font "Arial" )) |
(line (pt 256 688)(pt 240 688)(line_width 1)) |
) |
(port |
(pt 256 704) |
(output) |
(text "ctl_alu_core_S" (rect 0 0 71 12)(font "Arial" )) |
(text "ctl_alu_core_S" (rect 0 0 60 12)(font "Arial" )) |
(text "ctl_alu_core_S" (rect 175 699 235 711)(font "Arial" )) |
(line (pt 256 704)(pt 240 704)) |
(line (pt 256 704)(pt 240 704)(line_width 1)) |
) |
(port |
(pt 256 720) |
(output) |
(text "ctl_flags_oe" (rect 0 0 60 12)(font "Arial" )) |
(text "ctl_flags_oe" (rect 185 715 235 727)(font "Arial" )) |
(line (pt 256 720)(pt 240 720)) |
(text "ctl_flags_oe" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_flags_oe" (rect 187 715 235 727)(font "Arial" )) |
(line (pt 256 720)(pt 240 720)(line_width 1)) |
) |
(port |
(pt 256 736) |
(output) |
(text "ctl_flags_bus" (rect 0 0 66 12)(font "Arial" )) |
(text "ctl_flags_bus" (rect 180 731 235 743)(font "Arial" )) |
(line (pt 256 736)(pt 240 736)) |
(text "ctl_flags_bus" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_flags_bus" (rect 182 731 235 743)(font "Arial" )) |
(line (pt 256 736)(pt 240 736)(line_width 1)) |
) |
(port |
(pt 256 752) |
(output) |
(text "ctl_flags_alu" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_flags_alu" (rect 183 747 235 759)(font "Arial" )) |
(line (pt 256 752)(pt 240 752)) |
(text "ctl_flags_alu" (rect 0 0 49 12)(font "Arial" )) |
(text "ctl_flags_alu" (rect 186 747 235 759)(font "Arial" )) |
(line (pt 256 752)(pt 240 752)(line_width 1)) |
) |
(port |
(pt 256 768) |
(output) |
(text "ctl_flags_nf_set" (rect 0 0 80 12)(font "Arial" )) |
(text "ctl_flags_nf_set" (rect 168 763 235 775)(font "Arial" )) |
(line (pt 256 768)(pt 240 768)) |
(text "ctl_flags_nf_set" (rect 0 0 64 12)(font "Arial" )) |
(text "ctl_flags_nf_set" (rect 171 763 235 775)(font "Arial" )) |
(line (pt 256 768)(pt 240 768)(line_width 1)) |
) |
(port |
(pt 256 784) |
(output) |
(text "ctl_flags_cf_set" (rect 0 0 80 12)(font "Arial" )) |
(text "ctl_flags_cf_set" (rect 168 779 235 791)(font "Arial" )) |
(line (pt 256 784)(pt 240 784)) |
(text "ctl_flags_cf_set" (rect 0 0 64 12)(font "Arial" )) |
(text "ctl_flags_cf_set" (rect 171 779 235 791)(font "Arial" )) |
(line (pt 256 784)(pt 240 784)(line_width 1)) |
) |
(port |
(pt 256 800) |
(output) |
(text "ctl_flags_cf_cpl" (rect 0 0 79 12)(font "Arial" )) |
(text "ctl_flags_cf_cpl" (rect 169 795 235 807)(font "Arial" )) |
(line (pt 256 800)(pt 240 800)) |
(text "ctl_flags_cf_cpl" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_cf_cpl" (rect 172 795 235 807)(font "Arial" )) |
(line (pt 256 800)(pt 240 800)(line_width 1)) |
) |
(port |
(pt 256 816) |
(output) |
(text "ctl_flags_cf_we" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_flags_cf_we" (rect 170 811 235 823)(font "Arial" )) |
(line (pt 256 816)(pt 240 816)) |
(text "ctl_flags_cf_we" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_cf_we" (rect 172 811 235 823)(font "Arial" )) |
(line (pt 256 816)(pt 240 816)(line_width 1)) |
) |
(port |
(pt 256 832) |
(output) |
(text "ctl_flags_sz_we" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_flags_sz_we" (rect 170 827 235 839)(font "Arial" )) |
(line (pt 256 832)(pt 240 832)) |
(text "ctl_flags_sz_we" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_sz_we" (rect 172 827 235 839)(font "Arial" )) |
(line (pt 256 832)(pt 240 832)(line_width 1)) |
) |
(port |
(pt 256 848) |
(output) |
(text "ctl_flags_xy_we" (rect 0 0 80 12)(font "Arial" )) |
(text "ctl_flags_xy_we" (rect 168 843 235 855)(font "Arial" )) |
(line (pt 256 848)(pt 240 848)) |
(text "ctl_flags_xy_we" (rect 0 0 66 12)(font "Arial" )) |
(text "ctl_flags_xy_we" (rect 169 843 235 855)(font "Arial" )) |
(line (pt 256 848)(pt 240 848)(line_width 1)) |
) |
(port |
(pt 256 864) |
(output) |
(text "ctl_flags_hf_we" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_flags_hf_we" (rect 170 859 235 871)(font "Arial" )) |
(line (pt 256 864)(pt 240 864)) |
(text "ctl_flags_hf_we" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_hf_we" (rect 172 859 235 871)(font "Arial" )) |
(line (pt 256 864)(pt 240 864)(line_width 1)) |
) |
(port |
(pt 256 880) |
(output) |
(text "ctl_flags_pf_we" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_flags_pf_we" (rect 170 875 235 887)(font "Arial" )) |
(line (pt 256 880)(pt 240 880)) |
(text "ctl_flags_pf_we" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_pf_we" (rect 172 875 235 887)(font "Arial" )) |
(line (pt 256 880)(pt 240 880)(line_width 1)) |
) |
(port |
(pt 256 896) |
(output) |
(text "ctl_flags_nf_we" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_flags_nf_we" (rect 170 891 235 903)(font "Arial" )) |
(line (pt 256 896)(pt 240 896)) |
(text "ctl_flags_nf_we" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_nf_we" (rect 172 891 235 903)(font "Arial" )) |
(line (pt 256 896)(pt 240 896)(line_width 1)) |
) |
(port |
(pt 256 912) |
(output) |
(text "ctl_flags_cf2_we" (rect 0 0 83 12)(font "Arial" )) |
(text "ctl_flags_cf2_we" (rect 165 907 235 919)(font "Arial" )) |
(line (pt 256 912)(pt 240 912)) |
(text "ctl_flags_cf2_we" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_flags_cf2_we" (rect 167 907 235 919)(font "Arial" )) |
(line (pt 256 912)(pt 240 912)(line_width 1)) |
) |
(port |
(pt 256 928) |
(output) |
(text "ctl_flags_hf_cpl" (rect 0 0 79 12)(font "Arial" )) |
(text "ctl_flags_hf_cpl" (rect 169 923 235 935)(font "Arial" )) |
(line (pt 256 928)(pt 240 928)) |
(text "ctl_flags_hf_cpl" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_flags_hf_cpl" (rect 172 923 235 935)(font "Arial" )) |
(line (pt 256 928)(pt 240 928)(line_width 1)) |
) |
(port |
(pt 256 944) |
(output) |
(text "ctl_flags_use_cf2" (rect 0 0 88 12)(font "Arial" )) |
(text "ctl_flags_use_cf2" (rect 161 939 235 951)(font "Arial" )) |
(line (pt 256 944)(pt 240 944)) |
(text "ctl_flags_use_cf2" (rect 0 0 71 12)(font "Arial" )) |
(text "ctl_flags_use_cf2" (rect 164 939 235 951)(font "Arial" )) |
(line (pt 256 944)(pt 240 944)(line_width 1)) |
) |
(port |
(pt 256 960) |
(output) |
(text "ctl_flags_hf2_we" (rect 0 0 83 12)(font "Arial" )) |
(text "ctl_flags_hf2_we" (rect 165 955 235 967)(font "Arial" )) |
(line (pt 256 960)(pt 240 960)) |
(text "ctl_flags_hf2_we" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_flags_hf2_we" (rect 167 955 235 967)(font "Arial" )) |
(line (pt 256 960)(pt 240 960)(line_width 1)) |
) |
(port |
(pt 256 976) |
(output) |
(text "ctl_flags_nf_clr" (rect 0 0 76 12)(font "Arial" )) |
(text "ctl_flags_nf_clr" (rect 171 971 235 983)(font "Arial" )) |
(line (pt 256 976)(pt 240 976)) |
(text "ctl_flags_nf_clr" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_flags_nf_clr" (rect 173 971 235 983)(font "Arial" )) |
(line (pt 256 976)(pt 240 976)(line_width 1)) |
) |
(port |
(pt 256 992) |
(output) |
(text "ctl_alu_zero_16bit" (rect 0 0 87 12)(font "Arial" )) |
(text "ctl_alu_zero_16bit" (rect 162 987 235 999)(font "Arial" )) |
(line (pt 256 992)(pt 240 992)) |
(text "ctl_alu_zero_16bit" (rect 0 0 69 12)(font "Arial" )) |
(text "ctl_alu_zero_16bit" (rect 166 987 235 999)(font "Arial" )) |
(line (pt 256 992)(pt 240 992)(line_width 1)) |
) |
(port |
(pt 256 1008) |
(output) |
(text "ctl_flags_cf2_sel[1..0]" (rect 0 0 110 12)(font "Arial" )) |
(text "ctl_flags_cf2_sel[1..0]" (rect 142 1003 235 1015)(font "Arial" )) |
(line (pt 256 1008)(pt 240 1008)(line_width 3)) |
(text "ctl_flags_cf2_sel_shift" (rect 0 0 90 12)(font "Arial" )) |
(text "ctl_flags_cf2_sel_shift" (rect 145 1003 235 1015)(font "Arial" )) |
(line (pt 256 1008)(pt 240 1008)(line_width 1)) |
) |
(port |
(pt 256 1024) |
(output) |
(text "ctl_sw_4d" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_sw_4d" (rect 195 1019 235 1031)(font "Arial" )) |
(line (pt 256 1024)(pt 240 1024)) |
(text "ctl_flags_cf2_sel_daa" (rect 0 0 88 12)(font "Arial" )) |
(text "ctl_flags_cf2_sel_daa" (rect 147 1019 235 1031)(font "Arial" )) |
(line (pt 256 1024)(pt 240 1024)(line_width 1)) |
) |
(port |
(pt 256 1040) |
(output) |
(text "ctl_sw_4u" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_sw_4u" (rect 195 1035 235 1047)(font "Arial" )) |
(line (pt 256 1040)(pt 240 1040)) |
(text "ctl_sw_4u" (rect 0 0 41 12)(font "Arial" )) |
(text "ctl_sw_4u" (rect 194 1035 235 1047)(font "Arial" )) |
(line (pt 256 1040)(pt 240 1040)(line_width 1)) |
) |
(port |
(pt 256 1056) |
(output) |
(text "ctl_reg_in_hi" (rect 0 0 61 12)(font "Arial" )) |
(text "ctl_reg_in_hi" (rect 184 1051 235 1063)(font "Arial" )) |
(line (pt 256 1056)(pt 240 1056)) |
(text "ctl_reg_in_hi" (rect 0 0 50 12)(font "Arial" )) |
(text "ctl_reg_in_hi" (rect 185 1051 235 1063)(font "Arial" )) |
(line (pt 256 1056)(pt 240 1056)(line_width 1)) |
) |
(port |
(pt 256 1072) |
(output) |
(text "ctl_reg_in_lo" (rect 0 0 61 12)(font "Arial" )) |
(text "ctl_reg_in_lo" (rect 184 1067 235 1079)(font "Arial" )) |
(line (pt 256 1072)(pt 240 1072)) |
(text "ctl_reg_in_lo" (rect 0 0 50 12)(font "Arial" )) |
(text "ctl_reg_in_lo" (rect 185 1067 235 1079)(font "Arial" )) |
(line (pt 256 1072)(pt 240 1072)(line_width 1)) |
) |
(port |
(pt 256 1088) |
(output) |
(text "ctl_reg_out_lo" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_reg_out_lo" (rect 178 1083 235 1095)(font "Arial" )) |
(line (pt 256 1088)(pt 240 1088)) |
(text "ctl_reg_out_lo" (rect 0 0 56 12)(font "Arial" )) |
(text "ctl_reg_out_lo" (rect 179 1083 235 1095)(font "Arial" )) |
(line (pt 256 1088)(pt 240 1088)(line_width 1)) |
) |
(port |
(pt 256 1104) |
(output) |
(text "ctl_reg_out_hi" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_reg_out_hi" (rect 178 1099 235 1111)(font "Arial" )) |
(line (pt 256 1104)(pt 240 1104)) |
(text "ctl_reg_out_hi" (rect 0 0 56 12)(font "Arial" )) |
(text "ctl_reg_out_hi" (rect 179 1099 235 1111)(font "Arial" )) |
(line (pt 256 1104)(pt 240 1104)(line_width 1)) |
) |
(port |
(pt 256 1120) |
(output) |
(text "ctl_reg_exx" (rect 0 0 56 12)(font "Arial" )) |
(text "ctl_reg_exx" (rect 0 0 47 12)(font "Arial" )) |
(text "ctl_reg_exx" (rect 188 1115 235 1127)(font "Arial" )) |
(line (pt 256 1120)(pt 240 1120)) |
(line (pt 256 1120)(pt 240 1120)(line_width 1)) |
) |
(port |
(pt 256 1136) |
(output) |
(text "ctl_reg_ex_af" (rect 0 0 67 12)(font "Arial" )) |
(text "ctl_reg_ex_af" (rect 0 0 56 12)(font "Arial" )) |
(text "ctl_reg_ex_af" (rect 179 1131 235 1143)(font "Arial" )) |
(line (pt 256 1136)(pt 240 1136)) |
(line (pt 256 1136)(pt 240 1136)(line_width 1)) |
) |
(port |
(pt 256 1152) |
(output) |
(text "ctl_reg_ex_de_hl" (rect 0 0 82 12)(font "Arial" )) |
(text "ctl_reg_ex_de_hl" (rect 0 0 69 12)(font "Arial" )) |
(text "ctl_reg_ex_de_hl" (rect 166 1147 235 1159)(font "Arial" )) |
(line (pt 256 1152)(pt 240 1152)) |
(line (pt 256 1152)(pt 240 1152)(line_width 1)) |
) |
(port |
(pt 256 1168) |
(output) |
(text "ctl_reg_use_sp" (rect 0 0 74 12)(font "Arial" )) |
(text "ctl_reg_use_sp" (rect 0 0 62 12)(font "Arial" )) |
(text "ctl_reg_use_sp" (rect 173 1163 235 1175)(font "Arial" )) |
(line (pt 256 1168)(pt 240 1168)) |
(line (pt 256 1168)(pt 240 1168)(line_width 1)) |
) |
(port |
(pt 256 1184) |
(output) |
(text "ctl_reg_sel_pc" (rect 0 0 70 12)(font "Arial" )) |
(text "ctl_reg_sel_pc" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_reg_sel_pc" (rect 176 1179 235 1191)(font "Arial" )) |
(line (pt 256 1184)(pt 240 1184)) |
(line (pt 256 1184)(pt 240 1184)(line_width 1)) |
) |
(port |
(pt 256 1200) |
(output) |
(text "ctl_reg_sel_ir" (rect 0 0 64 12)(font "Arial" )) |
(text "ctl_reg_sel_ir" (rect 0 0 54 12)(font "Arial" )) |
(text "ctl_reg_sel_ir" (rect 181 1195 235 1207)(font "Arial" )) |
(line (pt 256 1200)(pt 240 1200)) |
(line (pt 256 1200)(pt 240 1200)(line_width 1)) |
) |
(port |
(pt 256 1216) |
(output) |
(text "ctl_reg_sel_wz" (rect 0 0 70 12)(font "Arial" )) |
(text "ctl_reg_sel_wz" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_reg_sel_wz" (rect 176 1211 235 1223)(font "Arial" )) |
(line (pt 256 1216)(pt 240 1216)) |
(line (pt 256 1216)(pt 240 1216)(line_width 1)) |
) |
(port |
(pt 256 1232) |
(output) |
(text "ctl_reg_gp_we" (rect 0 0 69 12)(font "Arial" )) |
(text "ctl_reg_gp_we" (rect 177 1227 235 1239)(font "Arial" )) |
(line (pt 256 1232)(pt 240 1232)) |
(text "ctl_reg_gp_we" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_reg_gp_we" (rect 176 1227 235 1239)(font "Arial" )) |
(line (pt 256 1232)(pt 240 1232)(line_width 1)) |
) |
(port |
(pt 256 1248) |
(output) |
(text "ctl_reg_not_pc" (rect 0 0 71 12)(font "Arial" )) |
(text "ctl_reg_not_pc" (rect 0 0 60 12)(font "Arial" )) |
(text "ctl_reg_not_pc" (rect 175 1243 235 1255)(font "Arial" )) |
(line (pt 256 1248)(pt 240 1248)) |
(line (pt 256 1248)(pt 240 1248)(line_width 1)) |
) |
(port |
(pt 256 1264) |
(output) |
(text "ctl_reg_sys_we_lo" (rect 0 0 90 12)(font "Arial" )) |
(text "ctl_reg_sys_we_lo" (rect 0 0 76 12)(font "Arial" )) |
(text "ctl_reg_sys_we_lo" (rect 159 1259 235 1271)(font "Arial" )) |
(line (pt 256 1264)(pt 240 1264)) |
(line (pt 256 1264)(pt 240 1264)(line_width 1)) |
) |
(port |
(pt 256 1280) |
(output) |
(text "ctl_reg_sys_we_hi" (rect 0 0 90 12)(font "Arial" )) |
(text "ctl_reg_sys_we_hi" (rect 0 0 76 12)(font "Arial" )) |
(text "ctl_reg_sys_we_hi" (rect 159 1275 235 1287)(font "Arial" )) |
(line (pt 256 1280)(pt 240 1280)) |
(line (pt 256 1280)(pt 240 1280)(line_width 1)) |
) |
(port |
(pt 256 1296) |
(output) |
(text "ctl_reg_sys_we" (rect 0 0 76 12)(font "Arial" )) |
(text "ctl_reg_sys_we" (rect 0 0 64 12)(font "Arial" )) |
(text "ctl_reg_sys_we" (rect 171 1291 235 1303)(font "Arial" )) |
(line (pt 256 1296)(pt 240 1296)) |
(line (pt 256 1296)(pt 240 1296)(line_width 1)) |
) |
(port |
(pt 256 1312) |
(output) |
(text "ctl_reg_gp_hilo[1..0]" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_reg_gp_hilo[1..0]" (rect 152 1307 235 1319)(font "Arial" )) |
(line (pt 256 1312)(pt 240 1312)(line_width 3)) |
(text "ctl_sw_4d" (rect 0 0 41 12)(font "Arial" )) |
(text "ctl_sw_4d" (rect 194 1307 235 1319)(font "Arial" )) |
(line (pt 256 1312)(pt 240 1312)(line_width 1)) |
) |
(port |
(pt 256 1328) |
(output) |
(text "ctl_reg_gp_sel[1..0]" (rect 0 0 96 12)(font "Arial" )) |
(text "ctl_reg_gp_sel[1..0]" (rect 154 1323 235 1335)(font "Arial" )) |
(text "ctl_reg_gp_hilo[1..0]" (rect 0 0 79 12)(font "Arial" )) |
(text "ctl_reg_gp_hilo[1..0]" (rect 156 1323 235 1335)(font "Arial" )) |
(line (pt 256 1328)(pt 240 1328)(line_width 3)) |
) |
(port |
(pt 256 1344) |
(output) |
(text "ctl_reg_sys_hilo[1..0]" (rect 0 0 106 12)(font "Arial" )) |
(text "ctl_reg_sys_hilo[1..0]" (rect 146 1339 235 1351)(font "Arial" )) |
(text "ctl_reg_gp_sel[1..0]" (rect 0 0 77 12)(font "Arial" )) |
(text "ctl_reg_gp_sel[1..0]" (rect 158 1339 235 1351)(font "Arial" )) |
(line (pt 256 1344)(pt 240 1344)(line_width 3)) |
) |
(port |
(pt 256 1360) |
(output) |
(text "ctl_inc_cy" (rect 0 0 50 12)(font "Arial" )) |
(text "ctl_inc_cy" (rect 193 1355 235 1367)(font "Arial" )) |
(line (pt 256 1360)(pt 240 1360)) |
(text "ctl_reg_sys_hilo[1..0]" (rect 0 0 84 12)(font "Arial" )) |
(text "ctl_reg_sys_hilo[1..0]" (rect 151 1355 235 1367)(font "Arial" )) |
(line (pt 256 1360)(pt 240 1360)(line_width 3)) |
) |
(port |
(pt 256 1376) |
(output) |
(text "ctl_inc_dec" (rect 0 0 55 12)(font "Arial" )) |
(text "ctl_inc_dec" (rect 189 1371 235 1383)(font "Arial" )) |
(line (pt 256 1376)(pt 240 1376)) |
(text "ctl_inc_cy" (rect 0 0 41 12)(font "Arial" )) |
(text "ctl_inc_cy" (rect 194 1371 235 1383)(font "Arial" )) |
(line (pt 256 1376)(pt 240 1376)(line_width 1)) |
) |
(port |
(pt 256 1392) |
(output) |
(text "ctl_inc_zero" (rect 0 0 57 12)(font "Arial" )) |
(text "ctl_inc_zero" (rect 187 1387 235 1399)(font "Arial" )) |
(line (pt 256 1392)(pt 240 1392)) |
(text "ctl_inc_dec" (rect 0 0 44 12)(font "Arial" )) |
(text "ctl_inc_dec" (rect 191 1387 235 1399)(font "Arial" )) |
(line (pt 256 1392)(pt 240 1392)(line_width 1)) |
) |
(port |
(pt 256 1408) |
(output) |
(text "ctl_al_we" (rect 0 0 44 12)(font "Arial" )) |
(text "ctl_al_we" (rect 198 1403 235 1415)(font "Arial" )) |
(line (pt 256 1408)(pt 240 1408)) |
(text "ctl_al_we" (rect 0 0 36 12)(font "Arial" )) |
(text "ctl_al_we" (rect 199 1403 235 1415)(font "Arial" )) |
(line (pt 256 1408)(pt 240 1408)(line_width 1)) |
) |
(port |
(pt 256 1424) |
(output) |
(text "ctl_inc_limit6" (rect 0 0 63 12)(font "Arial" )) |
(text "ctl_inc_limit6" (rect 182 1419 235 1431)(font "Arial" )) |
(line (pt 256 1424)(pt 240 1424)) |
(text "ctl_inc_limit6" (rect 0 0 49 12)(font "Arial" )) |
(text "ctl_inc_limit6" (rect 186 1419 235 1431)(font "Arial" )) |
(line (pt 256 1424)(pt 240 1424)(line_width 1)) |
) |
(port |
(pt 256 1440) |
(output) |
(text "ctl_bus_inc_oe" (rect 0 0 73 12)(font "Arial" )) |
(text "ctl_bus_inc_oe" (rect 174 1435 235 1447)(font "Arial" )) |
(line (pt 256 1440)(pt 240 1440)) |
(text "ctl_bus_inc_oe" (rect 0 0 60 12)(font "Arial" )) |
(text "ctl_bus_inc_oe" (rect 175 1435 235 1447)(font "Arial" )) |
(line (pt 256 1440)(pt 240 1440)(line_width 1)) |
) |
(port |
(pt 256 1456) |
(output) |
(text "ctl_apin_mux" (rect 0 0 64 12)(font "Arial" )) |
(text "ctl_apin_mux" (rect 181 1451 235 1463)(font "Arial" )) |
(line (pt 256 1456)(pt 240 1456)) |
(text "ctl_apin_mux" (rect 0 0 53 12)(font "Arial" )) |
(text "ctl_apin_mux" (rect 182 1451 235 1463)(font "Arial" )) |
(line (pt 256 1456)(pt 240 1456)(line_width 1)) |
) |
(port |
(pt 256 1472) |
(output) |
(text "ctl_apin_mux2" (rect 0 0 70 12)(font "Arial" )) |
(text "ctl_apin_mux2" (rect 176 1467 235 1479)(font "Arial" )) |
(line (pt 256 1472)(pt 240 1472)) |
(text "ctl_apin_mux2" (rect 0 0 57 12)(font "Arial" )) |
(text "ctl_apin_mux2" (rect 178 1467 235 1479)(font "Arial" )) |
(line (pt 256 1472)(pt 240 1472)(line_width 1)) |
) |
(port |
(pt 256 1488) |
(output) |
(text "ctl_bus_ff_oe" (rect 0 0 68 12)(font "Arial" )) |
(text "ctl_bus_ff_oe" (rect 178 1483 235 1495)(font "Arial" )) |
(line (pt 256 1488)(pt 240 1488)) |
(text "ctl_bus_ff_oe" (rect 0 0 56 12)(font "Arial" )) |
(text "ctl_bus_ff_oe" (rect 179 1483 235 1495)(font "Arial" )) |
(line (pt 256 1488)(pt 240 1488)(line_width 1)) |
) |
(port |
(pt 256 1504) |
(output) |
(text "ctl_bus_zero_oe" (rect 0 0 79 12)(font "Arial" )) |
(text "ctl_bus_zero_oe" (rect 0 0 66 12)(font "Arial" )) |
(text "ctl_bus_zero_oe" (rect 169 1499 235 1511)(font "Arial" )) |
(line (pt 256 1504)(pt 240 1504)) |
(line (pt 256 1504)(pt 240 1504)(line_width 1)) |
) |
(port |
(pt 256 1520) |
(output) |
(text "ctl_bus_db_oe" (rect 0 0 70 12)(font "Arial" )) |
(text "ctl_bus_db_oe" (rect 176 1515 235 1527)(font "Arial" )) |
(line (pt 256 1520)(pt 240 1520)) |
(text "ctl_sw_1u" (rect 0 0 38 12)(font "Arial" )) |
(text "ctl_sw_1u" (rect 197 1515 235 1527)(font "Arial" )) |
(line (pt 256 1520)(pt 240 1520)(line_width 1)) |
) |
(port |
(pt 256 1536) |
(output) |
(text "ctl_sw_1u" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_sw_1u" (rect 195 1531 235 1543)(font "Arial" )) |
(line (pt 256 1536)(pt 240 1536)) |
(text "ctl_sw_1d" (rect 0 0 38 12)(font "Arial" )) |
(text "ctl_sw_1d" (rect 197 1531 235 1543)(font "Arial" )) |
(line (pt 256 1536)(pt 240 1536)(line_width 1)) |
) |
(port |
(pt 256 1552) |
(output) |
(text "ctl_sw_1d" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_sw_1d" (rect 195 1547 235 1559)(font "Arial" )) |
(line (pt 256 1552)(pt 240 1552)) |
(text "ctl_sw_2u" (rect 0 0 40 12)(font "Arial" )) |
(text "ctl_sw_2u" (rect 195 1547 235 1559)(font "Arial" )) |
(line (pt 256 1552)(pt 240 1552)(line_width 1)) |
) |
(port |
(pt 256 1568) |
(output) |
(text "ctl_sw_2u" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_sw_2u" (rect 195 1563 235 1575)(font "Arial" )) |
(line (pt 256 1568)(pt 240 1568)) |
(text "ctl_sw_2d" (rect 0 0 40 12)(font "Arial" )) |
(text "ctl_sw_2d" (rect 195 1563 235 1575)(font "Arial" )) |
(line (pt 256 1568)(pt 240 1568)(line_width 1)) |
) |
(port |
(pt 256 1584) |
(output) |
(text "ctl_sw_2d" (rect 0 0 48 12)(font "Arial" )) |
(text "ctl_sw_2d" (rect 195 1579 235 1591)(font "Arial" )) |
(line (pt 256 1584)(pt 240 1584)) |
(text "ctl_sw_mask543_en" (rect 0 0 83 12)(font "Arial" )) |
(text "ctl_sw_mask543_en" (rect 152 1579 235 1591)(font "Arial" )) |
(line (pt 256 1584)(pt 240 1584)(line_width 1)) |
) |
(port |
(pt 256 1600) |
(output) |
(text "ctl_sw_mask543_en" (rect 0 0 99 12)(font "Arial" )) |
(text "ctl_sw_mask543_en" (rect 152 1595 235 1607)(font "Arial" )) |
(line (pt 256 1600)(pt 240 1600)) |
(text "ctl_bus_db_we" (rect 0 0 60 12)(font "Arial" )) |
(text "ctl_bus_db_we" (rect 175 1595 235 1607)(font "Arial" )) |
(line (pt 256 1600)(pt 240 1600)(line_width 1)) |
) |
(port |
(pt 256 1616) |
(output) |
(text "ctl_bus_db_we" (rect 0 0 71 12)(font "Arial" )) |
(text "ctl_bus_db_we" (rect 175 1611 235 1623)(font "Arial" )) |
(line (pt 256 1616)(pt 240 1616)) |
(text "ctl_bus_db_oe" (rect 0 0 59 12)(font "Arial" )) |
(text "ctl_bus_db_oe" (rect 176 1611 235 1623)(font "Arial" )) |
(line (pt 256 1616)(pt 240 1616)(line_width 1)) |
) |
(port |
(pt 256 1632) |
(output) |
(text "nextM" (rect 0 0 29 12)(font "Arial" )) |
(text "nextM" (rect 0 0 24 12)(font "Arial" )) |
(text "nextM" (rect 211 1627 235 1639)(font "Arial" )) |
(line (pt 256 1632)(pt 240 1632)) |
(line (pt 256 1632)(pt 240 1632)(line_width 1)) |
) |
(port |
(pt 256 1648) |
(output) |
(text "setM1" (rect 0 0 29 12)(font "Arial" )) |
(text "setM1" (rect 211 1643 235 1655)(font "Arial" )) |
(line (pt 256 1648)(pt 240 1648)) |
(text "setM1" (rect 0 0 23 12)(font "Arial" )) |
(text "setM1" (rect 212 1643 235 1655)(font "Arial" )) |
(line (pt 256 1648)(pt 240 1648)(line_width 1)) |
) |
(port |
(pt 256 1664) |
(output) |
(text "fFetch" (rect 0 0 33 12)(font "Arial" )) |
(text "fFetch" (rect 208 1659 235 1671)(font "Arial" )) |
(line (pt 256 1664)(pt 240 1664)) |
(text "fFetch" (rect 0 0 25 12)(font "Arial" )) |
(text "fFetch" (rect 210 1659 235 1671)(font "Arial" )) |
(line (pt 256 1664)(pt 240 1664)(line_width 1)) |
) |
(port |
(pt 256 1680) |
(output) |
(text "fMRead" (rect 0 0 38 12)(font "Arial" )) |
(text "fMRead" (rect 203 1675 235 1687)(font "Arial" )) |
(line (pt 256 1680)(pt 240 1680)) |
(text "fMRead" (rect 0 0 34 12)(font "Arial" )) |
(text "fMRead" (rect 201 1675 235 1687)(font "Arial" )) |
(line (pt 256 1680)(pt 240 1680)(line_width 1)) |
) |
(port |
(pt 256 1696) |
(output) |
(text "fMWrite" (rect 0 0 38 12)(font "Arial" )) |
(text "fMWrite" (rect 203 1691 235 1703)(font "Arial" )) |
(line (pt 256 1696)(pt 240 1696)) |
(text "fMWrite" (rect 0 0 34 12)(font "Arial" )) |
(text "fMWrite" (rect 201 1691 235 1703)(font "Arial" )) |
(line (pt 256 1696)(pt 240 1696)(line_width 1)) |
) |
(port |
(pt 256 1712) |
(output) |
(text "fIORead" (rect 0 0 42 12)(font "Arial" )) |
(text "fIORead" (rect 0 0 35 12)(font "Arial" )) |
(text "fIORead" (rect 200 1707 235 1719)(font "Arial" )) |
(line (pt 256 1712)(pt 240 1712)) |
(line (pt 256 1712)(pt 240 1712)(line_width 1)) |
) |
(port |
(pt 256 1728) |
(output) |
(text "fIOWrite" (rect 0 0 42 12)(font "Arial" )) |
(text "fIOWrite" (rect 0 0 35 12)(font "Arial" )) |
(text "fIOWrite" (rect 200 1723 235 1735)(font "Arial" )) |
(line (pt 256 1728)(pt 240 1728)) |
(line (pt 256 1728)(pt 240 1728)(line_width 1)) |
) |
(drawing |
(rectangle (rect 16 16 240 1760)) |
(rectangle (rect 16 16 240 1760)(line_width 1)) |
) |
) |
/a-z80/trunk/cpu/control/execute.v
78,9 → 78,8
reg validPLA; // Valid PLA asserts this reg |
// Activates a state machine to compute WZ=IX+d; takes 5T cycles |
reg ixy_d; // Compute WX=IX+d |
// Signals the setting of IX/IY and CB/ED prefix flags; inhibits clearing them |
// Signals the setting of IX/IY prefix flags; inhibits clearing them |
reg setIXIY; // Set IX/IY flag at the next T cycle |
reg setCBED; // Set CB or ED flag at the next T cycle |
// Holds asserted by non-repeating versions of block instructions (LDI/CPI,...) |
reg nonRep; // Non-repeating block instruction |
// Suspends incrementing PC through address latch unless in HALT or interrupt mode |
139,7 → 138,6
fMRead = 0; fMWrite = 0; fIORead = 0; fIOWrite = 0; |
ixy_d = 0; |
setIXIY = 0; |
setCBED = 0; |
nonRep = 0; |
pc_inc_hold = 0; |
|
/a-z80/trunk/cpu/control/gencompile.py
42,7 → 42,7
def is_ctl(name): |
return name.startswith('ctl_') or name=='validPLA' or name=='nextM' or name=='setM1' \ |
or name=='fFetch' or name=='fMRead' or name=='fMWrite' or name=='fIORead' or name=='fIOWrite' \ |
or name=='ixy_d' or name=='setIXIY' or name=='setCBED' or name=='nonRep' or name=='pc_inc_hold' |
or name=='ixy_d' or name=='setIXIY' or name=='nonRep' or name=='pc_inc_hold' |
|
def str2tok(s): |
t = io.BytesIO(bytes(s.encode())) |
/a-z80/trunk/cpu/control/ir.bdf
21,7 → 21,7
(header "graphic" (version "1.4")) |
(pin |
(input) |
(rect 40 80 216 96) |
(rect 40 88 216 104) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "ctl_ir_we" (rect 9 0 51 12)(font "Arial" )) |
(pt 176 8) |
69,7 → 69,7
) |
(pin |
(input) |
(rect 40 120 216 136) |
(rect 40 152 216 168) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "nreset" (rect 9 0 39 12)(font "Arial" )) |
(pt 176 8) |
84,6 → 84,22
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 40 120 216 136) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "hold_clk_wait" (rect 9 0 73 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(output) |
(rect 504 48 680 64) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
156,6 → 172,63
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 296 80 360 128) |
(text "AND2" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "inst5" (rect 3 37 26 49)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 14 16)) |
) |
(port |
(pt 0 32) |
(input) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 14 32)) |
) |
(port |
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
(line (pt 14 12)(pt 30 12)) |
(line (pt 14 37)(pt 31 37)) |
(line (pt 14 12)(pt 14 37)) |
(arc (pt 31 37)(pt 30 12)(rect 18 12 43 37)) |
) |
) |
(symbol |
(rect 232 112 280 144) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
(text "inst3" (rect 3 21 26 33)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
(line (pt 13 25)(pt 13 7)) |
(line (pt 13 7)(pt 31 16)) |
(line (pt 13 25)(pt 31 16)) |
(circle (rect 31 12 39 20)) |
) |
) |
(connector |
(pt 216 56) |
(pt 392 56) |
171,26 → 244,54
(bus) |
) |
(connector |
(pt 216 88) |
(pt 392 88) |
(pt 376 88) |
) |
(connector |
(pt 216 128) |
(pt 424 128) |
(pt 424 160) |
(pt 216 160) |
) |
(connector |
(pt 424 128) |
(pt 424 112) |
(pt 424 160) |
) |
(text "8 latches implement the opcode Instruction Register" (rect 352 160 643 174)(font "Arial" (font_size 8))) |
(connector |
(pt 216 128) |
(pt 232 128) |
) |
(connector |
(pt 376 88) |
(pt 376 104) |
) |
(connector |
(pt 376 104) |
(pt 360 104) |
) |
(connector |
(pt 216 96) |
(pt 296 96) |
) |
(connector |
(pt 280 128) |
(pt 288 128) |
) |
(connector |
(pt 296 112) |
(pt 288 112) |
) |
(connector |
(pt 288 112) |
(pt 288 128) |
) |
(text "8 latches implement the opcode Instruction Register" (rect 328 216 619 230)(font "Arial" (font_size 8))) |
(title_block |
(rect 40 160 297 212) |
(rect 40 216 297 268) |
(name "title-custom-small") |
(section (rect 0 35 256 51)(text "DATE" (rect 2 0 30 12)(font "Arial" ))(text "May 3, 2014, 2016" (rect 56 3 161 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 0 18 256 34)(text "DESIGNER" (rect 2 0 59 12)(font "Arial" ))(text "Goran Devic" (rect 56 2 135 17)(font "Arial" (font_size 9)))(border)) |
(section (rect 104 0 256 17)(text "MODULE" (rect 2 1 48 13)(font "Arial" ))(text "ir" (rect 43 2 52 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 0 0 256 17)(text "PROJECT" (rect 2 0 52 12)(font "Arial" ))(text "A-Z80" (rect 56 2 94 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.3" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.4" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(drawing |
) |
) |
/a-z80/trunk/cpu/control/ir.bsf
20,7 → 20,7
*/ |
(header "symbol" (version "1.2")) |
(symbol |
(rect 16 16 192 144) |
(rect 16 16 216 144) |
(text "ir" (rect 5 0 12 14)(font "Arial" (font_size 8))) |
(text "inst" (rect 8 112 25 124)(font "Arial" )) |
(port |
47,18 → 47,25
(port |
(pt 0 80) |
(input) |
(text "nreset" (rect 0 0 36 14)(font "Arial" (font_size 8))) |
(text "nreset" (rect 21 75 57 89)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 0 0 77 14)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 21 75 98 89)(font "Arial" (font_size 8))) |
(line (pt 0 80)(pt 16 80)) |
) |
(port |
(pt 176 32) |
(pt 0 96) |
(input) |
(text "nreset" (rect 0 0 36 14)(font "Arial" (font_size 8))) |
(text "nreset" (rect 21 91 57 105)(font "Arial" (font_size 8))) |
(line (pt 0 96)(pt 16 96)) |
) |
(port |
(pt 200 32) |
(output) |
(text "opcode[7..0]" (rect 0 0 70 14)(font "Arial" (font_size 8))) |
(text "opcode[7..0]" (rect 85 27 155 41)(font "Arial" (font_size 8))) |
(line (pt 176 32)(pt 160 32)(line_width 3)) |
(text "opcode[7..0]" (rect 109 27 179 41)(font "Arial" (font_size 8))) |
(line (pt 200 32)(pt 184 32)(line_width 3)) |
) |
(drawing |
(rectangle (rect 16 16 160 112)) |
(rectangle (rect 16 16 184 112)) |
) |
) |
/a-z80/trunk/cpu/control/ir.v
20,6 → 20,7
ctl_ir_we, |
clk, |
nreset, |
hold_clk_wait, |
db, |
opcode |
); |
28,14 → 29,21
input wire ctl_ir_we; |
input wire clk; |
input wire nreset; |
input wire hold_clk_wait; |
input wire [7:0] db; |
output reg [7:0] opcode; |
|
wire SYNTHESIZED_WIRE_0; |
wire SYNTHESIZED_WIRE_1; |
|
|
|
|
assign SYNTHESIZED_WIRE_0 = ~hold_clk_wait; |
|
assign SYNTHESIZED_WIRE_1 = ctl_ir_we & SYNTHESIZED_WIRE_0; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
43,7 → 51,7
opcode[7:0] <= 8'b00000000; |
end |
else |
if (ctl_ir_we) |
if (SYNTHESIZED_WIRE_1) |
begin |
opcode[7:0] <= db[7:0]; |
end |
/a-z80/trunk/cpu/control/memory_ifc.bdf
229,7 → 229,7
) |
(pin |
(output) |
(rect 800 80 976 96) |
(rect 800 184 976 200) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
(text "nM1_out" (rect 90 0 131 12)(font "Arial" )) |
(pt 0 8) |
339,6 → 339,22
(line (pt 78 12)(pt 82 8)) |
) |
) |
(pin |
(output) |
(rect 800 472 976 488) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
(text "wait_m1" (rect 90 0 130 12)(font "Arial" )) |
(pt 0 8) |
(drawing |
(line (pt 0 8)(pt 52 8)) |
(line (pt 52 4)(pt 78 4)) |
(line (pt 52 12)(pt 78 12)) |
(line (pt 52 12)(pt 52 4)) |
(line (pt 78 4)(pt 82 8)) |
(line (pt 82 8)(pt 78 12)) |
(line (pt 78 12)(pt 82 8)) |
) |
) |
(symbol |
(rect 640 112 688 144) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
2152,6 → 2168,64
(circle (rect 31 12 39 20)) |
) |
) |
(symbol |
(rect 720 168 784 216) |
(text "OR2" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst41" (rect 3 37 32 49)(font "Arial" )) |
(port |
(pt 0 32) |
(input) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 15 32)) |
) |
(port |
(pt 0 16) |
(input) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 15 16)) |
) |
(port |
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
(line (pt 14 36)(pt 25 36)) |
(line (pt 14 13)(pt 25 13)) |
(arc (pt 7 29)(pt 7 19)(rect -14 8 19 41)) |
(arc (pt 49 24)(pt 25 13)(rect -6 13 57 76)) |
(arc (pt 25 35)(pt 49 24)(rect -6 -27 57 36)) |
) |
) |
(symbol |
(rect 640 184 688 216) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
(text "notff1" (rect 3 21 33 33)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
(line (pt 13 25)(pt 13 7)) |
(line (pt 13 7)(pt 31 16)) |
(line (pt 13 25)(pt 31 16)) |
(circle (rect 31 12 39 20)) |
) |
) |
(connector |
(pt 704 112) |
(pt 720 112) |
2161,10 → 2235,6
(pt 320 128) |
) |
(connector |
(pt 704 88) |
(pt 704 112) |
) |
(connector |
(pt 416 304) |
(pt 416 264) |
) |
2214,10 → 2284,6
(pt 704 88) |
) |
(connector |
(pt 704 88) |
(pt 800 88) |
) |
(connector |
(pt 400 88) |
(pt 400 128) |
) |
2243,7 → 2309,7
(pt 448 304) |
) |
(connector |
(text "nq2" (rect 698 112 715 124)(font "Arial" )) |
(text "nq2" (rect 690 96 707 108)(font "Arial" )) |
(pt 688 128) |
(pt 720 128) |
) |
2286,10 → 2352,6
(pt 528 304) |
) |
(connector |
(pt 592 184) |
(pt 592 232) |
) |
(connector |
(pt 480 184) |
(pt 480 232) |
) |
2583,15 → 2645,6
(pt 544 520) |
) |
(connector |
(pt 512 480) |
(pt 624 480) |
) |
(connector |
(text "wait_m1" (rect 824 464 864 476)(font "Arial" )) |
(pt 624 480) |
(pt 864 480) |
) |
(connector |
(pt 496 720) |
(pt 512 720) |
) |
3472,13 → 3525,53
(pt 688 1808) |
) |
(connector |
(pt 784 192) |
(pt 800 192) |
) |
(connector |
(pt 720 184) |
(pt 704 184) |
) |
(connector |
(pt 704 88) |
(pt 704 112) |
) |
(connector |
(pt 704 112) |
(pt 704 184) |
) |
(connector |
(pt 592 200) |
(pt 640 200) |
) |
(connector |
(pt 592 184) |
(pt 592 200) |
) |
(connector |
(pt 592 200) |
(pt 592 232) |
) |
(connector |
(pt 688 200) |
(pt 720 200) |
) |
(connector |
(pt 512 480) |
(pt 624 480) |
) |
(connector |
(text "wait_m1" (rect 752 464 792 476)(font "Arial" )) |
(pt 624 480) |
(pt 800 480) |
) |
(connector |
(text "wait_m1" (rect 377 1840 417 1852)(font "Arial" )) |
(pt 376 1856) |
(pt 688 1856) |
(pt 376 1856) |
) |
(junction (pt 248 144)) |
(junction (pt 272 320)) |
(junction (pt 704 88)) |
(junction (pt 416 304)) |
(junction (pt 400 128)) |
(junction (pt 352 408)) |
3539,6 → 3632,8
(junction (pt 576 1232)) |
(junction (pt 328 1536)) |
(junction (pt 624 880)) |
(junction (pt 704 112)) |
(junction (pt 592 200)) |
(text "MREQ DURING REFRESH" (rect 640 248 780 262)(font "Arial" (font_size 8))) |
(text "STANDARD MEM REQ" (rect 712 408 837 422)(font "Arial" (font_size 8))) |
(text "Refresh generator logic, USPTO 4,332,008 by Shima et al. FIG. 9A" (rect 40 32 506 48)(font "Arial" (font_size 10))(border)) |
3556,7 → 3651,7
(section (rect 104 0 256 17)(text "MODULE" (rect 2 1 48 13)(font "Arial" ))(text "memory_ifc" (rect 43 2 123 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 0 18 256 34)(text "DESIGNER" (rect 2 0 59 12)(font "Arial" ))(text "Goran Devic" (rect 56 2 135 17)(font "Arial" (font_size 9)))(border)) |
(section (rect 0 35 256 51)(text "DATE" (rect 2 0 30 12)(font "Arial" ))(text "November 1, 2014" (rect 56 3 159 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.0" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.1" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(drawing |
) |
) |
/a-z80/trunk/cpu/control/memory_ifc.bsf
117,15 → 117,15
(port |
(pt 200 32) |
(output) |
(text "nM1_out" (rect 0 0 48 14)(font "Arial" (font_size 8))) |
(text "nM1_out" (rect 131 27 179 41)(font "Arial" (font_size 8))) |
(text "nRFSH_out" (rect 0 0 63 14)(font "Arial" (font_size 8))) |
(text "nRFSH_out" (rect 116 27 179 41)(font "Arial" (font_size 8))) |
(line (pt 200 32)(pt 184 32)) |
) |
(port |
(pt 200 48) |
(output) |
(text "nRFSH_out" (rect 0 0 63 14)(font "Arial" (font_size 8))) |
(text "nRFSH_out" (rect 116 43 179 57)(font "Arial" (font_size 8))) |
(text "nM1_out" (rect 0 0 48 14)(font "Arial" (font_size 8))) |
(text "nM1_out" (rect 131 43 179 57)(font "Arial" (font_size 8))) |
(line (pt 200 48)(pt 184 48)) |
) |
(port |
138,31 → 138,38
(port |
(pt 200 80) |
(output) |
(text "nRD_out" (rect 0 0 48 14)(font "Arial" (font_size 8))) |
(text "nRD_out" (rect 131 75 179 89)(font "Arial" (font_size 8))) |
(text "wait_m1" (rect 0 0 48 14)(font "Arial" (font_size 8))) |
(text "wait_m1" (rect 131 75 179 89)(font "Arial" (font_size 8))) |
(line (pt 200 80)(pt 184 80)) |
) |
(port |
(pt 200 96) |
(output) |
(text "nWR_out" (rect 0 0 51 14)(font "Arial" (font_size 8))) |
(text "nWR_out" (rect 128 91 179 105)(font "Arial" (font_size 8))) |
(text "nRD_out" (rect 0 0 48 14)(font "Arial" (font_size 8))) |
(text "nRD_out" (rect 131 91 179 105)(font "Arial" (font_size 8))) |
(line (pt 200 96)(pt 184 96)) |
) |
(port |
(pt 200 112) |
(output) |
(text "nIORQ_out" (rect 0 0 61 14)(font "Arial" (font_size 8))) |
(text "nIORQ_out" (rect 118 107 179 121)(font "Arial" (font_size 8))) |
(text "nWR_out" (rect 0 0 51 14)(font "Arial" (font_size 8))) |
(text "nWR_out" (rect 128 107 179 121)(font "Arial" (font_size 8))) |
(line (pt 200 112)(pt 184 112)) |
) |
(port |
(pt 200 128) |
(output) |
(text "latch_wait" (rect 0 0 59 14)(font "Arial" (font_size 8))) |
(text "latch_wait" (rect 120 123 179 137)(font "Arial" (font_size 8))) |
(text "nIORQ_out" (rect 0 0 61 14)(font "Arial" (font_size 8))) |
(text "nIORQ_out" (rect 118 123 179 137)(font "Arial" (font_size 8))) |
(line (pt 200 128)(pt 184 128)) |
) |
(port |
(pt 200 144) |
(output) |
(text "latch_wait" (rect 0 0 59 14)(font "Arial" (font_size 8))) |
(text "latch_wait" (rect 120 139 179 153)(font "Arial" (font_size 8))) |
(line (pt 200 144)(pt 184 144)) |
) |
(drawing |
(rectangle (rect 16 16 184 240)) |
) |
/a-z80/trunk/cpu/control/memory_ifc.v
14,7 → 14,7
|
// PROGRAM "Quartus II 64-Bit" |
// VERSION "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" |
// CREATED "Sun Nov 16 21:11:14 2014" |
// CREATED "Sun Dec 04 01:04:33 2016" |
|
module memory_ifc( |
clk, |
36,7 → 36,8
nRD_out, |
nWR_out, |
nIORQ_out, |
latch_wait |
latch_wait, |
wait_m1 |
); |
|
|
60,6 → 61,7
output wire nWR_out; |
output wire nIORQ_out; |
output wire latch_wait; |
output wire wait_m1; |
|
wire intr_iorq; |
wire ioRead; |
74,22 → 76,23
reg q1; |
reg q2; |
reg wait_iorq; |
reg wait_m1; |
reg wait_m_ALTERA_SYNTHESIZED1; |
reg wait_mrd; |
reg wait_mwr; |
wire SYNTHESIZED_WIRE_0; |
reg DFFE_m1_ff3; |
wire SYNTHESIZED_WIRE_1; |
reg SYNTHESIZED_WIRE_15; |
reg SYNTHESIZED_WIRE_16; |
reg DFFE_iorq_ff4; |
reg SYNTHESIZED_WIRE_16; |
reg SYNTHESIZED_WIRE_17; |
reg DFFE_mrd_ff3; |
reg DFFE_intr_ff3; |
wire SYNTHESIZED_WIRE_2; |
reg SYNTHESIZED_WIRE_17; |
reg SYNTHESIZED_WIRE_18; |
wire SYNTHESIZED_WIRE_19; |
wire SYNTHESIZED_WIRE_4; |
wire SYNTHESIZED_WIRE_3; |
reg SYNTHESIZED_WIRE_19; |
wire SYNTHESIZED_WIRE_20; |
wire SYNTHESIZED_WIRE_5; |
reg DFFE_iorq_ff1; |
reg DFFE_m1_ff1; |
reg DFFE_mrd_ff1; |
96,7 → 99,6
reg DFFE_mwr_ff1; |
reg DFFE_mreq_ff2; |
|
assign nM1_out = SYNTHESIZED_WIRE_18; |
|
|
|
104,15 → 106,15
|
assign ioRead = iorq & fIORead; |
|
assign SYNTHESIZED_WIRE_1 = ~(DFFE_m1_ff3 | wait_m1); |
assign SYNTHESIZED_WIRE_1 = ~(DFFE_m1_ff3 | wait_m_ALTERA_SYNTHESIZED1); |
|
assign m1_mreq = ~(in_intr | SYNTHESIZED_WIRE_1); |
|
assign iorq = SYNTHESIZED_WIRE_15 | DFFE_iorq_ff4 | SYNTHESIZED_WIRE_16; |
assign iorq = SYNTHESIZED_WIRE_16 | DFFE_iorq_ff4 | SYNTHESIZED_WIRE_17; |
|
assign ioWrite = iorq & fIOWrite; |
|
assign latch_wait = wait_mrd | wait_iorq | wait_m1 | wait_mwr; |
assign latch_wait = wait_mrd | wait_iorq | wait_m_ALTERA_SYNTHESIZED1 | wait_mwr; |
|
assign nMEMRQ_int = ~(m1_mreq | mrd_mreq | mwr_mreq); |
|
126,16 → 128,18
|
assign nIORQ_out = ~(intr_iorq | iorq); |
|
assign SYNTHESIZED_WIRE_4 = ~hold_clk_wait; |
assign SYNTHESIZED_WIRE_5 = ~hold_clk_wait; |
|
assign intr_iorq = DFFE_intr_ff3 | wait_iorq; |
|
assign SYNTHESIZED_WIRE_0 = ~(SYNTHESIZED_WIRE_2 & SYNTHESIZED_WIRE_17); |
assign nM1_out = SYNTHESIZED_WIRE_2 | SYNTHESIZED_WIRE_18; |
|
assign SYNTHESIZED_WIRE_0 = ~(SYNTHESIZED_WIRE_3 & SYNTHESIZED_WIRE_19); |
|
assign nRFSH_out = ~(nq2 & SYNTHESIZED_WIRE_18); |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
155,7 → 159,7
DFFE_intr_ff3 <= 0; |
end |
else |
if (SYNTHESIZED_WIRE_4) |
if (SYNTHESIZED_WIRE_5) |
begin |
DFFE_intr_ff3 <= wait_iorq; |
end |
180,31 → 184,31
begin |
if (!nreset) |
begin |
SYNTHESIZED_WIRE_16 <= 0; |
SYNTHESIZED_WIRE_17 <= 0; |
end |
else |
if (timings_en) |
begin |
SYNTHESIZED_WIRE_16 <= DFFE_iorq_ff1; |
SYNTHESIZED_WIRE_17 <= DFFE_iorq_ff1; |
end |
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
SYNTHESIZED_WIRE_15 <= 0; |
SYNTHESIZED_WIRE_16 <= 0; |
end |
else |
if (timings_en) |
begin |
SYNTHESIZED_WIRE_15 <= SYNTHESIZED_WIRE_16; |
SYNTHESIZED_WIRE_16 <= SYNTHESIZED_WIRE_17; |
end |
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
213,7 → 217,7
else |
if (timings_en) |
begin |
DFFE_iorq_ff4 <= SYNTHESIZED_WIRE_15; |
DFFE_iorq_ff4 <= SYNTHESIZED_WIRE_16; |
end |
end |
|
232,7 → 236,7
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
246,16 → 250,16
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
wait_m1 <= 0; |
wait_m_ALTERA_SYNTHESIZED1 <= 0; |
end |
else |
if (timings_en) |
begin |
wait_m1 <= DFFE_m1_ff1; |
wait_m_ALTERA_SYNTHESIZED1 <= DFFE_m1_ff1; |
end |
end |
|
269,7 → 273,7
else |
if (timings_en) |
begin |
DFFE_m1_ff3 <= wait_m1; |
DFFE_m1_ff3 <= wait_m_ALTERA_SYNTHESIZED1; |
end |
end |
|
288,7 → 292,7
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
302,7 → 306,7
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
316,21 → 320,21
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
SYNTHESIZED_WIRE_17 <= 0; |
SYNTHESIZED_WIRE_19 <= 0; |
end |
else |
if (timings_en) |
begin |
SYNTHESIZED_WIRE_17 <= SYNTHESIZED_WIRE_18; |
SYNTHESIZED_WIRE_19 <= SYNTHESIZED_WIRE_18; |
end |
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
339,7 → 343,7
else |
if (timings_en) |
begin |
DFFE_mreq_ff2 <= SYNTHESIZED_WIRE_17; |
DFFE_mreq_ff2 <= SYNTHESIZED_WIRE_19; |
end |
end |
|
358,7 → 362,7
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
372,7 → 376,7
end |
|
|
always@(posedge SYNTHESIZED_WIRE_19 or negedge nreset) |
always@(posedge SYNTHESIZED_WIRE_20 or negedge nreset) |
begin |
if (!nreset) |
begin |
385,13 → 389,15
end |
end |
|
assign SYNTHESIZED_WIRE_19 = ~clk; |
assign SYNTHESIZED_WIRE_20 = ~clk; |
|
assign nq2 = ~q2; |
|
assign SYNTHESIZED_WIRE_2 = ~DFFE_mreq_ff2; |
assign SYNTHESIZED_WIRE_2 = ~nreset; |
|
assign SYNTHESIZED_WIRE_3 = ~DFFE_mreq_ff2; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
419,5 → 425,6
end |
end |
|
assign wait_m1 = wait_m_ALTERA_SYNTHESIZED1; |
|
endmodule |
/a-z80/trunk/cpu/control/resets.bdf
100,6 → 100,22
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 32 640 208 656) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "hold_clk_wait" (rect 9 0 73 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(output) |
(rect 776 488 952 504) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
146,7 → 162,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
178,7 → 194,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
210,7 → 226,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
235,7 → 251,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
267,7 → 283,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
320,7 → 336,7
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
349,7 → 365,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
402,7 → 418,7
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
432,7 → 448,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
478,7 → 494,7
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
507,7 → 523,7
(pt 16 0) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 7 2 19 19)(font "Courier New" (bold))(vertical)(invisible)) |
(text "OUT" (rect 7 2 19 16)(font "Courier New" (bold))(vertical)(invisible)) |
(line (pt 16 9)(pt 16 0)) |
) |
(drawing |
519,60 → 535,66
(rotate90) |
) |
(symbol |
(rect 296 520 360 600) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "res1" (rect 3 68 24 80)(font "Arial" )) |
(rect 680 456 744 536) |
(text "OR4" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst" (rect 3 69 20 81)(font "Arial" )) |
(port |
(pt 32 80) |
(pt 0 16) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 0 40) |
(pt 0 48) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
(text "IN3" (rect 2 39 19 51)(font "Courier New" (bold))(invisible)) |
(text "IN3" (rect 2 39 19 51)(font "Courier New" (bold))(invisible)) |
(line (pt 0 48)(pt 15 48)) |
) |
(port |
(pt 0 24) |
(pt 0 64) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
(text "IN4" (rect 2 55 19 67)(font "Courier New" (bold))(invisible)) |
(text "IN4" (rect 2 55 19 67)(font "Courier New" (bold))(invisible)) |
(line (pt 0 64)(pt 13 64)) |
) |
(port |
(pt 32 0) |
(pt 0 32) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 15 32)) |
) |
(port |
(pt 64 24) |
(pt 64 40) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
(text "OUT" (rect 48 31 65 43)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 31 62 43)(font "Courier New" (bold))(invisible)) |
(line (pt 48 40)(pt 64 40)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
(line (pt 13 67)(pt 13 51)) |
(line (pt 25 52)(pt 13 52)) |
(line (pt 13 12)(pt 13 29)) |
(line (pt 13 29)(pt 25 29)) |
(arc (pt 7 45)(pt 7 35)(rect -14 24 19 57)) |
(arc (pt 49 40)(pt 25 29)(rect -6 29 57 92)) |
(arc (pt 25 51)(pt 49 40)(rect -6 -11 57 52)) |
) |
) |
(symbol |
(rect 408 520 472 600) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "res2" (rect 3 68 24 80)(font "Arial" )) |
(rect 520 520 584 600) |
(text "DFFE" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "intr_ff3" (rect 3 68 39 80)(font "Arial" )) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
580,13 → 602,6
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 24) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
594,35 → 609,74
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 32 0) |
(pt 0 40) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 50 31 62)(font "Courier New" (bold))) |
(text "ENA" (rect 14 50 31 62)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 520 520 584 600) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "res3" (rect 3 68 24 80)(font "Arial" )) |
(rect 216 632 264 664) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
(text "inst4" (rect 3 21 26 33)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
(line (pt 13 25)(pt 13 7)) |
(line (pt 13 7)(pt 31 16)) |
(line (pt 13 25)(pt 31 16)) |
(circle (rect 31 12 39 20)) |
) |
) |
(symbol |
(rect 296 520 360 600) |
(text "DFFE" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "intr_ff4" (rect 3 68 39 80)(font "Arial" )) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
630,13 → 684,6
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 24) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
644,77 → 691,92
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 32 0) |
(pt 0 40) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 50 31 62)(font "Courier New" (bold))) |
(text "ENA" (rect 14 50 31 62)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 680 456 744 536) |
(text "OR4" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst" (rect 3 69 20 81)(font "Arial" )) |
(rect 408 520 472 600) |
(text "DFFE" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "intr_ff5" (rect 3 68 39 80)(font "Arial" )) |
(port |
(pt 0 16) |
(pt 32 0) |
(input) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 0 48) |
(pt 32 80) |
(input) |
(text "IN3" (rect 2 39 19 51)(font "Courier New" (bold))(invisible)) |
(text "IN3" (rect 2 39 19 51)(font "Courier New" (bold))(invisible)) |
(line (pt 0 48)(pt 15 48)) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 64) |
(pt 0 24) |
(input) |
(text "IN4" (rect 2 55 19 67)(font "Courier New" (bold))(invisible)) |
(text "IN4" (rect 2 55 19 67)(font "Courier New" (bold))(invisible)) |
(line (pt 0 64)(pt 13 64)) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 32) |
(pt 0 40) |
(input) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 15 32)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 64 40) |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 50 31 62)(font "Courier New" (bold))) |
(text "ENA" (rect 14 50 31 62)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 64 24) |
(output) |
(text "OUT" (rect 48 31 65 43)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 31 65 43)(font "Courier New" (bold))(invisible)) |
(line (pt 48 40)(pt 64 40)) |
(text "Q" (rect 44 20 49 32)(font "Courier New" (bold))) |
(text "Q" (rect 44 20 48 32)(font "Courier New" (bold))) |
(line (pt 53 24)(pt 64 24)) |
) |
(drawing |
(line (pt 13 67)(pt 13 51)) |
(line (pt 25 52)(pt 13 52)) |
(line (pt 13 12)(pt 13 29)) |
(line (pt 13 29)(pt 25 29)) |
(arc (pt 7 45)(pt 7 35)(rect -14 24 19 57)) |
(arc (pt 49 40)(pt 25 29)(rect -6 29 57 92)) |
(arc (pt 25 51)(pt 49 40)(rect -6 -11 57 52)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(connector |
907,106 → 969,146
(pt 624 544) |
) |
(connector |
(pt 680 504) |
(pt 496 504) |
(text "clrpc_int" (rect 630 456 671 468)(font "Arial" )) |
(pt 680 472) |
(pt 624 472) |
) |
(connector |
(pt 496 504) |
(pt 496 544) |
(pt 744 496) |
(pt 776 496) |
) |
(connector |
(pt 472 544) |
(pt 496 544) |
(pt 712 296) |
(pt 712 336) |
) |
(connector |
(pt 496 544) |
(pt 520 544) |
(pt 712 336) |
(pt 712 424) |
) |
(connector |
(pt 232 320) |
(pt 232 352) |
) |
(connector |
(pt 208 648) |
(pt 216 648) |
) |
(connector |
(pt 296 560) |
(pt 264 560) |
) |
(connector |
(pt 264 616) |
(pt 264 560) |
) |
(connector |
(text "nclk" (rect 216 600 236 612)(font "Arial" )) |
(pt 208 616) |
(pt 264 616) |
) |
(connector |
(pt 712 424) |
(pt 264 424) |
) |
(connector |
(pt 264 424) |
(pt 264 544) |
) |
(connector |
(pt 296 544) |
(pt 264 544) |
) |
(connector |
(pt 408 560) |
(pt 376 560) |
) |
(connector |
(pt 376 616) |
(pt 376 560) |
) |
(connector |
(pt 680 488) |
(pt 384 488) |
(pt 376 488) |
) |
(connector |
(pt 384 488) |
(pt 384 544) |
(pt 376 544) |
(pt 376 488) |
) |
(connector |
(pt 360 544) |
(pt 384 544) |
(pt 376 544) |
) |
(connector |
(pt 384 544) |
(pt 376 544) |
(pt 408 544) |
) |
(connector |
(text "clrpc_int" (rect 630 456 671 468)(font "Arial" )) |
(pt 680 472) |
(pt 624 472) |
(pt 520 560) |
(pt 488 560) |
) |
(connector |
(pt 744 496) |
(pt 776 496) |
(pt 488 560) |
(pt 488 616) |
) |
(connector |
(pt 712 296) |
(pt 712 336) |
(pt 264 616) |
(pt 376 616) |
) |
(connector |
(pt 712 336) |
(pt 712 424) |
(pt 376 616) |
(pt 488 616) |
) |
(connector |
(pt 712 424) |
(pt 272 424) |
(pt 680 504) |
(pt 488 504) |
) |
(connector |
(pt 272 424) |
(pt 272 544) |
(pt 488 544) |
(pt 488 504) |
) |
(connector |
(pt 296 544) |
(pt 272 544) |
(pt 472 544) |
(pt 488 544) |
) |
(connector |
(pt 520 560) |
(pt 496 560) |
(pt 488 544) |
(pt 520 544) |
) |
(connector |
(pt 496 560) |
(pt 496 616) |
(pt 504 648) |
(pt 504 576) |
) |
(connector |
(pt 232 320) |
(pt 232 352) |
(pt 520 576) |
(pt 504 576) |
) |
(connector |
(pt 408 560) |
(pt 384 560) |
(pt 408 576) |
(pt 392 576) |
) |
(connector |
(pt 384 560) |
(pt 384 616) |
(pt 392 576) |
(pt 392 648) |
) |
(connector |
(pt 496 616) |
(pt 384 616) |
(pt 392 648) |
(pt 504 648) |
) |
(connector |
(pt 296 560) |
(pt 272 560) |
(pt 296 576) |
(pt 280 576) |
) |
(connector |
(pt 272 560) |
(pt 272 616) |
(pt 280 576) |
(pt 280 648) |
) |
(connector |
(pt 272 616) |
(pt 384 616) |
(pt 264 648) |
(pt 280 648) |
) |
(connector |
(text "nclk" (rect 216 600 236 612)(font "Arial" )) |
(pt 208 616) |
(pt 272 616) |
(pt 280 648) |
(pt 392 648) |
) |
(junction (pt 232 144)) |
(junction (pt 368 96)) |
1016,11 → 1118,13
(junction (pt 320 320)) |
(junction (pt 232 352)) |
(junction (pt 712 224)) |
(junction (pt 496 544)) |
(junction (pt 384 544)) |
(junction (pt 712 336)) |
(junction (pt 384 616)) |
(junction (pt 272 616)) |
(junction (pt 264 616)) |
(junction (pt 376 616)) |
(junction (pt 376 544)) |
(junction (pt 488 544)) |
(junction (pt 392 648)) |
(junction (pt 280 648)) |
(text "Needed only for FPGAs" (rect 40 72 174 86)(font "Arial" (font_size 8))) |
(text "Special reset, USPTO 4,486,827 by Shima et al." (rect 40 24 371 40)(font "Arial" (font_size 10))(border)) |
(text "Required 3 clock reset cycles to clear PC and IR" (rect 304 464 576 478)(font "Arial" (font_size 8))) |
1033,7 → 1137,7
(section (rect 0 18 256 34)(text "DESIGNER" (rect 2 0 59 12)(font "Arial" ))(text "Goran Devic" (rect 56 2 135 17)(font "Arial" (font_size 9)))(border)) |
(section (rect 104 0 256 17)(text "MODULE" (rect 2 1 48 13)(font "Arial" ))(text "resets" (rect 43 2 86 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 0 0 256 17)(text "PROJECT" (rect 2 0 52 12)(font "Arial" ))(text "A-Z80" (rect 56 2 94 17)(font "Arial" (font_size 9)(bold)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.3" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(section (rect 192 35 256 51)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.4" (rect 43 3 60 17)(font "Arial" (font_size 8)))(border)) |
(drawing |
) |
) |
/a-z80/trunk/cpu/control/resets.bsf
20,9 → 20,9
*/ |
(header "symbol" (version "1.2")) |
(symbol |
(rect 16 16 168 144) |
(rect 16 16 184 176) |
(text "resets" (rect 5 0 41 14)(font "Arial" (font_size 8))) |
(text "inst" (rect 8 112 25 124)(font "Arial" )) |
(text "inst" (rect 8 144 25 156)(font "Arial" )) |
(port |
(pt 0 32) |
(input) |
59,20 → 59,27
(line (pt 0 96)(pt 16 96)) |
) |
(port |
(pt 152 32) |
(output) |
(text "clrpc" (rect 0 0 28 14)(font "Arial" (font_size 8))) |
(text "clrpc" (rect 103 27 131 41)(font "Arial" (font_size 8))) |
(line (pt 152 32)(pt 136 32)) |
(pt 0 112) |
(input) |
(text "hold_clk_wait" (rect 0 0 77 14)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 21 107 98 121)(font "Arial" (font_size 8))) |
(line (pt 0 112)(pt 16 112)) |
) |
(port |
(pt 152 48) |
(pt 168 32) |
(output) |
(text "nreset" (rect 0 0 36 14)(font "Arial" (font_size 8))) |
(text "nreset" (rect 95 43 131 57)(font "Arial" (font_size 8))) |
(line (pt 152 48)(pt 136 48)) |
(text "nreset" (rect 111 27 147 41)(font "Arial" (font_size 8))) |
(line (pt 168 32)(pt 152 32)) |
) |
(port |
(pt 168 48) |
(output) |
(text "clrpc" (rect 0 0 28 14)(font "Arial" (font_size 8))) |
(text "clrpc" (rect 119 43 147 57)(font "Arial" (font_size 8))) |
(line (pt 168 48)(pt 152 48)) |
) |
(drawing |
(rectangle (rect 16 16 136 112)) |
(rectangle (rect 16 16 152 144)) |
) |
) |
/a-z80/trunk/cpu/control/resets.v
14,7 → 14,7
|
// PROGRAM "Quartus II 64-Bit" |
// VERSION "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" |
// CREATED "Sat Feb 27 08:32:59 2016" |
// CREATED "Thu Dec 08 21:08:44 2016" |
|
module resets( |
reset_in, |
22,6 → 22,7
M1, |
T2, |
fpga_reset, |
hold_clk_wait, |
clrpc, |
nreset |
); |
32,6 → 33,7
input wire M1; |
input wire T2; |
input wire fpga_reset; |
input wire hold_clk_wait; |
output wire clrpc; |
output wire nreset; |
|
40,24 → 42,25
reg x1; |
wire x2; |
wire x3; |
wire SYNTHESIZED_WIRE_8; |
wire SYNTHESIZED_WIRE_11; |
wire SYNTHESIZED_WIRE_1; |
reg SYNTHESIZED_WIRE_9; |
reg DFF_res3; |
reg SYNTHESIZED_WIRE_10; |
wire SYNTHESIZED_WIRE_11; |
reg SYNTHESIZED_WIRE_12; |
reg DFFE_intr_ff3; |
reg SYNTHESIZED_WIRE_13; |
wire SYNTHESIZED_WIRE_14; |
wire SYNTHESIZED_WIRE_3; |
reg SYNTHESIZED_WIRE_12; |
wire SYNTHESIZED_WIRE_6; |
reg SYNTHESIZED_WIRE_15; |
wire SYNTHESIZED_WIRE_16; |
wire SYNTHESIZED_WIRE_9; |
|
assign nreset = SYNTHESIZED_WIRE_6; |
assign nreset = SYNTHESIZED_WIRE_9; |
|
|
|
|
always@(posedge nclk or negedge SYNTHESIZED_WIRE_8) |
always@(posedge nclk or negedge SYNTHESIZED_WIRE_11) |
begin |
if (!SYNTHESIZED_WIRE_8) |
if (!SYNTHESIZED_WIRE_11) |
begin |
x1 <= 1; |
end |
67,42 → 70,41
end |
end |
|
assign clrpc = clrpc_int | SYNTHESIZED_WIRE_9 | DFF_res3 | SYNTHESIZED_WIRE_10; |
assign clrpc = clrpc_int | SYNTHESIZED_WIRE_12 | DFFE_intr_ff3 | SYNTHESIZED_WIRE_13; |
|
assign SYNTHESIZED_WIRE_1 = ~reset_in; |
|
assign x2 = x1 & SYNTHESIZED_WIRE_11; |
assign x2 = x1 & SYNTHESIZED_WIRE_14; |
|
assign SYNTHESIZED_WIRE_11 = M1 & T2; |
assign SYNTHESIZED_WIRE_14 = M1 & T2; |
|
assign x3 = x1 & SYNTHESIZED_WIRE_3; |
|
assign SYNTHESIZED_WIRE_6 = ~SYNTHESIZED_WIRE_12; |
assign SYNTHESIZED_WIRE_9 = ~SYNTHESIZED_WIRE_15; |
|
assign SYNTHESIZED_WIRE_3 = ~SYNTHESIZED_WIRE_11; |
assign SYNTHESIZED_WIRE_16 = ~hold_clk_wait; |
|
assign SYNTHESIZED_WIRE_3 = ~SYNTHESIZED_WIRE_14; |
|
assign nclk = ~clk; |
|
assign SYNTHESIZED_WIRE_8 = ~fpga_reset; |
assign SYNTHESIZED_WIRE_11 = ~fpga_reset; |
|
|
always@(posedge clk or negedge SYNTHESIZED_WIRE_8) |
always@(posedge nclk) |
begin |
if (!SYNTHESIZED_WIRE_8) |
if (SYNTHESIZED_WIRE_16) |
begin |
SYNTHESIZED_WIRE_12 <= 1; |
DFFE_intr_ff3 <= SYNTHESIZED_WIRE_12; |
end |
else |
begin |
SYNTHESIZED_WIRE_12 <= x3; |
end |
end |
|
|
always@(posedge nclk) |
begin |
if (SYNTHESIZED_WIRE_16) |
begin |
SYNTHESIZED_WIRE_10 <= SYNTHESIZED_WIRE_12; |
SYNTHESIZED_WIRE_13 <= SYNTHESIZED_WIRE_15; |
end |
end |
|
109,29 → 111,35
|
always@(posedge nclk) |
begin |
if (SYNTHESIZED_WIRE_16) |
begin |
SYNTHESIZED_WIRE_9 <= SYNTHESIZED_WIRE_10; |
SYNTHESIZED_WIRE_12 <= SYNTHESIZED_WIRE_13; |
end |
end |
|
|
always@(posedge nclk) |
always@(posedge clk or negedge SYNTHESIZED_WIRE_11) |
begin |
if (!SYNTHESIZED_WIRE_11) |
begin |
DFF_res3 <= SYNTHESIZED_WIRE_9; |
SYNTHESIZED_WIRE_15 <= 1; |
end |
else |
begin |
SYNTHESIZED_WIRE_15 <= x3; |
end |
end |
|
|
always@(posedge nclk or negedge SYNTHESIZED_WIRE_6) |
always@(posedge nclk or negedge SYNTHESIZED_WIRE_9) |
begin |
if (!SYNTHESIZED_WIRE_6) |
if (!SYNTHESIZED_WIRE_9) |
begin |
clrpc_int <= 0; |
end |
else |
begin |
clrpc_int <= ~clrpc_int & x2 | clrpc_int & ~SYNTHESIZED_WIRE_11; |
clrpc_int <= ~clrpc_int & x2 | clrpc_int & ~SYNTHESIZED_WIRE_14; |
end |
end |
|
/a-z80/trunk/cpu/control/simulation/modelsim/wave_reset.do
6,6 → 6,7
add wave -noupdate /test_reset/M1 |
add wave -noupdate /test_reset/T2 |
add wave -noupdate -color Gold /test_reset/clrpc |
add wave -noupdate /test_reset/reset_block/hold_clk_wait |
add wave -noupdate /test_reset/nreset |
add wave -noupdate -color {Cadet Blue} /test_reset/reset_block/x1 |
add wave -noupdate -color {Cadet Blue} /test_reset/reset_block/x2 |
/a-z80/trunk/cpu/control/test_reset.sv
23,8 → 23,11
logic T2 = 0; |
|
wire clrpc; // Load 0 to PC |
wire hold_clk_wait; // Hold clrpc |
wire nreset; // Internal inverted reset signal |
|
assign hold_clk_wait = 0; // Will not test this case |
|
// ----------------- TEST ------------------- |
initial begin |
// Test normal reset sequence - 3 clocks long |
/a-z80/trunk/cpu/control/timing_macros.i
323,11 → 323,11
|
WZ=IX+d ixy_d=1; // Compute WZ=IX+d |
IX_IY ctl_state_ixiy_we=1; ctl_state_iy_set=op5; setIXIY=1; // IX/IY prefix |
CLR_IX_IY ctl_state_ixiy_we=1; ctl_state_ixiy_clr=~setIXIY; // Clear IX/IY flag |
CLR_IX_IY ctl_state_ixiy_we=1; ctl_state_ixiy_clr=~setIXIY; // Clear IX/IY flag if not explicitly set |
|
CB ctl_state_tbl_cb_set=1; setCBED=1; // CB-table prefix |
ED ctl_state_tbl_ed_set=1; setCBED=1; // ED-table prefix |
CLR_CB_ED ctl_state_tbl_clr=~setCBED; // Clear CB/ED prefix |
CB ctl_state_tbl_we=1; ctl_state_tbl_cb_set=1; // CB-table prefix |
ED ctl_state_tbl_we=1; ctl_state_tbl_ed_set=1; // ED-table prefix |
CLR_CB_ED ctl_state_tbl_we=1; // Clear CB/ED prefix if not explicitly set |
|
// If the NF is set, complement HF and CF on the way out to the bus |
// This is used to correctly set those flags after subtraction operations |
/a-z80/trunk/cpu/export.py
23,7 → 23,9
if len(sys.argv) != 2: |
print ("\nUsage: export.py <destination-folder>\n") |
print ("Copies all core A-Z80 Verilog files to a destination of your choice.") |
print ("The files copied are necessary and sufficient to include with your project.") |
print ("The files copied are necessary and sufficient to include with your project.\n") |
print ("Note for the users of Lattice FPGA toolset: instead of data_pins.v, manually") |
print ("copy and use data_pins_lattice.v file instead.") |
exit(-1) |
|
dest = sys.argv[1] |
/a-z80/trunk/cpu/registers/reg_control.bdf
340,6 → 340,22
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 32 848 208 864) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "hold_clk_wait" (rect 9 0 73 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(output) |
(rect 1144 216 1320 232) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
722,7 → 738,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
747,7 → 763,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
758,56 → 774,6
) |
) |
(symbol |
(rect 336 440 400 520) |
(text "TFF" (rect 1 0 18 10)(font "Arial" (font_size 6))) |
(text "inst7" (rect 3 68 26 80)(font "Arial" )) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 584 144 648 192) |
(text "AND2" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "inst8" (rect 3 37 26 49)(font "Arial" )) |
829,7 → 795,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
854,7 → 820,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
879,7 → 845,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
911,7 → 877,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
943,7 → 909,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
968,7 → 934,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
993,7 → 959,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
1004,156 → 970,6
) |
) |
(symbol |
(rect 680 800 744 880) |
(text "TFF" (rect 1 0 18 10)(font "Arial" (font_size 6))) |
(text "inst9" (rect 3 68 26 80)(font "Arial" )) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 680 488 744 568) |
(text "TFF" (rect 1 0 18 10)(font "Arial" (font_size 6))) |
(text "inst24" (rect 3 68 32 80)(font "Arial" )) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 680 376 744 456) |
(text "TFF" (rect 1 0 18 10)(font "Arial" (font_size 6))) |
(text "inst26" (rect 3 68 32 80)(font "Arial" )) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(text "T" (rect 16 20 21 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 48 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 944 616 1008 664) |
(text "AND2" (rect 1 0 25 10)(font "Arial" (font_size 6))) |
(text "i2" (rect 3 37 11 49)(font "Arial" )) |
1175,7 → 991,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1207,7 → 1023,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1232,7 → 1048,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
1264,7 → 1080,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1296,7 → 1112,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1328,7 → 1144,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1353,7 → 1169,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
1385,7 → 1201,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1417,7 → 1233,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1449,7 → 1265,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1481,7 → 1297,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1513,7 → 1329,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1538,7 → 1354,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
1570,7 → 1386,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1595,7 → 1411,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
1620,7 → 1436,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
1652,7 → 1468,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
1685,7 → 1501,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1717,7 → 1533,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1749,7 → 1565,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
1782,7 → 1598,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1814,7 → 1630,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1846,7 → 1662,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
1879,7 → 1695,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1911,7 → 1727,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
1943,7 → 1759,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
1976,7 → 1792,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2008,7 → 1824,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2040,7 → 1856,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2072,7 → 1888,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2104,7 → 1920,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2136,7 → 1952,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2168,7 → 1984,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2200,7 → 2016,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2232,7 → 2048,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2257,7 → 2073,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
2289,7 → 2105,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
2322,7 → 2138,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 48 24)(pt 64 24)) |
) |
(drawing |
2348,7 → 2164,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
2380,7 → 2196,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 42 24)(pt 64 24)) |
) |
(drawing |
2405,7 → 2221,7
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
2444,7 → 2260,7
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 43 24)(pt 64 24)) |
) |
(drawing |
2454,6 → 2270,259
(arc (pt 31 36)(pt 31 12)(rect 19 12 44 37)) |
) |
) |
(symbol |
(rect 680 800 744 880) |
(text "TFFE" (rect 1 0 24 10)(font "Arial" (font_size 6))) |
(text "inst20" (rect 3 68 32 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 3)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 68 36 76)) |
(circle (rect 28 4 36 12)) |
) |
) |
(symbol |
(rect 680 376 744 456) |
(text "TFFE" (rect 1 0 24 10)(font "Arial" (font_size 6))) |
(text "inst30" (rect 3 68 32 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 3)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 68 36 76)) |
(circle (rect 28 4 36 12)) |
) |
) |
(symbol |
(rect 680 488 744 568) |
(text "TFFE" (rect 1 0 24 10)(font "Arial" (font_size 6))) |
(text "inst34" (rect 3 68 32 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 3)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 68 36 76)) |
(circle (rect 28 4 36 12)) |
) |
) |
(symbol |
(rect 336 440 400 520) |
(text "TFFE" (rect 1 0 24 10)(font "Arial" (font_size 6))) |
(text "inst35" (rect 3 68 32 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 24) |
(input) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "T" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 2 28 19 40)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 56) |
(input) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(text "ENA" (rect 14 49 31 61)(font "Courier New" (bold))) |
(line (pt 0 56)(pt 12 56)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 3)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 68)(pt 52 68)) |
(line (pt 12 12)(pt 52 12)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 12 34)(pt 19 41)) |
(line (pt 18 41)(pt 12 47)) |
(circle (rect 28 68 36 76)) |
(circle (rect 28 4 36 12)) |
) |
) |
(symbol |
(rect 328 840 376 872) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
(text "inst7" (rect 3 21 26 33)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
(line (pt 13 25)(pt 13 7)) |
(line (pt 13 7)(pt 31 16)) |
(line (pt 13 25)(pt 31 16)) |
(circle (rect 31 12 39 20)) |
) |
) |
(connector |
(pt 616 680) |
(pt 600 680) |
3501,6 → 3570,45
(pt 400 1344) |
(pt 552 1344) |
) |
(connector |
(pt 336 496) |
(pt 312 496) |
) |
(connector |
(pt 208 856) |
(pt 328 856) |
) |
(connector |
(pt 312 496) |
(pt 312 800) |
) |
(connector |
(pt 312 800) |
(pt 528 800) |
) |
(connector |
(pt 528 800) |
(pt 528 856) |
) |
(connector |
(pt 528 856) |
(pt 680 856) |
) |
(connector |
(text "n_hold_clk_wait" (rect 400 840 476 852)(font "Arial" )) |
(pt 376 856) |
(pt 528 856) |
) |
(connector |
(text "n_hold_clk_wait" (rect 607 544 683 556)(font "Arial" )) |
(pt 680 544) |
(pt 656 544) |
) |
(connector |
(text "n_hold_clk_wait" (rect 608 432 684 444)(font "Arial" )) |
(pt 680 432) |
(pt 656 432) |
) |
(junction (pt 600 624)) |
(junction (pt 264 312)) |
(junction (pt 264 632)) |
3555,6 → 3663,7
(junction (pt 400 1312)) |
(junction (pt 640 1240)) |
(junction (pt 640 1408)) |
(junction (pt 528 856)) |
(text "BC" (rect 440 120 456 134)(font "Arial" (font_size 8))) |
(text "2'b00" (rect 328 120 358 134)(font "Arial" (font_size 8))) |
(text "2'b01" (rect 328 280 358 294)(font "Arial" (font_size 8))) |
3581,7 → 3690,7
(section (rect 130 0 320 20)(text "MODULE" (rect 2 1 48 13)(font "Arial" ))(text "reg_control" (rect 43 2 146 21)(font "Arial" (font_size 12)(bold)))(border)) |
(section (rect 0 21 320 40)(text "DESIGNER" (rect 2 0 59 12)(font "Arial" ))(text "Goran Devic" (rect 56 2 151 19)(font "Arial" (font_size 11)))(border)) |
(section (rect 0 41 240 60)(text "DATE" (rect 2 0 30 12)(font "Arial" ))(text "May 17, 2014, 2016" (rect 56 3 191 19)(font "Arial" (font_size 10)))(border)) |
(section (rect 241 41 320 60)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.3" (rect 43 3 64 19)(font "Arial" (font_size 10)))(border)) |
(section (rect 241 41 320 60)(text "REV" (rect 2 1 25 13)(font "Arial" ))(text "1.4" (rect 43 3 64 19)(font "Arial" (font_size 10)))(border)) |
(drawing |
) |
) |
/a-z80/trunk/cpu/registers/reg_control.bsf
96,74 → 96,81
(port |
(pt 0 192) |
(input) |
(text "ctl_reg_use_sp" (rect 0 0 88 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_use_sp" (rect 21 187 109 201)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 0 0 77 14)(font "Arial" (font_size 8))) |
(text "hold_clk_wait" (rect 21 187 98 201)(font "Arial" (font_size 8))) |
(line (pt 0 192)(pt 16 192)) |
) |
(port |
(pt 0 208) |
(input) |
(text "ctl_reg_sys_we_hi" (rect 0 0 109 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we_hi" (rect 21 203 130 217)(font "Arial" (font_size 8))) |
(text "ctl_reg_use_sp" (rect 0 0 88 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_use_sp" (rect 21 203 109 217)(font "Arial" (font_size 8))) |
(line (pt 0 208)(pt 16 208)) |
) |
(port |
(pt 0 224) |
(input) |
(text "ctl_reg_sys_we" (rect 0 0 93 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we" (rect 21 219 114 233)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we_hi" (rect 0 0 109 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we_hi" (rect 21 219 130 233)(font "Arial" (font_size 8))) |
(line (pt 0 224)(pt 16 224)) |
) |
(port |
(pt 0 240) |
(input) |
(text "ctl_reg_sys_we_lo" (rect 0 0 109 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we_lo" (rect 21 235 130 249)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we" (rect 0 0 93 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we" (rect 21 235 114 249)(font "Arial" (font_size 8))) |
(line (pt 0 240)(pt 16 240)) |
) |
(port |
(pt 0 256) |
(input) |
(text "ctl_reg_sys_hilo[1..0]" (rect 0 0 121 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_hilo[1..0]" (rect 21 251 142 265)(font "Arial" (font_size 8))) |
(line (pt 0 256)(pt 16 256)(line_width 3)) |
(text "ctl_reg_sys_we_lo" (rect 0 0 109 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_we_lo" (rect 21 251 130 265)(font "Arial" (font_size 8))) |
(line (pt 0 256)(pt 16 256)) |
) |
(port |
(pt 0 272) |
(input) |
(text "ctl_sw_4d" (rect 0 0 60 14)(font "Arial" (font_size 8))) |
(text "ctl_sw_4d" (rect 21 267 81 281)(font "Arial" (font_size 8))) |
(line (pt 0 272)(pt 16 272)) |
(text "ctl_reg_sys_hilo[1..0]" (rect 0 0 121 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sys_hilo[1..0]" (rect 21 267 142 281)(font "Arial" (font_size 8))) |
(line (pt 0 272)(pt 16 272)(line_width 3)) |
) |
(port |
(pt 0 288) |
(input) |
(text "ctl_reg_sel_ir" (rect 0 0 76 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_ir" (rect 21 283 97 297)(font "Arial" (font_size 8))) |
(text "ctl_sw_4d" (rect 0 0 60 14)(font "Arial" (font_size 8))) |
(text "ctl_sw_4d" (rect 21 283 81 297)(font "Arial" (font_size 8))) |
(line (pt 0 288)(pt 16 288)) |
) |
(port |
(pt 0 304) |
(input) |
(text "ctl_reg_sel_pc" (rect 0 0 83 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_pc" (rect 21 299 104 313)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_ir" (rect 0 0 76 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_ir" (rect 21 299 97 313)(font "Arial" (font_size 8))) |
(line (pt 0 304)(pt 16 304)) |
) |
(port |
(pt 0 320) |
(input) |
(text "ctl_reg_not_pc" (rect 0 0 84 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_not_pc" (rect 21 315 105 329)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_pc" (rect 0 0 83 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_pc" (rect 21 315 104 329)(font "Arial" (font_size 8))) |
(line (pt 0 320)(pt 16 320)) |
) |
(port |
(pt 0 336) |
(input) |
(text "ctl_reg_sel_wz" (rect 0 0 88 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_wz" (rect 21 331 109 345)(font "Arial" (font_size 8))) |
(text "ctl_reg_not_pc" (rect 0 0 84 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_not_pc" (rect 21 331 105 345)(font "Arial" (font_size 8))) |
(line (pt 0 336)(pt 16 336)) |
) |
(port |
(pt 0 352) |
(input) |
(text "ctl_reg_sel_wz" (rect 0 0 88 14)(font "Arial" (font_size 8))) |
(text "ctl_reg_sel_wz" (rect 21 347 109 361)(font "Arial" (font_size 8))) |
(line (pt 0 352)(pt 16 352)) |
) |
(port |
(pt 264 32) |
(output) |
(text "reg_gp_we" (rect 0 0 66 14)(font "Arial" (font_size 8))) |
/a-z80/trunk/cpu/registers/reg_control.v
14,7 → 14,7
|
// PROGRAM "Quartus II 64-Bit" |
// VERSION "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" |
// CREATED "Tue Mar 08 20:46:27 2016" |
// CREATED "Thu Dec 08 22:19:25 2016" |
|
module reg_control( |
ctl_reg_exx, |
34,6 → 34,7
ctl_reg_sys_we, |
clk, |
ctl_sw_4d, |
hold_clk_wait, |
ctl_reg_gp_hilo, |
ctl_reg_gp_sel, |
ctl_reg_sys_hilo, |
80,6 → 81,7
input wire ctl_reg_sys_we; |
input wire clk; |
input wire ctl_sw_4d; |
input wire hold_clk_wait; |
input wire [1:0] ctl_reg_gp_hilo; |
input wire [1:0] ctl_reg_gp_sel; |
input wire [1:0] ctl_reg_sys_hilo; |
111,6 → 113,7
reg bank_exx; |
reg bank_hl_de1; |
reg bank_hl_de2; |
wire n_hold_clk_wait; |
wire reg_sys_we_lo_ALTERA_SYNTHESIZED; |
wire SYNTHESIZED_WIRE_52; |
wire SYNTHESIZED_WIRE_53; |
172,7 → 175,7
|
assign reg_sel_ix = SYNTHESIZED_WIRE_56 & use_ix; |
|
assign SYNTHESIZED_WIRE_37 = ctl_reg_ex_de_hl & SYNTHESIZED_WIRE_53; |
assign SYNTHESIZED_WIRE_50 = ctl_reg_ex_de_hl & SYNTHESIZED_WIRE_53; |
|
assign reg_sel_iy = SYNTHESIZED_WIRE_56 & SYNTHESIZED_WIRE_10; |
|
180,15 → 183,15
|
assign SYNTHESIZED_WIRE_2 = ~bank_af; |
|
assign SYNTHESIZED_WIRE_48 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_58; |
assign SYNTHESIZED_WIRE_47 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_58; |
|
assign SYNTHESIZED_WIRE_47 = bank_hl_de2 & SYNTHESIZED_WIRE_59; |
assign SYNTHESIZED_WIRE_46 = bank_hl_de2 & SYNTHESIZED_WIRE_59; |
|
assign SYNTHESIZED_WIRE_41 = SYNTHESIZED_WIRE_60 & SYNTHESIZED_WIRE_58; |
assign SYNTHESIZED_WIRE_39 = SYNTHESIZED_WIRE_60 & SYNTHESIZED_WIRE_58; |
|
assign SYNTHESIZED_WIRE_50 = bank_hl_de2 & SYNTHESIZED_WIRE_58; |
assign SYNTHESIZED_WIRE_49 = bank_hl_de2 & SYNTHESIZED_WIRE_58; |
|
assign SYNTHESIZED_WIRE_49 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_59; |
assign SYNTHESIZED_WIRE_48 = SYNTHESIZED_WIRE_57 & SYNTHESIZED_WIRE_59; |
|
assign reg_sel_de = SYNTHESIZED_WIRE_53 & SYNTHESIZED_WIRE_21; |
|
198,13 → 201,13
|
assign reg_sel_hl2 = bank_exx & SYNTHESIZED_WIRE_25; |
|
assign SYNTHESIZED_WIRE_40 = bank_hl_de1 & SYNTHESIZED_WIRE_59; |
assign SYNTHESIZED_WIRE_38 = bank_hl_de1 & SYNTHESIZED_WIRE_59; |
|
assign SYNTHESIZED_WIRE_53 = ~bank_exx; |
|
assign SYNTHESIZED_WIRE_46 = bank_hl_de1 & SYNTHESIZED_WIRE_58; |
assign SYNTHESIZED_WIRE_45 = bank_hl_de1 & SYNTHESIZED_WIRE_58; |
|
assign SYNTHESIZED_WIRE_45 = SYNTHESIZED_WIRE_60 & SYNTHESIZED_WIRE_59; |
assign SYNTHESIZED_WIRE_44 = SYNTHESIZED_WIRE_60 & SYNTHESIZED_WIRE_59; |
|
assign SYNTHESIZED_WIRE_52 = SYNTHESIZED_WIRE_30 & SYNTHESIZED_WIRE_31; |
|
224,34 → 227,45
|
assign SYNTHESIZED_WIRE_56 = SYNTHESIZED_WIRE_61 & use_ixiy; |
|
assign SYNTHESIZED_WIRE_44 = ~ctl_reg_gp_sel[0]; |
assign SYNTHESIZED_WIRE_42 = ~ctl_reg_gp_sel[0]; |
|
assign SYNTHESIZED_WIRE_39 = ctl_reg_ex_de_hl & bank_exx; |
assign SYNTHESIZED_WIRE_43 = ctl_reg_ex_de_hl & bank_exx; |
|
assign SYNTHESIZED_WIRE_34 = ~use_ixiy; |
|
assign SYNTHESIZED_WIRE_59 = ctl_reg_gp_sel[0] & SYNTHESIZED_WIRE_36; |
|
assign SYNTHESIZED_WIRE_10 = ~use_ix; |
|
assign SYNTHESIZED_WIRE_57 = ~bank_hl_de2; |
|
assign SYNTHESIZED_WIRE_43 = ~reg_sys_we_lo_ALTERA_SYNTHESIZED; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
begin |
bank_hl_de1 <= 0; |
bank_af <= 0; |
end |
else |
bank_hl_de1 <= bank_hl_de1 ^ SYNTHESIZED_WIRE_37; |
if (n_hold_clk_wait) |
begin |
bank_af <= bank_af ^ ctl_reg_ex_af; |
end |
end |
|
assign SYNTHESIZED_WIRE_42 = ~SYNTHESIZED_WIRE_38; |
assign SYNTHESIZED_WIRE_10 = ~use_ix; |
|
assign SYNTHESIZED_WIRE_57 = ~bank_hl_de2; |
|
assign SYNTHESIZED_WIRE_41 = ~reg_sys_we_lo_ALTERA_SYNTHESIZED; |
|
assign SYNTHESIZED_WIRE_40 = ~SYNTHESIZED_WIRE_37; |
|
assign SYNTHESIZED_WIRE_23 = SYNTHESIZED_WIRE_38 | SYNTHESIZED_WIRE_39; |
|
assign reg_sw_4d_hi = ctl_sw_4d & SYNTHESIZED_WIRE_40; |
|
assign SYNTHESIZED_WIRE_37 = ctl_reg_sys_hilo[1] & SYNTHESIZED_WIRE_41 & ctl_reg_sel_ir; |
|
assign SYNTHESIZED_WIRE_61 = SYNTHESIZED_WIRE_42 & ctl_reg_gp_sel[1]; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
259,53 → 273,56
bank_hl_de2 <= 0; |
end |
else |
bank_hl_de2 <= bank_hl_de2 ^ SYNTHESIZED_WIRE_39; |
if (n_hold_clk_wait) |
begin |
bank_hl_de2 <= bank_hl_de2 ^ SYNTHESIZED_WIRE_43; |
end |
end |
|
assign SYNTHESIZED_WIRE_23 = SYNTHESIZED_WIRE_40 | SYNTHESIZED_WIRE_41; |
assign SYNTHESIZED_WIRE_21 = SYNTHESIZED_WIRE_44 | SYNTHESIZED_WIRE_45; |
|
assign reg_sw_4d_hi = ctl_sw_4d & SYNTHESIZED_WIRE_42; |
assign SYNTHESIZED_WIRE_25 = SYNTHESIZED_WIRE_46 | SYNTHESIZED_WIRE_47; |
|
assign SYNTHESIZED_WIRE_38 = ctl_reg_sys_hilo[1] & SYNTHESIZED_WIRE_43 & ctl_reg_sel_ir; |
assign SYNTHESIZED_WIRE_24 = SYNTHESIZED_WIRE_48 | SYNTHESIZED_WIRE_49; |
|
assign SYNTHESIZED_WIRE_61 = SYNTHESIZED_WIRE_44 & ctl_reg_gp_sel[1]; |
|
assign SYNTHESIZED_WIRE_21 = SYNTHESIZED_WIRE_45 | SYNTHESIZED_WIRE_46; |
|
assign SYNTHESIZED_WIRE_25 = SYNTHESIZED_WIRE_47 | SYNTHESIZED_WIRE_48; |
|
assign SYNTHESIZED_WIRE_24 = SYNTHESIZED_WIRE_49 | SYNTHESIZED_WIRE_50; |
|
assign SYNTHESIZED_WIRE_55 = ctl_reg_gp_sel[0] & ctl_reg_gp_sel[1]; |
|
assign SYNTHESIZED_WIRE_30 = ~ctl_reg_gp_sel[0]; |
|
assign SYNTHESIZED_WIRE_31 = ~ctl_reg_gp_sel[1]; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
begin |
bank_exx <= 0; |
bank_hl_de1 <= 0; |
end |
else |
bank_exx <= bank_exx ^ ctl_reg_exx; |
if (n_hold_clk_wait) |
begin |
bank_hl_de1 <= bank_hl_de1 ^ SYNTHESIZED_WIRE_50; |
end |
end |
|
assign reg_sel_bc2 = SYNTHESIZED_WIRE_52 & bank_exx; |
|
|
always@(posedge clk or negedge nreset) |
begin |
if (!nreset) |
begin |
bank_af <= 0; |
bank_exx <= 0; |
end |
else |
bank_af <= bank_af ^ ctl_reg_ex_af; |
if (n_hold_clk_wait) |
begin |
bank_exx <= bank_exx ^ ctl_reg_exx; |
end |
end |
|
assign SYNTHESIZED_WIRE_55 = ctl_reg_gp_sel[0] & ctl_reg_gp_sel[1]; |
|
assign SYNTHESIZED_WIRE_30 = ~ctl_reg_gp_sel[0]; |
|
assign SYNTHESIZED_WIRE_31 = ~ctl_reg_gp_sel[1]; |
|
assign n_hold_clk_wait = ~hold_clk_wait; |
|
assign reg_sel_bc2 = SYNTHESIZED_WIRE_52 & bank_exx; |
|
assign reg_sys_we_lo = reg_sys_we_lo_ALTERA_SYNTHESIZED; |
|
endmodule |
/a-z80/trunk/cpu/registers/test_registers.sv
49,6 → 49,7
logic ctl_reg_sys_we_sig=0; // Write to system register |
logic use_ixiy_sig=0; // Use IX or IY |
logic use_ix_sig=0; // Use IX and not IY |
logic hold_clk_wait_sig=0; // Hold all transitions |
|
logic ctl_reg_exx_sig=0; // Exchange register banks |
logic ctl_reg_ex_af_sig=0; // Exchange AF banks |
182,6 → 183,7
.ctl_reg_sys_we(ctl_reg_sys_we_sig) , // input ctl_reg_sys_we_sig |
.clk(clk) , // input clk |
.ctl_sw_4d (ctl_sw_4d_sig) , // input ctl_sw_4d |
.hold_clk_wait(hold_clk_wait_sig) , // input hold_clk_wait_sig |
.reg_sel_bc(reg_sel_bc_sig) , // output reg_sel_bc_sig |
.reg_sel_bc2(reg_sel_bc2_sig) , // output reg_sel_bc2_sig |
.reg_sel_ix(reg_sel_ix_sig) , // output reg_sel_ix_sig |
/a-z80/trunk/cpu/top-level-files.txt
1,6 → 1,9
This is a list of A-Z80 top-level files and their dependencies. |
These files comprise the A-Z80 CPU proper. Use export.py to copy |
them into your project folder. |
# This is a list of A-Z80 top-level files and their dependencies. |
# These files comprise the A-Z80 CPU proper. Use export.py to copy |
# them into your project folder. |
# |
# Note for the users of Lattice FPGA toolset: instead of data_pins.v |
# manually copy and use data_pins_lattice.v file instead. |
|
------ Control block ------- |
control/clk_delay.v |
/a-z80/trunk/cpu/toplevel/coremodules.vh
23,7 → 23,6
.ctl_state_ixiy_clr (ctl_state_ixiy_clr), |
.ctl_state_ixiy_we (ctl_state_ixiy_we), |
.ctl_state_halt_set (ctl_state_halt_set), |
.ctl_state_tbl_clr (ctl_state_tbl_clr), |
.ctl_state_tbl_ed_set (ctl_state_tbl_ed_set), |
.ctl_state_tbl_cb_set (ctl_state_tbl_cb_set), |
.ctl_state_alu (ctl_state_alu), |
33,6 → 32,8
.in_intr (in_intr), |
.in_nmi (in_nmi), |
.nreset (nreset), |
.ctl_state_tbl_we (ctl_state_tbl_we), |
.hold_clk_wait (hold_clk_wait), |
.in_halt (in_halt), |
.table_cb (table_cb), |
.table_ed (table_ed), |
48,11 → 49,11
.ctl_state_ixiy_clr (ctl_state_ixiy_clr), |
.ctl_state_ixiy_we (ctl_state_ixiy_we), |
.ctl_state_halt_set (ctl_state_halt_set), |
.ctl_state_tbl_clr (ctl_state_tbl_clr), |
.ctl_state_tbl_ed_set (ctl_state_tbl_ed_set), |
.ctl_state_tbl_cb_set (ctl_state_tbl_cb_set), |
.ctl_state_alu (ctl_state_alu), |
.ctl_repeat_we (ctl_repeat_we), |
.ctl_state_tbl_we (ctl_state_tbl_we), |
.ctl_iff1_iff2 (ctl_iff1_iff2), |
.ctl_iffx_we (ctl_iffx_we), |
.ctl_iffx_bit (ctl_iffx_bit), |
200,6 → 201,7
.ctl_ir_we (ctl_ir_we), |
.clk (clk), |
.nreset (nreset), |
.hold_clk_wait (hold_clk_wait), |
.db (db0[7:0]), |
.opcode (opcode) |
); |
231,6 → 233,7
.M1 (M1), |
.T2 (T2), |
.fpga_reset (fpga_reset), |
.hold_clk_wait (hold_clk_wait), |
.clrpc (clrpc), |
.nreset (nreset) |
); |
255,7 → 258,8
.nRD_out (nRD_out), |
.nWR_out (nWR_out), |
.nIORQ_out (nIORQ_out), |
.latch_wait (latch_wait) |
.latch_wait (latch_wait), |
.wait_m1 (wait_m1) |
); |
|
sequencer sequencer_( |
495,6 → 499,7
.ctl_reg_sys_we (ctl_reg_sys_we), |
.clk (clk), |
.ctl_sw_4d (ctl_sw_4d), |
.hold_clk_wait (hold_clk_wait), |
.ctl_reg_gp_hilo (ctl_reg_gp_hilo), |
.ctl_reg_gp_sel (ctl_reg_gp_sel), |
.ctl_reg_sys_hilo (ctl_reg_sys_hilo), |
/a-z80/trunk/cpu/toplevel/genfuse.py
19,8 → 19,12
# run_tests = -1 |
# regress = 0 |
# |
# Orthogonal to that, set m1wait to a non-zero value to test nWAIT insertion at |
# the first M1 cycle of an instruction. Change it to the number of T-clocks to |
# insert. |
# |
#------------------------------------------------------------------------------- |
# Copyright (C) 2014 Goran Devic |
# Copyright (C) 2016 Goran Devic |
# |
# This program is free software; you can redistribute it and/or modify it |
# under the terms of the GNU General Public License as published by the Free |
40,10 → 44,13
# Number of tests to run; use -1 to run all tests |
run_tests = 1 |
|
# Set this to 1 to use regression test files instead of 'tests.*' |
# It will run all regression tests (start_test, run_tests are ignored) |
# Set this to 1 to use regression test instead of selected or full 'tests.*' |
# Regression test is a shorter set of tests and ignores start_test and run_tests values |
regress = 1 |
|
# Set this to a number of WAIT cycles to add at M1 clock period or 0 not to test nWAIT |
m1wait = 0 |
|
#------------------------------------------------------------------------------ |
# Determine which test files to use |
tests_in = 'fuse/tests.in' |
100,12 → 107,11
ftest.write("force dut.reg_file_.reg_gp_we=0;\n") |
ftest.write("force dut.reg_control_.ctl_reg_sys_we=0;\n") |
ftest.write("force dut.z80_top_ifc_n.fpga_reset=1;\n") |
ftest.write("#2\n") |
ftest.write("#2 // Start test loop\n\n") |
total_clks = total_clks + 2 |
|
# Read each test from the testdat.in file |
while True: |
ftest.write("//" + "-" * 80 + "\n") |
if len(t1)==0 or run_tests==0: |
break |
run_tests = run_tests-1 |
122,7 → 128,7
# AF BC DE HL AF' BC' DE' HL' IX IY SP PC |
# I R IFF1 IFF2 IM <halted> <tstates> |
name = t1.pop(0) |
ftest.write("$fdisplay(f,\"Testing opcode " + name + "\");\n") |
ftest.write(" $fdisplay(f,\"Testing opcode " + name + "\");\n") |
name = name.split(" ")[0] |
r = t1.pop(0).split(' ') |
r = list(filter(None, r)) |
190,9 → 196,9
ftest.write(" force dut.address_latch_.Q=16'h" + r[11] +";\n") # Force PC into the address latch |
ftest.write(" release dut.reg_control_.ctl_reg_sys_we;\n") |
ftest.write(" release dut.reg_file_.reg_gp_we;\n") |
ftest.write("#3\n") # 1T (#2) overlaps the reset cycle |
total_clks = total_clks + 3 # We borrow 1T (#2) to to force the PC to be what our test wants... |
ftest.write(" release dut.address_latch_.Q;\n") |
ftest.write("#2 // Execute: M1/T1 start\n") # 1T (#2) overlaps the reset cycle |
ftest.write("#1 release dut.address_latch_.Q;\n") |
total_clks = total_clks + 3 # We borrow 1T (#2) to to force the PC to be what our test wants... |
ftest.write("#1\n") |
total_clks = total_clks + 1 |
|
215,8 → 221,15
|
ticks = int(s[6]) * 2 - 2 # We return 1T (#2) that we borrowed to set PC |
total_clks = total_clks + ticks |
ftest.write("#" + str(ticks) + " // Execute\n") |
|
# Test WAIT state insertion at the M1 clock cycle |
if m1wait: |
ftest.write(" z.nWAIT <= 0;\n") |
ftest.write("#" + str(m1wait * 2) + " z.nWAIT <= 1; // nWAIT during M1\n") |
total_clks = total_clks + m1wait * 2 |
|
ftest.write("#" + str(ticks) + " // Wait for opcode end\n") |
|
ftest.write(" force dut.reg_control_.ctl_reg_sys_we=0;\n") |
ftest.write("#2 pc=z.A;\n") # Extra 2T for the next instruction overlap & read PC on the ABus |
ftest.write("#2\n") # Complete this instruction |
278,10 → 291,13
# Read a list of IO checks that was compiled while parsing the initial condition |
while len(check_io)>0: |
ftest.write(check_io.pop(0)) |
ftest.write("#1 // End opcode\n\n") |
total_clks = total_clks + 1 |
|
# Write out the total number of clocks that this set of tests takes to execute |
ftest.write("`define TOTAL_CLKS " + str(total_clks) + "\n") |
ftest.write("$fdisplay(f,\"=== Tests completed ===\");\n") |
ftest.close() |
|
# Touch a file that includes 'test_fuse.vh' to ensure it will recompile correctly |
os.utime("test_fuse.sv", None) |
/a-z80/trunk/cpu/toplevel/globals.vh
23,11 → 23,11
wire ctl_state_ixiy_clr; |
wire ctl_state_ixiy_we; |
wire ctl_state_halt_set; |
wire ctl_state_tbl_clr; |
wire ctl_state_tbl_ed_set; |
wire ctl_state_tbl_cb_set; |
wire ctl_state_alu; |
wire ctl_repeat_we; |
wire ctl_state_tbl_we; |
wire ctl_iff1_iff2; |
wire ctl_iffx_we; |
wire ctl_iffx_bit; |
159,6 → 159,7
wire nWR_out; |
wire nIORQ_out; |
wire latch_wait; |
wire wait_m1; |
|
// Module: control/sequencer.v |
wire M1; |
/a-z80/trunk/cpu/toplevel/simulation/modelsim/wave_fuse.do
386,7 → 386,7
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_ixiy_clr |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_ixiy_we |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_halt_set |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_tbl_clr |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_tbl_we |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_tbl_ed_set |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_tbl_cb_set |
add wave -noupdate -group state /test_fuse/dut/decode_state_/ctl_state_alu |
/a-z80/trunk/cpu/toplevel/simulation/modelsim/wave_top.do
386,7 → 386,7
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_ixiy_clr |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_ixiy_we |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_halt_set |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_tbl_clr |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_tbl_we |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_tbl_ed_set |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_tbl_cb_set |
add wave -noupdate -group state /test_top/dut/decode_state_/ctl_state_alu |
/a-z80/trunk/cpu/toplevel/test_fuse.vh
4,13 → 4,13
force dut.reg_file_.reg_gp_we=0; |
force dut.reg_control_.ctl_reg_sys_we=0; |
force dut.z80_top_ifc_n.fpga_reset=1; |
#2 |
//-------------------------------------------------------------------------------- |
#2 // Start test loop |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 00 NOP"); |
$fdisplay(f,"Testing opcode 00 NOP"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
143,10 → 143,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
177,12 → 177,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode ed67 RRD"); |
$fdisplay(f,"Testing opcode ed67 RRD"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
318,10 → 319,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#34 // Execute |
#34 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
353,12 → 354,13
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
if (ram.Mem[47582]!==8'h69) $fdisplay(f,"* Mem[b9de]=%h !=69",ram.Mem[47582]); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode ed6f RLD"); |
$fdisplay(f,"Testing opcode ed6f RLD"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
494,10 → 496,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#34 // Execute |
#34 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
529,12 → 531,13
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
if (ram.Mem[16444]!==8'h45) $fdisplay(f,"* Mem[403c]=%h !=45",ram.Mem[16444]); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 81 ADD A,C"); |
$fdisplay(f,"Testing opcode 81 ADD A,C"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
669,10 → 672,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
703,12 → 706,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb41 BIT 0,C"); |
$fdisplay(f,"Testing opcode cb41 BIT 0,C"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
844,10 → 848,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
878,12 → 882,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb93 RES 2,E"); |
$fdisplay(f,"Testing opcode cb93 RES 2,E"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
1019,10 → 1024,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
1053,12 → 1058,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cbe5 SET 4,L"); |
$fdisplay(f,"Testing opcode cbe5 SET 4,L"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
1194,10 → 1200,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
1228,12 → 1234,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 8c ADC A,H"); |
$fdisplay(f,"Testing opcode 8c ADC A,H"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
1368,10 → 1375,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
1402,12 → 1409,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 92 SUB D"); |
$fdisplay(f,"Testing opcode 92 SUB D"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
1542,10 → 1550,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
1576,12 → 1584,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 9d SBC A,L"); |
$fdisplay(f,"Testing opcode 9d SBC A,L"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
1716,10 → 1725,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
1750,12 → 1759,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode a3 AND E"); |
$fdisplay(f,"Testing opcode a3 AND E"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
1890,10 → 1900,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
1924,12 → 1934,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode ae XOR (HL)"); |
$fdisplay(f,"Testing opcode ae XOR (HL)"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
2064,10 → 2075,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#12 // Execute |
#12 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
2098,12 → 2109,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode b4 OR H"); |
$fdisplay(f,"Testing opcode b4 OR H"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
2238,10 → 2250,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
2272,12 → 2284,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode bf CP A"); |
$fdisplay(f,"Testing opcode bf CP A"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
2412,10 → 2425,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
2446,12 → 2459,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 43 LD B,E"); |
$fdisplay(f,"Testing opcode 43 LD B,E"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
2586,10 → 2600,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
2620,12 → 2634,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 6e LD L,(HL)"); |
$fdisplay(f,"Testing opcode 6e LD L,(HL)"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
2760,10 → 2775,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#12 // Execute |
#12 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
2794,12 → 2809,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode e3 EX (SP),HL"); |
$fdisplay(f,"Testing opcode e3 EX (SP),HL"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
2935,10 → 2951,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#36 // Execute |
#36 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
2971,12 → 2987,13
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
if (ram.Mem[883]!==8'h22) $fdisplay(f,"* Mem[373]=%h !=22",ram.Mem[883]); |
if (ram.Mem[884]!==8'h4d) $fdisplay(f,"* Mem[374]=%h !=4d",ram.Mem[884]); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 03 INC BC"); |
$fdisplay(f,"Testing opcode 03 INC BC"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
3109,10 → 3126,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#10 // Execute |
#10 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
3143,12 → 3160,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 3b DEC SP"); |
$fdisplay(f,"Testing opcode 3b DEC SP"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
3281,10 → 3299,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#10 // Execute |
#10 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
3315,12 → 3333,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 07 RLCA"); |
$fdisplay(f,"Testing opcode 07 RLCA"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
3453,10 → 3472,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
3487,12 → 3506,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode 1f RRA"); |
$fdisplay(f,"Testing opcode 1f RRA"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
3625,10 → 3645,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#6 // Execute |
#6 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
3659,12 → 3679,13
if (pc!==16'h0001) $fdisplay(f,"* PC=%h !=0001",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h01) $fdisplay(f,"* Reg ir r=%h !=01",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb09 RRC C"); |
$fdisplay(f,"Testing opcode cb09 RRC C"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
3800,10 → 3821,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
3834,12 → 3855,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb11 RL C"); |
$fdisplay(f,"Testing opcode cb11 RL C"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
3975,10 → 3997,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
4009,12 → 4031,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb36 SLL (HL)*"); |
$fdisplay(f,"Testing opcode cb36 SLL (HL)*"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
4150,10 → 4173,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#28 // Execute |
#28 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
4185,12 → 4208,13
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
if (ram.Mem[27960]!==8'he3) $fdisplay(f,"* Mem[6d38]=%h !=e3",ram.Mem[27960]); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb52 BIT 2,D"); |
$fdisplay(f,"Testing opcode cb52 BIT 2,D"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
4326,10 → 4350,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
4360,12 → 4384,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cb93 RES 2,E"); |
$fdisplay(f,"Testing opcode cb93 RES 2,E"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
4501,10 → 4526,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
4535,12 → 4560,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode cbc4 SET 0,H"); |
$fdisplay(f,"Testing opcode cbc4 SET 0,H"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
4676,10 → 4702,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#14 // Execute |
#14 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
4710,12 → 4736,13
if (pc!==16'h0002) $fdisplay(f,"* PC=%h !=0002",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode dd75 LD (IX+d),L"); |
$fdisplay(f,"Testing opcode dd75 LD (IX+d),L"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
4850,10 → 4877,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#36 // Execute |
#36 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
4885,12 → 4912,13
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
if (ram.Mem[44668]!==8'h4f) $fdisplay(f,"* Mem[ae7c]=%h !=4f",ram.Mem[44668]); |
//-------------------------------------------------------------------------------- |
#1 // End opcode |
|
force dut.ir_.ctl_ir_we=1; |
force dut.ir_.db=0; |
#2 release dut.ir_.ctl_ir_we; |
release dut.ir_.db; |
$fdisplay(f,"Testing opcode dd4e LD C,(IX+d)"); |
$fdisplay(f,"Testing opcode dd4e LD C,(IX+d)"); |
// Preset af |
force dut.reg_file_.b2v_latch_af_lo.we=1; |
force dut.reg_file_.b2v_latch_af_hi.we=1; |
5027,10 → 5055,10
force dut.address_latch_.Q=16'h0000; |
release dut.reg_control_.ctl_reg_sys_we; |
release dut.reg_file_.reg_gp_we; |
#3 |
release dut.address_latch_.Q; |
#2 // Execute: M1/T1 start |
#1 release dut.address_latch_.Q; |
#1 |
#36 // Execute |
#36 // Wait for opcode end |
force dut.reg_control_.ctl_reg_sys_we=0; |
#2 pc=z.A; |
#2 |
5061,6 → 5089,7
if (pc!==16'h0003) $fdisplay(f,"* PC=%h !=0003",pc); |
if (dut.reg_file_.b2v_latch_ir_lo.latch!==8'h02) $fdisplay(f,"* Reg ir r=%h !=02",dut.reg_file_.b2v_latch_ir_lo.latch); |
if (dut.reg_file_.b2v_latch_ir_hi.latch!==8'h00) $fdisplay(f,"* Reg ir i=%h !=00",dut.reg_file_.b2v_latch_ir_hi.latch); |
//-------------------------------------------------------------------------------- |
`define TOTAL_CLKS 1559 |
#1 // End opcode |
|
`define TOTAL_CLKS 1588 |
$fdisplay(f,"=== Tests completed ==="); |
/a-z80/trunk/host/basic_de1/basic_de1.qsf
639,6 → 639,7
set_global_assignment -name VERILOG_FILE ../../cpu/registers/reg_file.v |
set_global_assignment -name VERILOG_FILE ../../cpu/registers/reg_latch.v |
set_global_assignment -name VERILOG_FILE ../common/uart.v |
set_global_assignment -name VERILOG_FILE ../common/wait_state.v |
set_global_assignment -name VERILOG_FILE basic_de1_fpga.sv |
set_global_assignment -name QIP_FILE ram.qip |
set_global_assignment -name QIP_FILE pll.qip |
/a-z80/trunk/host/basic_de1/basic_de1_ModelSim.sv
39,7 → 39,7
wire nHALT; |
wire nBUSACK; |
|
wire nWAIT = 1; |
wire nWAIT; |
wire nINT = nint; |
wire nNMI = nnmi; |
wire nBUSRQ = 1; |
47,6 → 47,15
wire [15:0] A; |
wire [7:0] D; |
|
// This is an optional, test feature: add M1/Memory Wait states as described in the Zilog manual |
reg nWAIT_M1_sig; |
reg nWAIT_Mem_sig; |
|
// *** Uncomment one of the following 3 choices ***: |
//assign nWAIT = nWAIT_M1_sig; // Add one wait state to an M1 cycle |
//assign nWAIT = nWAIT_Mem_sig; // Add one wait state to any memory cycle (M1 + memory read/write) |
assign nWAIT = 1; // Do not add wait cycles |
|
// ----------------- INTERNAL WIRES ----------------- |
wire [7:0] RamData; // RamData is a data writer from the RAM module |
wire RamWE; |
68,6 → 77,18
z80_top_direct_n z80_( .*, .nRESET(reset), .CLK(clk) ); |
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
// Instantiate gates to add Wait states to M1 and Memory cycles (for testing) |
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
wait_state wait_state_inst |
( |
.CLK(clk), |
.nM1(nM1), |
.nMREQ((nMREQ === z) ? 1'b1 : nMREQ), // Correct nMREQ from being tri-stated after reset |
.nWAIT_M1(nWAIT_M1_sig), |
.nWAIT_Mem(nWAIT_Mem_sig) |
); |
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
// Instantiate 16Kb of RAM memory |
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
ram ram_( .address(A[13:0]), .clock(clk), .data(D[7:0]), .wren(RamWE), .q(RamData[7:0]) ); |
/a-z80/trunk/host/basic_de1/basic_de1_fpga.sv
59,7 → 59,7
wire nHALT; |
wire nBUSACK; |
|
wire nWAIT = 1; |
wire nWAIT; |
wire nBUSRQ = 1; |
wire nINT = KEY1; |
wire nNMI = KEY2; |
67,6 → 67,15
wire [15:0] A; |
wire [7:0] D; |
|
// This is an optional, test feature: add M1/Memory Wait states as described in the Zilog manual |
reg nWAIT_M1_sig; |
reg nWAIT_Mem_sig; |
|
// *** Uncomment one of the following 3 choices ***: |
//assign nWAIT = nWAIT_M1_sig; // Add one wait state to an M1 cycle |
//assign nWAIT = nWAIT_Mem_sig; // Add one wait state to any memory cycle (M1 + memory read/write) |
assign nWAIT = 1; // Do not add wait cycles |
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
// Instantiate PLL |
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
124,6 → 133,18
z80_top_direct_n z80_( .*, .nRESET(reset), .CLK(clk_cpu) ); |
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
// Instantiate gates to add Wait states to M1 and Memory cycles (for testing) |
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
wait_state wait_state_inst |
( |
.CLK(clk_cpu), |
.nM1(nM1), |
.nMREQ(nMREQ), |
.nWAIT_M1(nWAIT_M1_sig), |
.nWAIT_Mem(nWAIT_Mem_sig) |
); |
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
// Instantiate 16Kb of RAM memory |
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
ram ram_( .address(A[13:0]), .clock(pll_clk), .data(D[7:0]), .wren(RamWE), .q(RamData[7:0]) ); |
/a-z80/trunk/host/basic_de1/simulation/modelsim/test_host.mpf
441,7 → 441,7
Project_Version = 6 |
Project_DefaultLib = work |
Project_SortMethod = unused |
Project_Files_Count = 43 |
Project_Files_Count = 44 |
Project_File_0 = $ROOT/cpu/alu/alu.v |
Project_File_P_0 = compile_order 11 compile_to work cover_branch 0 cover_cond 0 cover_covercells 0 cover_excludedefault 0 cover_expr 0 cover_exttoggle 0 cover_fsm 0 cover_nofec 0 cover_noshort 0 cover_optlevel 3 cover_stmt 0 cover_toggle 0 dont_compile 0 file_type verilog folder cpu group_id 0 last_compile 1 ood 0 toggle - vlog_0InOptions {} vlog_1995compat 0 vlog_disableopt 0 vlog_enable0In 0 vlog_hazard 0 vlog_nodebug 0 vlog_noload 0 vlog_options {} vlog_protect 0 vlog_showsource 0 vlog_upper 0 voptflow 1 |
Project_File_1 = $ROOT/cpu/alu/alu_bit_select.v |
528,6 → 528,8
Project_File_P_41 = compile_order 38 compile_to work cover_branch 0 cover_cond 0 cover_covercells 0 cover_excludedefault 0 cover_expr 0 cover_exttoggle 0 cover_fsm 0 cover_nofec 0 cover_noshort 0 cover_optlevel 3 cover_stmt 0 cover_toggle 0 dont_compile 0 file_type systemverilog folder {Top Level} group_id 0 last_compile 1 ood 0 toggle - vlog_0InOptions {} vlog_1995compat SV vlog_disableopt 0 vlog_enable0In 0 vlog_hazard 0 vlog_nodebug 0 vlog_noload 0 vlog_options {} vlog_protect 0 vlog_showsource 0 vlog_upper 0 voptflow 1 |
Project_File_42 = $ROOT/host/common/uart.v |
Project_File_P_42 = compile_order 42 compile_to work cover_branch 0 cover_cond 0 cover_covercells 0 cover_excludedefault 0 cover_expr 0 cover_exttoggle 0 cover_fsm 0 cover_nofec 0 cover_noshort 0 cover_optlevel 3 cover_stmt 0 cover_toggle 0 dont_compile 0 file_type verilog folder uart group_id 0 last_compile 1 ood 0 toggle - vlog_0InOptions {} vlog_1995compat 0 vlog_disableopt 0 vlog_enable0In 0 vlog_hazard 0 vlog_nodebug 0 vlog_noload 0 vlog_options {} vlog_protect 0 vlog_showsource 0 vlog_upper 0 voptflow 1 |
Project_File_43 = $ROOT/host/common/wait_state.v |
Project_File_P_43 = compile_order 43 compile_to work cover_branch 0 cover_cond 0 cover_covercells 0 cover_excludedefault 0 cover_expr 0 cover_exttoggle 0 cover_fsm 0 cover_nofec 0 cover_noshort 0 cover_optlevel 3 cover_stmt 0 cover_toggle 0 dont_compile 0 file_type verilog folder {Top Level} group_id 0 last_compile 1 ood 0 toggle - vlog_0InOptions {} vlog_1995compat 0 vlog_disableopt 0 vlog_enable0In 0 vlog_hazard 0 vlog_nodebug 0 vlog_noload 0 vlog_options {} vlog_protect 0 vlog_showsource 0 vlog_upper 0 voptflow 1 |
Project_Sim_Count = 1 |
Project_Sim_0 = test_host |
Project_Sim_P_0 = timing default -t ps -sdfnoerror 0 -nofileshare 0 +no_pulse_msg 0 -Lf {} Generics {} +notimingchecks 0 ok 1 folder {Top Level} +pulse_e {} additional_dus work.test_bench_host -assertfile {} -std_output {} -L altera_mf_ver -nopsl 0 -nosva 0 +pulse_r {} -absentisempty 0 -assertcover 0 -multisource_delay {} OtherArgs {} -vital2.2b 0 is_vopt_flow 0 -memprof 0 -noglitch 0 -0in_options {} selected_du {} -sdf {} -hazards 0 -0in 0 +plusarg {} -coverage 0 vopt_env 1 -wlf {} -assertdebug 0 -std_input {} -sdfnowarn 0 |
/a-z80/trunk/host/basic_de1/simulation/modelsim/wave_host.do
41,6 → 41,8
} /test_bench_host/host_/D |
add wave -noupdate -expand -group {host |
} /test_bench_host/host_/RamData |
add wave -noupdate /test_bench_host/host_/nWAIT_M1_sig |
add wave -noupdate /test_bench_host/host_/nWAIT_Mem_sig |
add wave -noupdate -group {RAM |
} /test_bench_host/host_/ram_/address |
add wave -noupdate -group {RAM |
/a-z80/trunk/host/common/wait_state.bdf
0,0 → 1,492
/* |
WARNING: Do NOT edit the input and output ports in this file in a text |
editor if you plan to continue editing the block that represents it in |
the Block Editor! File corruption is VERY likely to occur. |
*/ |
/* |
Copyright (C) 1991-2013 Altera Corporation |
Your use of Altera Corporation's design tools, logic functions |
and other software and tools, and its AMPP partner logic |
functions, and any output files from any of the foregoing |
(including device programming or simulation files), and any |
associated documentation or information are expressly subject |
to the terms and conditions of the Altera Program License |
Subscription Agreement, Altera MegaCore Function License |
Agreement, or other applicable license agreement, including, |
without limitation, that your use is for the sole purpose of |
programming logic devices manufactured by Altera and sold by |
Altera or its authorized distributors. Please refer to the |
applicable agreement for further details. |
*/ |
(header "graphic" (version "1.4")) |
(pin |
(input) |
(rect 64 216 240 232) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "CLK" (rect 9 0 30 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 64 136 240 152) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "nM1" (rect 9 0 29 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(input) |
(rect 64 376 240 392) |
(text "INPUT" (rect 133 0 161 10)(font "Arial" (font_size 6))) |
(text "nMREQ" (rect 9 0 46 12)(font "Arial" )) |
(pt 176 8) |
(drawing |
(line (pt 92 12)(pt 117 12)) |
(line (pt 92 4)(pt 117 4)) |
(line (pt 121 8)(pt 176 8)) |
(line (pt 92 12)(pt 92 4)) |
(line (pt 117 4)(pt 121 8)) |
(line (pt 117 12)(pt 121 8)) |
) |
(text "VCC" (rect 136 7 156 17)(font "Arial" (font_size 6))) |
) |
(pin |
(output) |
(rect 608 72 784 88) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
(text "nWAIT_M1" (rect 90 0 143 12)(font "Arial" )) |
(pt 0 8) |
(drawing |
(line (pt 0 8)(pt 52 8)) |
(line (pt 52 4)(pt 78 4)) |
(line (pt 52 12)(pt 78 12)) |
(line (pt 52 12)(pt 52 4)) |
(line (pt 78 4)(pt 82 8)) |
(line (pt 82 8)(pt 78 12)) |
(line (pt 78 12)(pt 82 8)) |
) |
) |
(pin |
(output) |
(rect 608 312 784 328) |
(text "OUTPUT" (rect 1 0 39 10)(font "Arial" (font_size 6))) |
(text "nWAIT_Mem" (rect 90 0 152 12)(font "Arial" )) |
(pt 0 8) |
(drawing |
(line (pt 0 8)(pt 52 8)) |
(line (pt 52 4)(pt 78 4)) |
(line (pt 52 12)(pt 78 12)) |
(line (pt 52 12)(pt 52 4)) |
(line (pt 78 4)(pt 82 8)) |
(line (pt 82 8)(pt 78 12)) |
(line (pt 78 12)(pt 82 8)) |
) |
) |
(symbol |
(rect 280 120 344 200) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst2" (rect 3 68 26 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 24) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 416 120 480 200) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst3" (rect 3 68 26 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 24) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 280 360 344 440) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst4" (rect 3 68 26 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 24) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 416 360 480 440) |
(text "DFF" (rect 1 0 19 10)(font "Arial" (font_size 6))) |
(text "inst5" (rect 3 68 26 80)(font "Arial" )) |
(port |
(pt 32 80) |
(input) |
(text "CLRN" (rect 21 59 44 71)(font "Courier New" (bold))) |
(text "CLRN" (rect 21 58 44 70)(font "Courier New" (bold))) |
(line (pt 32 80)(pt 32 76)) |
) |
(port |
(pt 0 40) |
(input) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(text "CLK" (rect 3 29 20 41)(font "Courier New" (bold))(invisible)) |
(line (pt 0 40)(pt 12 40)) |
) |
(port |
(pt 0 24) |
(input) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(text "D" (rect 14 20 19 32)(font "Courier New" (bold))) |
(line (pt 0 24)(pt 12 24)) |
) |
(port |
(pt 32 0) |
(input) |
(text "PRN" (rect 24 13 41 25)(font "Courier New" (bold))) |
(text "PRN" (rect 24 11 41 23)(font "Courier New" (bold))) |
(line (pt 32 4)(pt 32 0)) |
) |
(port |
(pt 64 24) |
(output) |
(text "Q" (rect 45 20 50 32)(font "Courier New" (bold))) |
(text "Q" (rect 43 20 47 32)(font "Courier New" (bold))) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 12 12)(pt 52 12)) |
(line (pt 12 68)(pt 52 68)) |
(line (pt 52 68)(pt 52 12)) |
(line (pt 12 68)(pt 12 12)) |
(line (pt 19 40)(pt 12 47)) |
(line (pt 12 32)(pt 20 40)) |
(circle (rect 28 4 36 12)) |
(circle (rect 28 68 36 76)) |
) |
) |
(symbol |
(rect 424 296 472 328) |
(text "NOT" (rect 1 0 21 10)(font "Arial" (font_size 6))) |
(text "inst" (rect 3 21 20 33)(font "Arial" )) |
(port |
(pt 0 16) |
(input) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(text "IN" (rect 2 7 13 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 13 16)) |
) |
(port |
(pt 48 16) |
(output) |
(text "OUT" (rect 32 7 49 19)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 32 7 46 19)(font "Courier New" (bold))(invisible)) |
(line (pt 39 16)(pt 48 16)) |
) |
(drawing |
(line (pt 13 25)(pt 13 7)) |
(line (pt 13 7)(pt 31 16)) |
(line (pt 13 25)(pt 31 16)) |
(circle (rect 31 12 39 20)) |
) |
) |
(symbol |
(rect 520 296 584 344) |
(text "NAND2" (rect 1 0 32 10)(font "Arial" (font_size 6))) |
(text "inst7" (rect 3 37 26 49)(font "Arial" )) |
(port |
(pt 0 32) |
(input) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(text "IN2" (rect 2 23 19 35)(font "Courier New" (bold))(invisible)) |
(line (pt 0 32)(pt 15 32)) |
) |
(port |
(pt 0 16) |
(input) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(text "IN1" (rect 2 7 19 19)(font "Courier New" (bold))(invisible)) |
(line (pt 0 16)(pt 15 16)) |
) |
(port |
(pt 64 24) |
(output) |
(text "OUT" (rect 48 15 65 27)(font "Courier New" (bold))(invisible)) |
(text "OUT" (rect 48 15 62 27)(font "Courier New" (bold))(invisible)) |
(line (pt 52 24)(pt 64 24)) |
) |
(drawing |
(line (pt 15 37)(pt 32 37)) |
(line (pt 15 12)(pt 32 12)) |
(line (pt 15 36)(pt 15 12)) |
(arc (pt 32 36)(pt 32 12)(rect 20 12 45 37)) |
(circle (rect 44 20 52 28)) |
) |
) |
(connector |
(pt 256 160) |
(pt 280 160) |
) |
(connector |
(pt 256 224) |
(pt 256 160) |
) |
(connector |
(pt 312 104) |
(pt 504 104) |
) |
(connector |
(pt 504 104) |
(pt 504 144) |
) |
(connector |
(pt 392 160) |
(pt 392 224) |
) |
(connector |
(pt 312 104) |
(pt 312 120) |
) |
(connector |
(pt 392 160) |
(pt 416 160) |
) |
(connector |
(pt 480 144) |
(pt 504 144) |
) |
(connector |
(pt 392 400) |
(pt 416 400) |
) |
(connector |
(pt 368 312) |
(pt 424 312) |
) |
(connector |
(pt 368 384) |
(pt 368 312) |
) |
(connector |
(pt 504 384) |
(pt 504 328) |
) |
(connector |
(pt 504 328) |
(pt 520 328) |
) |
(connector |
(pt 392 400) |
(pt 392 464) |
) |
(connector |
(pt 256 400) |
(pt 256 464) |
) |
(connector |
(pt 256 464) |
(pt 392 464) |
) |
(connector |
(pt 368 384) |
(pt 416 384) |
) |
(connector |
(pt 344 384) |
(pt 368 384) |
) |
(connector |
(pt 480 384) |
(pt 504 384) |
) |
(connector |
(pt 472 312) |
(pt 520 312) |
) |
(connector |
(text "CLK" (rect 127 400 148 412)(font "Arial" )) |
(pt 152 400) |
(pt 256 400) |
) |
(connector |
(pt 256 400) |
(pt 280 400) |
) |
(connector |
(pt 584 320) |
(pt 608 320) |
) |
(connector |
(pt 240 224) |
(pt 256 224) |
) |
(connector |
(pt 256 224) |
(pt 392 224) |
) |
(connector |
(pt 240 144) |
(pt 280 144) |
) |
(connector |
(pt 240 384) |
(pt 280 384) |
) |
(connector |
(pt 368 144) |
(pt 368 80) |
) |
(connector |
(pt 344 144) |
(pt 368 144) |
) |
(connector |
(pt 368 144) |
(pt 416 144) |
) |
(connector |
(pt 368 80) |
(pt 608 80) |
) |
(junction (pt 256 224)) |
(junction (pt 256 400)) |
(junction (pt 368 144)) |
(junction (pt 368 384)) |
(text "Memory Speed Control, Zilog Manual" (rect 72 40 324 56)(font "Arial" (font_size 10))(border)) |
(text "Adding One Wait State to an M1 Cycle" (rect 536 168 802 184)(font "Arial" (font_size 10))) |
(text "Adding One Wait State to Any Memory Cycle" (rect 528 408 839 424)(font "Arial" (font_size 10))) |
(line (pt 64 272)(pt 784 272)(color 0 255 0)) |
/a-z80/trunk/host/common/wait_state.bsf
0,0 → 1,64
/* |
WARNING: Do NOT edit the input and output ports in this file in a text |
editor if you plan to continue editing the block that represents it in |
the Block Editor! File corruption is VERY likely to occur. |
*/ |
/* |
Copyright (C) 1991-2013 Altera Corporation |
Your use of Altera Corporation's design tools, logic functions |
and other software and tools, and its AMPP partner logic |
functions, and any output files from any of the foregoing |
(including device programming or simulation files), and any |
associated documentation or information are expressly subject |
to the terms and conditions of the Altera Program License |
Subscription Agreement, Altera MegaCore Function License |
Agreement, or other applicable license agreement, including, |
without limitation, that your use is for the sole purpose of |
programming logic devices manufactured by Altera and sold by |
Altera or its authorized distributors. Please refer to the |
applicable agreement for further details. |
*/ |
(header "symbol" (version "1.2")) |
(symbol |
(rect 16 16 184 112) |
(text "wait_state" (rect 5 0 65 14)(font "Arial" (font_size 8))) |
(text "inst" (rect 8 80 25 92)(font "Arial" )) |
(port |
(pt 0 32) |
(input) |
(text "nM1" (rect 0 0 23 14)(font "Arial" (font_size 8))) |
(text "nM1" (rect 21 27 44 41)(font "Arial" (font_size 8))) |
(line (pt 0 32)(pt 16 32)) |
) |
(port |
(pt 0 48) |
(input) |
(text "CLK" (rect 0 0 23 14)(font "Arial" (font_size 8))) |
(text "CLK" (rect 21 43 44 57)(font "Arial" (font_size 8))) |
(line (pt 0 48)(pt 16 48)) |
) |
(port |
(pt 0 64) |
(input) |
(text "nMREQ" (rect 0 0 41 14)(font "Arial" (font_size 8))) |
(text "nMREQ" (rect 21 59 62 73)(font "Arial" (font_size 8))) |
(line (pt 0 64)(pt 16 64)) |
) |
(port |
(pt 168 32) |
(output) |
(text "nWAIT_M1" (rect 0 0 61 14)(font "Arial" (font_size 8))) |
(text "nWAIT_M1" (rect 86 27 147 41)(font "Arial" (font_size 8))) |
(line (pt 168 32)(pt 152 32)) |
) |
(port |
(pt 168 48) |
(output) |
(text "nWAIT_Mem" (rect 0 0 70 14)(font "Arial" (font_size 8))) |
(text "nWAIT_Mem" (rect 77 43 147 57)(font "Arial" (font_size 8))) |
(line (pt 168 48)(pt 152 48)) |
) |
(drawing |
(rectangle (rect 16 16 152 80)) |
) |
) |
/a-z80/trunk/host/common/wait_state.v
0,0 → 1,86
// Copyright (C) 1991-2013 Altera Corporation |
// Your use of Altera Corporation's design tools, logic functions |
// and other software and tools, and its AMPP partner logic |
// functions, and any output files from any of the foregoing |
// (including device programming or simulation files), and any |
// associated documentation or information are expressly subject |
// to the terms and conditions of the Altera Program License |
// Subscription Agreement, Altera MegaCore Function License |
// Agreement, or other applicable license agreement, including, |
// without limitation, that your use is for the sole purpose of |
// programming logic devices manufactured by Altera and sold by |
// Altera or its authorized distributors. Please refer to the |
// applicable agreement for further details. |
|
// PROGRAM "Quartus II 64-Bit" |
// VERSION "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" |
// CREATED "Thu Dec 08 00:16:50 2016" |
|
module wait_state( |
CLK, |
nM1, |
nMREQ, |
nWAIT_M1, |
nWAIT_Mem |
); |
|
|
input wire CLK; |
input wire nM1; |
input wire nMREQ; |
output wire nWAIT_M1; |
output wire nWAIT_Mem; |
|
reg SYNTHESIZED_WIRE_1; |
reg DFF_inst3; |
reg DFF_inst2; |
reg DFF_inst5; |
wire SYNTHESIZED_WIRE_0; |
|
assign nWAIT_M1 = DFF_inst2; |
|
|
|
assign SYNTHESIZED_WIRE_0 = ~SYNTHESIZED_WIRE_1; |
|
|
always@(posedge CLK or negedge DFF_inst3) |
begin |
if (!DFF_inst3) |
begin |
DFF_inst2 <= 1; |
end |
else |
begin |
DFF_inst2 <= nM1; |
end |
end |
|
|
always@(posedge CLK) |
begin |
begin |
DFF_inst3 <= DFF_inst2; |
end |
end |
|
|
always@(posedge CLK) |
begin |
begin |
SYNTHESIZED_WIRE_1 <= nMREQ; |
end |
end |
|
|
always@(posedge CLK) |
begin |
begin |
DFF_inst5 <= SYNTHESIZED_WIRE_1; |
end |
end |
|
assign nWAIT_Mem = ~(DFF_inst5 & SYNTHESIZED_WIRE_0); |
|
|
endmodule |
/a-z80/trunk/host/zxspectrum_de1/rom/combined.rom
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/a-z80/trunk/host/zxspectrum_de1/ula/ula.sv
147,7 → 147,7
ula_data = 8'hFF; |
// Regular IO at every odd address: line-in and keyboard |
if (A[0]==0) begin |
ula_data = { 1'b0, pcm_inl[14] | pcm_inr[14], 1'b0, key_row[4:0] }; |
ula_data = { 1'b1, pcm_inl[14] | pcm_inr[14], 1'b1, key_row[4:0] }; |
end |
end |
|
/a-z80/trunk/host/zxspectrum_de1/ula/zx_kbd.sv
54,9 → 54,9
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
// |
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
reg [4:0] keys [0:7]; // 8 rows of 5 bits each |
reg [4:0] keys [0:7]; // 8 rows of 5 bits each: contains 0 for a pressed key at a specific location, 1 otherwise |
|
reg released; // Tracks "released" scan code (F0) |
reg released; // Tracks "released" scan code (F0): contains 0 when a key is pressed, 1 otherwise |
reg extended; // Tracks "extended" scan code (E0) |
reg shifted; // Tracks local "shifted" state |
|
91,9 → 91,9
keys[7] <= '1; |
end else |
if (scan_code_ready) begin |
if (scan_code==8'hE0) |
if (scan_code==8'hE0) // Extended code prefix byte |
extended <= 1; |
else if (scan_code==8'hF0) |
else if (scan_code==8'hF0) // Break code prefix byte |
released <= 1; |
else begin |
// Cancel release/extended flags for the next clock |
123,7 → 123,6
end |
else begin |
// For each PS/2 scan-code, set the ZX keyboard matrix state |
// 'released' contains 0 when a key is pressed; 1 otherwise |
case (scan_code) |
8'h12: shifted <= !released; // Local SHIFT key (left) |
8'h59: shifted <= !released; // Local SHIFT key (right) |
185,76 → 184,43
keys[0][0] <= released; // CAPS SHIFT |
keys[7][0] <= released; // SPACE |
end |
// With shifted keys, we need to make inactive (set to 1) other corresponding key |
// Otherwise, it will stay active if the shift was released first |
8'h4E: begin // - or (shifted) _ |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[6][3] <= released; // J |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[4][0] <= shifted ? released : 1; // 0 |
keys[6][3] <= shifted ? 1 : released; // J |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[4][0] <= released; // 0 |
end |
end |
8'h55: begin // = or (shifted) + |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[6][1] <= released; // L |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[6][2] <= shifted ? released : 1; // K |
keys[6][1] <= shifted ? 1 : released; // L |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[6][2] <= released; // K |
end |
end |
8'h52: begin // ' or (shifted) " |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[4][3] <= released; // 7 |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[5][0] <= shifted ? released : 1; // P |
keys[4][3] <= shifted ? 1 : released; // 7 |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[5][0] <= released; // P |
end |
end |
8'h4C: begin // ; or (shifted) : |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[5][1] <= released; // O |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[0][1] <= shifted ? released : 1; // Z |
keys[5][1] <= shifted ? 1 : released; // O |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[0][1] <= released; // Z |
end |
end |
8'h41: begin // , or (shifted) < |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[7][3] <= released; // N |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[2][3] <= shifted ? released : 1; // R |
keys[7][3] <= shifted ? 1 : released; // N |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[2][3] <= released; // R |
end |
end |
8'h49: begin // . or (shifted) > |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[7][2] <= released; // M |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[2][4] <= shifted ? released : 1; // T |
keys[7][2] <= shifted ? 1 : released; // M |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[2][4] <= released; // T |
end |
end |
8'h4A: begin // / or (shifted) ? |
if (!shifted) begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[0][4] <= released; // V |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[0][3] <= shifted ? released : 1; // C |
keys[0][4] <= shifted ? 1 : released; // V |
end |
else begin |
keys[7][1] <= released; // SYMBOL SHIFT (Red) |
keys[0][3] <= released; // C |
end |
end |
endcase |
end |
end |