This commit is contained in:
Blaise Tine 2021-02-04 15:15:41 -05:00
commit 3837638a85
28 changed files with 2178 additions and 2143 deletions

View file

@ -21,16 +21,7 @@ install:
- make -s
script:
- ./ci/test_runtime.sh
- ./ci/test_riscv_isa.sh
- ./ci/test_opencl.sh
- ./ci/test_driver.sh
- ./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --perf --app=demo --args="-n1"
- ./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --debug --app=demo --args="-n1"
- ./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --scope --app=demo --args="-n1"
- ./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --app=demo --args="-n1"
- ./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --l2cache --app=demo --args="-n1"
- ./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --l2cache --l3cache --app=demo --args="-n1"
- ./ci/regresion.sh
after_success:
# Gather code coverage

12
ci/regression.sh Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
./ci/test_runtime.sh
./ci/test_riscv_isa.sh
./ci/test_opencl.sh
./ci/test_driver.sh
./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --perf --app=demo --args="-n1"
./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --debug --app=demo --args="-n1"
./ci/travis_run.py ./ci/blackbox.sh --driver=vlsim --cores=1 --scope --app=demo --args="-n1"
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --app=demo --args="-n1"
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --l2cache --app=demo --args="-n1"
./ci/travis_run.py ./ci/blackbox.sh --driver=rtlsim --cores=2 --clusters=2 --l2cache --l3cache --app=demo --args="-n1"

View file

@ -74,9 +74,9 @@ module VX_cluster #(
VX_reset_relay #(
.DEPTH (`NUM_CORES > 1)
) reset_relay (
.clk (clk),
.reset (reset),
.reset_out (core_reset)
.clk (clk),
.reset (reset),
.reset_o (core_reset)
);
VX_core #(

View file

@ -133,9 +133,9 @@ module VX_ibuffer #(
deq_wid_n = (!deq_fire || q_sizeMany[deq_wid]) ? deq_wid : ibuf_enq_if.wid;
deq_instr_n = deq_fire ? (q_sizeMany[deq_wid] ? q_data_prev[deq_wid] : q_data_in) : q_data_out[deq_wid];
end else begin
deq_valid_n = (| schedule_table_n);
deq_valid_n = (| schedule_table);
for (integer i = 0; i < `NUM_WARPS; i++) begin
if (schedule_table_n[i]) begin
if (schedule_table[i]) begin
deq_wid_n = `NW_BITS'(i);
deq_instr_n = q_data_out[i];
schedule_table_n[i] = 0;

View file

@ -86,9 +86,9 @@ module VX_mem_unit # (
VX_reset_relay #(
.NUM_NODES (2)
) reset_relay (
.clk (clk),
.reset (reset),
.reset_out ({dcache_reset, icache_reset})
.clk (clk),
.reset (reset),
.reset_o ({dcache_reset, icache_reset})
);
VX_cache #(
@ -214,9 +214,9 @@ module VX_mem_unit # (
wire scache_reset;
VX_reset_relay reset_relay (
.clk (clk),
.reset (reset),
.reset_out (scache_reset)
.clk (clk),
.reset (reset),
.reset_o (scache_reset)
);
VX_shared_mem #(

View file

@ -75,9 +75,9 @@ module Vortex (
VX_reset_relay #(
.DEPTH (`NUM_CLUSTERS > 1)
) reset_relay (
.clk (clk),
.reset (reset),
.reset_out (cluster_reset)
.clk (clk),
.reset (reset),
.reset_o (cluster_reset)
);
VX_cluster #(

118
hw/rtl/cache/VX_bank.v vendored
View file

@ -2,18 +2,19 @@
module VX_bank #(
parameter CACHE_ID = 0,
parameter BANK_ID = 0,
parameter BANK_ID = 0,
// Number of Word requests per cycle
parameter NUM_REQS = 1,
// Size of cache in bytes
parameter CACHE_SIZE = 1,
// Size of line inside a bank in bytes
parameter CACHE_LINE_SIZE = 1,
// Number of bankS
parameter NUM_BANKS = 1,
parameter NUM_BANKS = 1,
// Size of a word in bytes
parameter WORD_SIZE = 1,
// Number of Word requests per cycle
parameter NUM_REQS = 1,
// Core Request Queue Size
parameter CREQ_SIZE = 1,
@ -55,8 +56,9 @@ module VX_bank #(
input wire core_req_valid,
input wire [`REQS_BITS-1:0] core_req_tid,
input wire core_req_rw,
input wire [`LINE_ADDR_WIDTH-1:0] core_req_addr,
input wire [`WORD_SELECT_BITS-1:0] core_req_wsel,
input wire [WORD_SIZE-1:0] core_req_byteen,
input wire [`WORD_ADDR_WIDTH-1:0] core_req_addr,
input wire [`WORD_WIDTH-1:0] core_req_data,
input wire [CORE_TAG_WIDTH-1:0] core_req_tag,
output wire core_req_ready,
@ -94,41 +96,27 @@ module VX_bank #(
wire creq_pop;
wire creq_full, creq_empty;
wire creq_rw;
wire [`LINE_ADDR_WIDTH-1:0] creq_addr;
wire [`WORD_SELECT_BITS-1:0] creq_wsel;
wire [WORD_SIZE-1:0] creq_byteen;
wire [`REQS_BITS-1:0] creq_tid;
`IGNORE_WARNINGS_BEGIN
wire [`WORD_ADDR_WIDTH-1:0] creq_addr;
`IGNORE_WARNINGS_END
wire [`LINE_ADDR_WIDTH-1:0] creq_line_addr;
wire [`UP(`WORD_SELECT_BITS)-1:0] creq_wsel;
wire [`WORD_WIDTH-1:0] creq_data;
wire [CORE_TAG_WIDTH-1:0] creq_tag;
wire [`REQS_BITS-1:0] creq_tid;
wire creq_push = core_req_valid && core_req_ready;
assign core_req_ready = !creq_full;
if (BANK_ADDR_OFFSET == 0) begin
assign creq_line_addr = `LINE_SELECT_ADDR0(creq_addr);
end else begin
assign creq_line_addr = `LINE_SELECT_ADDRX(creq_addr);
end
if (`WORD_SELECT_BITS != 0) begin
assign creq_wsel = creq_addr[`WORD_SELECT_BITS-1:0];
end else begin
assign creq_wsel = 0;
end
VX_fifo_queue #(
.DATAW (CORE_TAG_WIDTH + `REQS_BITS + 1 + WORD_SIZE + `WORD_ADDR_WIDTH + `WORD_WIDTH),
.SIZE (CREQ_SIZE)
.DATAW (CORE_TAG_WIDTH + `REQS_BITS + 1 + `LINE_ADDR_WIDTH + `WORD_SELECT_BITS + WORD_SIZE + `WORD_WIDTH),
.SIZE (CREQ_SIZE),
.BUFFERED (1)
) core_req_queue (
.clk (clk),
.reset (reset),
.push (creq_push),
.pop (creq_pop),
.data_in ({core_req_tag, core_req_tid, core_req_rw, core_req_byteen, core_req_addr, core_req_data}),
.data_out ({creq_tag, creq_tid, creq_rw, creq_byteen, creq_addr, creq_data}),
.data_in ({core_req_tag, core_req_tid, core_req_rw, core_req_addr, core_req_wsel, core_req_byteen, core_req_data}),
.data_out ({creq_tag, creq_tid, creq_rw, creq_addr, creq_wsel, creq_byteen, creq_data}),
.empty (creq_empty),
.full (creq_full),
`UNUSED_PIN (alm_empty),
@ -141,16 +129,14 @@ module VX_bank #(
wire mshr_push;
wire mshr_pending;
wire mshr_valid;
wire [`REQS_BITS-1:0] mshr_tid;
wire [`LINE_ADDR_WIDTH-1:0] mshr_addr;
wire [`UP(`WORD_SELECT_BITS)-1:0] mshr_wsel;
wire [`WORD_WIDTH-1:0] mshr_data;
wire [CORE_TAG_WIDTH-1:0] mshr_tag;
wire mshr_rw;
wire [`WORD_SELECT_BITS-1:0] mshr_wsel;
wire [WORD_SIZE-1:0] mshr_byteen;
wire [CORE_TAG_WIDTH-1:0] mshr_tag;
wire [`REQS_BITS-1:0] mshr_tid;
wire [`LINE_ADDR_WIDTH-1:0] addr_st0, addr_st1;
wire [`UP(`WORD_SELECT_BITS)-1:0] wsel_st0, wsel_st1;
wire [`WORD_SELECT_BITS-1:0] wsel_st0, wsel_st1;
wire mem_rw_st0, mem_rw_st1;
wire [WORD_SIZE-1:0] byteen_st0, byteen_st1;
wire [`CACHE_LINE_WIDTH-1:0] data_st0, data_st1;
@ -207,7 +193,7 @@ module VX_bank #(
// we have a miss in mshr or entering it for the current address
wire mshr_pending_sel = mshr_pending
|| (is_miss_st1 && (creq_line_addr == addr_st1));
|| (is_miss_st1 && (creq_addr == addr_st1));
`ifdef DBG_CACHE_REQ_INFO
if (CORE_TAG_WIDTH != CORE_TAG_ID_BITS && CORE_TAG_ID_BITS != 0) begin
@ -218,7 +204,7 @@ module VX_bank #(
`endif
VX_pipe_register #(
.DATAW (1 + 1 + 1 + `LINE_ADDR_WIDTH + `UP(`WORD_SELECT_BITS) + 1 + WORD_SIZE + `CACHE_LINE_WIDTH + `REQS_BITS + CORE_TAG_WIDTH + 1 + 1),
.DATAW (1 + 1 + 1 + `LINE_ADDR_WIDTH + `WORD_SELECT_BITS + 1 + WORD_SIZE + `CACHE_LINE_WIDTH + `REQS_BITS + CORE_TAG_WIDTH + 1 + 1),
.RESETW (1)
) pipe_reg0 (
.clk (clk),
@ -228,11 +214,11 @@ module VX_bank #(
mshr_pop || drsq_pop || creq_pop,
mshr_pop_unqual,
drsq_pop_unqual,
mshr_pop_unqual ? mshr_addr : (dram_rsp_valid ? dram_rsp_addr : creq_line_addr),
mshr_pop_unqual ? mshr_addr : (dram_rsp_valid ? dram_rsp_addr : creq_addr),
mshr_pop_unqual ? mshr_wsel : creq_wsel,
mshr_pop_unqual ? mshr_rw : creq_rw,
mshr_pop_unqual ? 1'b0 : creq_rw,
mshr_pop_unqual ? mshr_byteen : creq_byteen,
mshr_pop_unqual ? {`WORDS_PER_LINE{mshr_data}} : (dram_rsp_valid ? dram_rsp_data : {`WORDS_PER_LINE{creq_data}}),
dram_rsp_valid ? dram_rsp_data : {`WORDS_PER_LINE{creq_data}},
mshr_pop_unqual ? mshr_tid : creq_tid,
mshr_pop_unqual ? mshr_tag : creq_tag,
mshr_pending_sel,
@ -292,7 +278,7 @@ module VX_bank #(
assign incoming_fill_st0 = dram_rsp_valid && (addr_st0 == dram_rsp_addr);
VX_pipe_register #(
.DATAW (1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `UP(`WORD_SELECT_BITS) + `CACHE_LINE_WIDTH + 1 + WORD_SIZE + `REQS_BITS + CORE_TAG_WIDTH),
.DATAW (1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + `LINE_ADDR_WIDTH + `WORD_SELECT_BITS + `CACHE_LINE_WIDTH + 1 + WORD_SIZE + `REQS_BITS + CORE_TAG_WIDTH),
.RESETW (1)
) pipe_reg1 (
.clk (clk),
@ -367,7 +353,7 @@ module VX_bank #(
wire mshr_init_ready_state = !miss_st1 || incoming_fill_qual_st1;
// use dram rsp or core req address to lookup the mshr
wire [`LINE_ADDR_WIDTH-1:0] lookup_addr = dram_rsp_valid ? dram_rsp_addr : creq_line_addr;
wire [`LINE_ADDR_WIDTH-1:0] lookup_addr = dram_rsp_valid ? dram_rsp_addr : creq_addr;
VX_miss_resrv #(
.BANK_ID (BANK_ID),
@ -394,7 +380,7 @@ module VX_bank #(
// enqueue
.enqueue (mshr_push),
.enqueue_addr (addr_st1),
.enqueue_data ({data_st1[`WORD_WIDTH-1:0], req_tid_st1, tag_st1, mem_rw_st1, byteen_st1, wsel_st1}),
.enqueue_data ({wsel_st1, byteen_st1, tag_st1, req_tid_st1}),
.enqueue_is_mshr (is_mshr_st1),
.enqueue_as_ready (mshr_init_ready_state),
`UNUSED_PIN (enqueue_almfull),
@ -409,7 +395,7 @@ module VX_bank #(
.schedule (mshr_pop),
.schedule_valid (mshr_valid),
.schedule_addr (mshr_addr),
.schedule_data ({mshr_data, mshr_tid, mshr_tag, mshr_rw, mshr_byteen, mshr_wsel}),
.schedule_data ({mshr_wsel, mshr_byteen, mshr_tag, mshr_tid}),
// dequeue
.dequeue (mshr_dequeue)
@ -417,20 +403,22 @@ module VX_bank #(
// Enqueue core response
wire [`WORD_WIDTH-1:0] crsq_data;
wire [CORE_TAG_WIDTH-1:0] crsq_tag;
wire [`REQS_BITS-1:0] crsq_tid;
wire crsq_empty;
assign crsq_push = valid_st1 && crsq_push_st1;
assign crsq_pop = core_rsp_valid && core_rsp_ready;
wire [`REQS_BITS-1:0] crsq_tid_st1 = req_tid_st1;
wire [CORE_TAG_WIDTH-1:0] crsq_tag_st1 = CORE_TAG_WIDTH'(tag_st1);
wire [`WORD_WIDTH-1:0] crsq_data_st1;
if (`WORD_SELECT_BITS != 0) begin
assign crsq_data_st1 = readdata_st1[wsel_st1 * `WORD_WIDTH +: `WORD_WIDTH];
assign crsq_pop = core_rsp_valid && core_rsp_ready;
if (`WORD_SELECT_BITS != 0) begin
assign crsq_data = readdata_st1[wsel_st1 * `WORD_WIDTH +: `WORD_WIDTH];
end else begin
assign crsq_data_st1 = readdata_st1;
assign crsq_data = readdata_st1;
end
assign crsq_tag = tag_st1;
assign crsq_tid = req_tid_st1;
VX_fifo_queue #(
.DATAW (`REQS_BITS + CORE_TAG_WIDTH + `WORD_WIDTH),
@ -442,8 +430,8 @@ module VX_bank #(
.reset (reset),
.push (crsq_push),
.pop (crsq_pop),
.data_in ({crsq_tid_st1, crsq_tag_st1, crsq_data_st1}),
.data_out ({core_rsp_tid, core_rsp_tag, core_rsp_data}),
.data_in ({crsq_data, crsq_tag, crsq_tid}),
.data_out ({core_rsp_data, core_rsp_tag, core_rsp_tid}),
.empty (crsq_empty),
.alm_full (crsq_alm_full),
`UNUSED_PIN (full),
@ -455,18 +443,16 @@ module VX_bank #(
// Enqueue DRAM request
wire dreq_empty;
wire [CACHE_LINE_SIZE-1:0] dreq_byteen, dreq_byteen_unqual;
wire [`LINE_ADDR_WIDTH-1:0] dreq_addr;
wire [`CACHE_LINE_WIDTH-1:0] dreq_data;
wire dreq_empty, writeback;
assign dreq_push = valid_st1 && dreq_push_st1;
assign dreq_pop = dram_req_valid && dram_req_ready;
wire writeback = WRITE_ENABLE && do_writeback_st1;
wire [`LINE_ADDR_WIDTH-1:0] dreq_addr = addr_st1;
wire [`CACHE_LINE_WIDTH-1:0] dreq_data;
wire [CACHE_LINE_SIZE-1:0] dreq_byteen, dreq_byteen_unqual;
assign writeback = WRITE_ENABLE && do_writeback_st1;
if (`WORD_SELECT_BITS != 0) begin
for (genvar i = 0; i < `WORDS_PER_LINE; i++) begin
@ -475,9 +461,10 @@ module VX_bank #(
end else begin
assign dreq_byteen_unqual = byteen_st1;
end
assign dreq_data = data_st1;
assign dreq_byteen = writeback ? dreq_byteen_unqual : {CACHE_LINE_SIZE{1'b1}};
assign dreq_addr = addr_st1;
assign dreq_data = data_st1;
VX_fifo_queue #(
.DATAW (1 + CACHE_LINE_SIZE + `LINE_ADDR_WIDTH + `CACHE_LINE_WIDTH),
@ -488,7 +475,7 @@ module VX_bank #(
.reset (reset),
.push (dreq_push),
.pop (dreq_pop),
.data_in ({writeback, dreq_byteen, dreq_addr, dreq_data}),
.data_in ({writeback, dreq_byteen, dreq_addr, dreq_data}),
.data_out ({dram_req_rw, dram_req_byteen, dram_req_addr, dram_req_data}),
.empty (dreq_empty),
.alm_full (dreq_alm_full),
@ -535,10 +522,7 @@ module VX_bank #(
$display("%t: cache%0d:%0d fill-rsp: addr=%0h, data=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(dram_rsp_addr, BANK_ID), dram_rsp_data);
end
if (mshr_pop) begin
if (mshr_rw)
$display("%t: cache%0d:%0d mshr-wr-req: addr=%0h, tag=%0h, tid=%0d, byteen=%b, data=%0h, wid=%0d, PC=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(addr_st0, BANK_ID), mshr_tag, mshr_tid, mshr_byteen, mshr_data, debug_wid_sel, debug_pc_sel);
else
$display("%t: cache%0d:%0d mshr-rd-req: addr=%0h, tag=%0h, tid=%0d, byteen=%b, wid=%0d, PC=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(addr_st0, BANK_ID), mshr_tag, mshr_tid, mshr_byteen, debug_wid_sel, debug_pc_sel);
$display("%t: cache%0d:%0d mshr-rd-req: addr=%0h, tag=%0h, tid=%0d, byteen=%b, wid=%0d, PC=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(addr_st0, BANK_ID), mshr_tag, mshr_tid, mshr_byteen, debug_wid_sel, debug_pc_sel);
end
if (creq_pop) begin
if (creq_rw)
@ -547,7 +531,7 @@ module VX_bank #(
$display("%t: cache%0d:%0d core-rd-req: addr=%0h, tag=%0h, tid=%0d, byteen=%b, wid=%0d, PC=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(addr_st0, BANK_ID), creq_tag, creq_tid, creq_byteen, debug_wid_sel, debug_pc_sel);
end
if (crsq_push) begin
$display("%t: cache%0d:%0d core-rsp: addr=%0h, tag=%0h, tid=%0d, data=%0h, wid=%0d, PC=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(addr_st1, BANK_ID), crsq_tag_st1, crsq_tid_st1, crsq_data_st1, debug_wid_st1, debug_pc_st1);
$display("%t: cache%0d:%0d core-rsp: addr=%0h, tag=%0h, tid=%0d, data=%0h, wid=%0d, PC=%0h", $time, CACHE_ID, BANK_ID, `LINE_TO_BYTE_ADDR(addr_st1, BANK_ID), crsq_tag, crsq_tid, crsq_data, debug_wid_st1, debug_pc_st1);
end
if (dreq_push) begin
if (do_writeback_st1)

View file

@ -3,16 +3,17 @@
module VX_cache #(
parameter CACHE_ID = 0,
// Number of Word requests per cycle
parameter NUM_REQS = 4,
// Size of cache in bytes
parameter CACHE_SIZE = 16384,
// Size of line inside a bank in bytes
parameter CACHE_LINE_SIZE = 64,
// Number of banks
parameter NUM_BANKS = 4,
parameter NUM_BANKS = NUM_REQS,
// Size of a word in bytes
parameter WORD_SIZE = 4,
// Number of Word requests per cycle
parameter NUM_REQS = NUM_BANKS,
// Core Request Queue Size
parameter CREQ_SIZE = 4,
@ -51,8 +52,8 @@ module VX_cache #(
// Core request
input wire [NUM_REQS-1:0] core_req_valid,
input wire [NUM_REQS-1:0] core_req_rw,
input wire [NUM_REQS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr,
input wire [NUM_REQS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [NUM_REQS-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
output wire [NUM_REQS-1:0] core_req_ready,
@ -87,18 +88,19 @@ module VX_cache #(
`STATIC_ASSERT(NUM_BANKS <= NUM_REQS, ("invalid value"))
wire [NUM_BANKS-1:0] per_bank_core_req_valid;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid;
wire [NUM_BANKS-1:0] per_bank_core_req_rw;
wire [NUM_BANKS-1:0][`LINE_ADDR_WIDTH-1:0] per_bank_core_req_addr;
wire [NUM_BANKS-1:0][`WORD_SELECT_BITS-1:0] per_bank_core_req_wsel;
wire [NUM_BANKS-1:0][WORD_SIZE-1:0] per_bank_core_req_byteen;
wire [NUM_BANKS-1:0][`WORD_ADDR_WIDTH-1:0] per_bank_core_req_addr;
wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag;
wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_req_data;
wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid;
wire [NUM_BANKS-1:0] per_bank_core_req_ready;
wire [NUM_BANKS-1:0] per_bank_core_rsp_valid;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_rsp_tid;
wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_rsp_data;
wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_rsp_tag;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_rsp_tid;
wire [NUM_BANKS-1:0] per_bank_core_rsp_ready;
wire [NUM_BANKS-1:0] per_bank_dram_req_valid;
@ -131,8 +133,9 @@ module VX_cache #(
assign dram_rsp_ready = !drsq_full;
VX_fifo_queue #(
.DATAW (DRAM_TAG_WIDTH + `CACHE_LINE_WIDTH),
.SIZE (DRSQ_SIZE)
.DATAW (DRAM_TAG_WIDTH + `CACHE_LINE_WIDTH),
.SIZE (DRSQ_SIZE),
.BUFFERED (1)
) dram_rsp_queue (
.clk (clk),
.reset (reset),
@ -184,23 +187,22 @@ module VX_cache #(
.reset (reset),
`ifdef PERF_ENABLE
.bank_stalls(perf_cache_if.bank_stalls),
`else
`UNUSED_PIN (bank_stalls),
`endif
.core_req_valid (core_req_valid),
.core_req_rw (core_req_rw),
.core_req_byteen(core_req_byteen),
.core_req_addr (core_req_addr),
.core_req_byteen(core_req_byteen),
.core_req_data (core_req_data),
.core_req_tag (core_req_tag),
.core_req_ready (core_req_ready),
.per_bank_core_req_valid (per_bank_core_req_valid),
.per_bank_core_req_tid (per_bank_core_req_tid),
.per_bank_core_req_rw (per_bank_core_req_rw),
.per_bank_core_req_byteen(per_bank_core_req_byteen),
.per_bank_core_req_addr (per_bank_core_req_addr),
.per_bank_core_req_tag (per_bank_core_req_tag),
.per_bank_core_req_wsel (per_bank_core_req_wsel),
.per_bank_core_req_byteen(per_bank_core_req_byteen),
.per_bank_core_req_data (per_bank_core_req_data),
.per_bank_core_req_tag (per_bank_core_req_tag),
.per_bank_core_req_tid (per_bank_core_req_tid),
.per_bank_core_req_ready (per_bank_core_req_ready)
);
@ -208,12 +210,13 @@ module VX_cache #(
for (genvar i = 0; i < NUM_BANKS; i++) begin
wire curr_bank_core_req_valid;
wire [`REQS_BITS-1:0] curr_bank_core_req_tid;
wire curr_bank_core_req_rw;
wire [`LINE_ADDR_WIDTH-1:0] curr_bank_core_req_addr;
wire [`WORD_SELECT_BITS-1:0] curr_bank_core_req_wsel;
wire [WORD_SIZE-1:0] curr_bank_core_req_byteen;
wire [`WORD_ADDR_WIDTH-1:0] curr_bank_core_req_addr;
wire [CORE_TAG_WIDTH-1:0] curr_bank_core_req_tag;
wire [`WORD_WIDTH-1:0] curr_bank_core_req_data;
wire [CORE_TAG_WIDTH-1:0] curr_bank_core_req_tag;
wire [`REQS_BITS-1:0] curr_bank_core_req_tid;
wire curr_bank_core_req_ready;
wire curr_bank_core_rsp_valid;
@ -237,12 +240,13 @@ module VX_cache #(
// Core Req
assign curr_bank_core_req_valid = per_bank_core_req_valid[i];
assign curr_bank_core_req_tid = per_bank_core_req_tid[i];
assign curr_bank_core_req_addr = per_bank_core_req_addr[i];
assign curr_bank_core_req_rw = per_bank_core_req_rw[i];
assign curr_bank_core_req_wsel = per_bank_core_req_wsel[i];
assign curr_bank_core_req_byteen = per_bank_core_req_byteen[i];
assign curr_bank_core_req_data = per_bank_core_req_data[i];
assign curr_bank_core_req_tag = per_bank_core_req_tag[i];
assign curr_bank_core_req_tid = per_bank_core_req_tid[i];
assign per_bank_core_req_ready[i] = curr_bank_core_req_ready;
// Core WB
@ -308,12 +312,13 @@ module VX_cache #(
// Core request
.core_req_valid (curr_bank_core_req_valid),
.core_req_tid (curr_bank_core_req_tid),
.core_req_rw (curr_bank_core_req_rw),
.core_req_byteen (curr_bank_core_req_byteen),
.core_req_addr (curr_bank_core_req_addr),
.core_req_wsel (curr_bank_core_req_wsel),
.core_req_data (curr_bank_core_req_data),
.core_req_tag (curr_bank_core_req_tag),
.core_req_tid (curr_bank_core_req_tid),
.core_req_ready (curr_bank_core_req_ready),
// Core response
@ -350,9 +355,9 @@ module VX_cache #(
.clk (clk),
.reset (reset),
.per_bank_core_rsp_valid (per_bank_core_rsp_valid),
.per_bank_core_rsp_data (per_bank_core_rsp_data),
.per_bank_core_rsp_tag (per_bank_core_rsp_tag),
.per_bank_core_rsp_tid (per_bank_core_rsp_tid),
.per_bank_core_rsp_data (per_bank_core_rsp_data),
.per_bank_core_rsp_ready (per_bank_core_rsp_ready),
.core_rsp_valid (core_rsp_valid),
.core_rsp_tag (core_rsp_tag),

View file

@ -9,11 +9,11 @@
`define REQS_BITS `LOG2UP(NUM_REQS)
// tag rw byteen tid
`define REQ_INST_META_WIDTH (CORE_TAG_WIDTH + 1 + WORD_SIZE + `REQS_BITS)
// tag byteen tid
`define REQ_INST_META_WIDTH (CORE_TAG_WIDTH + WORD_SIZE + `REQS_BITS)
// data metadata word_sel
`define MSHR_DATA_WIDTH (`WORD_WIDTH + `REQ_INST_META_WIDTH + `UP(`WORD_SELECT_BITS))
// metadata word_sel
`define MSHR_DATA_WIDTH (`REQ_INST_META_WIDTH + `WORD_SELECT_BITS)
`define WORD_WIDTH (8 * WORD_SIZE)
@ -23,7 +23,6 @@
`define LINES_PER_BANK (`BANK_SIZE / CACHE_LINE_SIZE)
`define WORDS_PER_LINE (CACHE_LINE_SIZE / WORD_SIZE)
`define WORD_SELECT_BITS `CLOG2(`WORDS_PER_LINE)
`define WORD_ADDR_WIDTH (32-`CLOG2(WORD_SIZE))
`define DRAM_ADDR_WIDTH (32-`CLOG2(CACHE_LINE_SIZE))
`define LINE_ADDR_WIDTH (`DRAM_ADDR_WIDTH-`BANK_SELECT_BITS)

View file

@ -6,75 +6,98 @@ module VX_cache_core_req_bank_sel #(
// Size of a word in bytes
parameter WORD_SIZE = 4,
// Number of banks
parameter NUM_BANKS = 4,
parameter NUM_BANKS = 4,
// Number of Word requests per cycle
parameter NUM_REQS = 4,
// core request tag size
parameter CORE_TAG_WIDTH = 3,
// bank offset from beginning of index range
parameter BANK_ADDR_OFFSET = 0,
// buffer the output
parameter BUFFERED = 0
parameter BANK_ADDR_OFFSET = 0
) (
input wire clk,
input wire reset,
`ifdef PERF_ENABLE
output wire [63:0] bank_stalls,
`endif
input wire [NUM_REQS-1:0] core_req_valid,
input wire [NUM_REQS-1:0] core_req_rw,
input wire [NUM_REQS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr,
input wire [NUM_REQS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [NUM_REQS-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
output wire [NUM_REQS-1:0] core_req_ready,
output wire [NUM_BANKS-1:0] per_bank_core_req_valid,
output wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid,
output wire [NUM_BANKS-1:0] per_bank_core_req_rw,
output wire [NUM_BANKS-1:0][`LINE_ADDR_WIDTH-1:0] per_bank_core_req_addr,
output wire [NUM_BANKS-1:0][`UP(`WORD_SELECT_BITS)-1:0] per_bank_core_req_wsel,
output wire [NUM_BANKS-1:0][WORD_SIZE-1:0] per_bank_core_req_byteen,
output wire [NUM_BANKS-1:0][`WORD_ADDR_WIDTH-1:0] per_bank_core_req_addr,
output wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag,
output wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_req_data,
output wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag,
output wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid,
input wire [NUM_BANKS-1:0] per_bank_core_req_ready
);
if (NUM_BANKS > 1) begin
`STATIC_ASSERT (NUM_REQS >= NUM_BANKS, ("invalid number of banks"));
`UNUSED_VAR (clk)
`UNUSED_VAR (reset)
wire [NUM_REQS-1:0][`LINE_ADDR_WIDTH-1:0] core_req_line_addr;
wire [NUM_REQS-1:0][`UP(`WORD_SELECT_BITS)-1:0] core_req_wsel;
wire [NUM_REQS-1:0][`UP(`BANK_SELECT_BITS)-1:0] core_req_bid;
for (genvar i = 0; i < NUM_REQS; i++) begin
if (BANK_ADDR_OFFSET == 0) begin
assign core_req_line_addr[i] = `LINE_SELECT_ADDR0(core_req_addr[i]);
end else begin
assign core_req_line_addr[i] = `LINE_SELECT_ADDRX(core_req_addr[i]);
end
assign core_req_wsel[i] = core_req_addr[i][`UP(`WORD_SELECT_BITS)-1:0];
end
for (genvar i = 0; i < NUM_REQS; ++i) begin
if (NUM_BANKS > 1) begin
assign core_req_bid[i] = `BANK_SELECT_ADDR(core_req_addr[i]);
end else begin
assign core_req_bid[i] = 0;
end
end
if (NUM_REQS > 1) begin
reg [NUM_BANKS-1:0] per_bank_core_req_valid_r;
reg [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid_r;
reg [NUM_BANKS-1:0] per_bank_core_req_rw_r;
reg [NUM_BANKS-1:0][`LINE_ADDR_WIDTH-1:0] per_bank_core_req_addr_r;
reg [NUM_BANKS-1:0][`UP(`WORD_SELECT_BITS)-1:0] per_bank_core_req_wsel_r;
reg [NUM_BANKS-1:0][WORD_SIZE-1:0] per_bank_core_req_byteen_r;
reg [NUM_BANKS-1:0][`WORD_ADDR_WIDTH-1:0] per_bank_core_req_addr_r;
reg [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag_r;
reg [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_req_data_r;
reg [NUM_BANKS-1:0] per_bank_core_req_stall;
reg [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag_r;
reg [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid_r;
reg [NUM_REQS-1:0] core_req_ready_r;
reg [NUM_REQS-1:0] core_req_sel_r;
wire [NUM_REQS-1:0][`BANK_SELECT_BITS-1:0] core_req_bid;
for (genvar i = 0; i < NUM_REQS; ++i) begin
assign core_req_bid[i] = `BANK_SELECT_ADDR(core_req_addr[i]);
end
reg [NUM_REQS-1:0] core_req_ready_r;
always @(*) begin
per_bank_core_req_valid_r = 0;
per_bank_core_req_tid_r = 'x;
per_bank_core_req_rw_r = 'x;
per_bank_core_req_byteen_r= 'x;
per_bank_core_req_addr_r = 'x;
per_bank_core_req_tag_r = 'x;
per_bank_core_req_wsel_r = 'x;
per_bank_core_req_byteen_r= 'x;
per_bank_core_req_data_r = 'x;
per_bank_core_req_tag_r = 'x;
per_bank_core_req_tid_r = 'x;
for (integer i = NUM_REQS-1; i >= 0; --i) begin
for (integer i = NUM_REQS-1; i >= 0; --i) begin
if (core_req_valid[i]) begin
per_bank_core_req_valid_r[core_req_bid[i]] = 1;
per_bank_core_req_tid_r[core_req_bid[i]] = `REQS_BITS'(i);
per_bank_core_req_rw_r[core_req_bid[i]] = core_req_rw[i];
per_bank_core_req_addr_r[core_req_bid[i]] = core_req_line_addr[i];
per_bank_core_req_wsel_r[core_req_bid[i]] = core_req_wsel[i];
per_bank_core_req_byteen_r[core_req_bid[i]]= core_req_byteen[i];
per_bank_core_req_addr_r[core_req_bid[i]] = core_req_addr[i];
per_bank_core_req_tag_r[core_req_bid[i]] = core_req_tag[i];
per_bank_core_req_data_r[core_req_bid[i]] = core_req_data[i];
per_bank_core_req_tag_r[core_req_bid[i]] = core_req_tag[i];
per_bank_core_req_tid_r[core_req_bid[i]] = `REQS_BITS'(i);
end
end
end
@ -84,65 +107,63 @@ module VX_cache_core_req_bank_sel #(
for (integer j = 0; j < NUM_BANKS; ++j) begin
for (integer i = 0; i < NUM_REQS; ++i) begin
if (core_req_valid[i] && (core_req_bid[i] == `BANK_SELECT_BITS'(j))) begin
core_req_ready_r[i] = ~per_bank_core_req_stall[j];
core_req_ready_r[i] = per_bank_core_req_ready[j];
break;
end
end
end
end
always @(*) begin
core_req_sel_r = 0;
for (integer j = 0; j < NUM_BANKS; ++j) begin
for (integer i = 0; i < NUM_REQS; ++i) begin
if (core_req_valid[i] && (core_req_bid[i] == `BANK_SELECT_BITS'(j))) begin
core_req_sel_r[i] = ~per_bank_core_req_stall[j];
end
end
end
end
reg [63:0] bank_stalls_r;
always @(posedge clk) begin
if (reset) begin
bank_stalls_r <= 0;
end else begin
bank_stalls_r <= bank_stalls_r + 64'($countones(core_req_sel_r & ~core_req_ready_r));
end
end
for (genvar i = 0; i < NUM_BANKS; ++i) begin
assign per_bank_core_req_stall[i] = ~per_bank_core_req_ready[i] && (!BUFFERED || per_bank_core_req_valid[i]);
VX_pipe_register #(
.DATAW (1 + `REQS_BITS + 1 + WORD_SIZE + `WORD_ADDR_WIDTH + CORE_TAG_WIDTH + `WORD_WIDTH),
.RESETW (1),
.DEPTH (BUFFERED)
) pipe_reg (
.clk (clk),
.reset (reset),
.enable (~per_bank_core_req_stall[i]),
.data_in ({per_bank_core_req_valid_r[i], per_bank_core_req_tid_r[i], per_bank_core_req_rw_r[i], per_bank_core_req_byteen_r[i], per_bank_core_req_addr_r[i], per_bank_core_req_tag_r[i], per_bank_core_req_data_r[i]}),
.data_out ({per_bank_core_req_valid[i], per_bank_core_req_tid[i], per_bank_core_req_rw[i], per_bank_core_req_byteen[i], per_bank_core_req_addr[i], per_bank_core_req_tag[i], per_bank_core_req_data[i]})
);
end
assign per_bank_core_req_valid = per_bank_core_req_valid_r;
assign per_bank_core_req_rw = per_bank_core_req_rw_r;
assign per_bank_core_req_addr = per_bank_core_req_addr_r;
assign per_bank_core_req_wsel = per_bank_core_req_wsel_r;
assign per_bank_core_req_byteen = per_bank_core_req_byteen_r;
assign per_bank_core_req_data = per_bank_core_req_data_r;
assign per_bank_core_req_tag = per_bank_core_req_tag_r;
assign per_bank_core_req_tid = per_bank_core_req_tid_r;
assign core_req_ready = core_req_ready_r;
assign bank_stalls = bank_stalls_r;
end else begin
`UNUSED_VAR (clk)
`UNUSED_VAR (reset)
assign bank_stalls = 0;
assign per_bank_core_req_valid = core_req_valid;
assign per_bank_core_req_tid[0] = 0;
assign per_bank_core_req_rw[0] = core_req_rw;
assign per_bank_core_req_byteen[0] = core_req_byteen;
assign per_bank_core_req_addr[0] = core_req_addr;
assign per_bank_core_req_tag[0] = core_req_tag;
assign per_bank_core_req_data[0] = core_req_data;
assign core_req_ready[0] = per_bank_core_req_ready;
`UNUSED_VAR (core_req_bid)
end
assign per_bank_core_req_valid = core_req_valid[0];
assign per_bank_core_req_rw[0] = core_req_rw[0];
assign per_bank_core_req_addr[0] = core_req_line_addr[0];
assign per_bank_core_req_wsel[0] = core_req_wsel[0];
assign per_bank_core_req_byteen[0] = core_req_byteen[0];
assign per_bank_core_req_data[0] = core_req_data[0];
assign per_bank_core_req_tag[0] = core_req_tag[0];
assign per_bank_core_req_tid[0] = 0;
assign core_req_ready[0] = per_bank_core_req_ready;
end
`ifdef PERF_ENABLE
reg [NUM_REQS-1:0] core_req_sel_r;
always @(*) begin
core_req_sel_r = 0;
for (integer j = 0; j < NUM_BANKS; ++j) begin
for (integer i = 0; i < NUM_REQS; ++i) begin
if (core_req_valid[i] && (core_req_bid[i] == `UP(`BANK_SELECT_BITS)'(j))) begin
core_req_sel_r[i] = per_bank_core_req_ready[j];
end
end
end
end
reg [63:0] bank_stalls_r;
always @(posedge clk) begin
if (reset) begin
bank_stalls_r <= 0;
end else begin
bank_stalls_r <= bank_stalls_r + 64'($countones(core_req_sel_r & ~core_req_ready));
end
end
assign bank_stalls = bank_stalls_r;
`endif
endmodule

View file

@ -16,10 +16,10 @@ module VX_cache_core_rsp_merge #(
input wire reset,
// Per Bank WB
input wire [NUM_BANKS-1:0] per_bank_core_rsp_valid,
input wire [NUM_BANKS-1:0] per_bank_core_rsp_valid,
input wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_rsp_data,
input wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_rsp_tag,
input wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_rsp_tid,
input wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_rsp_data,
output wire [NUM_BANKS-1:0] per_bank_core_rsp_ready,
// Core Response

View file

@ -39,7 +39,7 @@ module VX_data_access #(
// writing
input wire writeen,
input wire is_fill,
input wire [`UP(`WORD_SELECT_BITS)-1:0] wsel,
input wire [`WORD_SELECT_BITS-1:0] wsel,
input wire [WORD_SIZE-1:0] byteen,
input wire [`CACHE_LINE_WIDTH-1:0] wrdata
);

View file

@ -4,14 +4,15 @@ module VX_miss_resrv #(
parameter CACHE_ID = 0,
parameter BANK_ID = 0,
// Number of Word requests per cycle
parameter NUM_REQS = 1,
// Size of line inside a bank in bytes
parameter CACHE_LINE_SIZE = 1,
// Number of banks
parameter NUM_BANKS = 1,
parameter NUM_BANKS = 1,
// Size of a word in bytes
parameter WORD_SIZE = 1,
// Number of Word requests per cycle
parameter NUM_REQS = 1,
// Miss Reserv Queue Knob
parameter MSHR_SIZE = 1,
parameter ALM_FULL = (MSHR_SIZE-1),

View file

@ -38,8 +38,8 @@ module VX_shared_mem #(
// Core request
input wire [NUM_REQS-1:0] core_req_valid,
input wire [NUM_REQS-1:0] core_req_rw,
input wire [NUM_REQS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQS-1:0][`WORD_ADDR_WIDTH-1:0] core_req_addr,
input wire [NUM_REQS-1:0][WORD_SIZE-1:0] core_req_byteen,
input wire [NUM_REQS-1:0][`WORD_WIDTH-1:0] core_req_data,
input wire [NUM_REQS-1:0][CORE_TAG_WIDTH-1:0] core_req_tag,
output wire [NUM_REQS-1:0] core_req_ready,
@ -63,12 +63,12 @@ module VX_shared_mem #(
`endif
wire [NUM_BANKS-1:0] per_bank_core_req_valid_unqual;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid_unqual;
wire [NUM_BANKS-1:0] per_bank_core_req_rw_unqual;
wire [NUM_BANKS-1:0][`LINE_ADDR_WIDTH-1:0] per_bank_core_req_addr_unqual;
wire [NUM_BANKS-1:0][WORD_SIZE-1:0] per_bank_core_req_byteen_unqual;
wire [NUM_BANKS-1:0][`WORD_ADDR_WIDTH-1:0] per_bank_core_req_addr_unqual;
wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_req_data_unqual;
wire [NUM_BANKS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag_unqual;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid_unqual;
wire [NUM_BANKS-1:0] per_bank_core_req_ready_unqual;
VX_cache_core_req_bank_sel #(
@ -77,28 +77,26 @@ module VX_shared_mem #(
.WORD_SIZE (WORD_SIZE),
.NUM_REQS (NUM_REQS),
.CORE_TAG_WIDTH (CORE_TAG_WIDTH),
.BANK_ADDR_OFFSET(BANK_ADDR_OFFSET),
.BUFFERED (0)
.BANK_ADDR_OFFSET(BANK_ADDR_OFFSET)
) core_req_bank_sel (
.clk (clk),
.reset (reset),
`ifdef PERF_ENABLE
.bank_stalls(perf_cache_if.bank_stalls),
`else
`UNUSED_PIN (bank_stalls),
`endif
.core_req_valid (core_req_valid),
.core_req_rw (core_req_rw),
.core_req_byteen(core_req_byteen),
.core_req_rw (core_req_rw),
.core_req_addr (core_req_addr),
.core_req_byteen(core_req_byteen),
.core_req_data (core_req_data),
.core_req_tag (core_req_tag),
.core_req_ready (core_req_ready),
.per_bank_core_req_valid (per_bank_core_req_valid_unqual),
.per_bank_core_req_valid (per_bank_core_req_valid_unqual),
.per_bank_core_req_tid (per_bank_core_req_tid_unqual),
.per_bank_core_req_rw (per_bank_core_req_rw_unqual),
.per_bank_core_req_byteen(per_bank_core_req_byteen_unqual),
.per_bank_core_req_addr (per_bank_core_req_addr_unqual),
`UNUSED_PIN (per_bank_core_req_wsel),
.per_bank_core_req_byteen(per_bank_core_req_byteen_unqual),
.per_bank_core_req_tag (per_bank_core_req_tag_unqual),
.per_bank_core_req_data (per_bank_core_req_data_unqual),
.per_bank_core_req_ready (per_bank_core_req_ready_unqual)
@ -108,12 +106,12 @@ module VX_shared_mem #(
`UNUSED_VAR (per_bank_core_req_rw_unqual)
wire [NUM_BANKS-1:0] per_bank_core_req_valid;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid;
wire [NUM_REQS-1:0] per_bank_core_req_rw;
wire [NUM_BANKS-1:0] per_bank_core_req_rw;
wire [NUM_BANKS-1:0][`LINE_SELECT_BITS-1:0] per_bank_core_req_addr;
wire [NUM_BANKS-1:0][WORD_SIZE-1:0] per_bank_core_req_byteen;
wire [NUM_BANKS-1:0][`LINE_SELECT_BITS-1:0] per_bank_core_req_addr;
wire [NUM_BANKS-1:0][`WORD_WIDTH-1:0] per_bank_core_req_data;
wire [NUM_REQS-1:0][CORE_TAG_WIDTH-1:0] per_bank_core_req_tag;
wire [NUM_BANKS-1:0][`REQS_BITS-1:0] per_bank_core_req_tid;
wire creq_push, creq_pop, creq_empty, creq_full;
wire crsq_full;
@ -121,18 +119,16 @@ module VX_shared_mem #(
assign creq_push = (| core_req_valid) && !creq_full;
assign creq_pop = ~creq_empty && ~crsq_full;
assign per_bank_core_req_ready_unqual = {NUM_BANKS{~creq_full}};
assign per_bank_core_req_ready_unqual = {NUM_BANKS{~creq_full}};
wire [NUM_REQS-1:0][`LINE_SELECT_BITS-1:0] per_bank_core_req_addr_qual;
`UNUSED_VAR (per_bank_core_req_addr_unqual)
for (genvar i = 0; i < NUM_REQS; i++) begin
wire [`LINE_ADDR_WIDTH-1:0] tmp = `LINE_SELECT_ADDRX(per_bank_core_req_addr_unqual[i]);
assign per_bank_core_req_addr_qual[i] = tmp[`LINE_SELECT_BITS-1:0];
`UNUSED_VAR (tmp)
for (genvar i = 0; i < NUM_REQS; i++) begin
assign per_bank_core_req_addr_qual[i] = per_bank_core_req_addr_unqual[i][`LINE_SELECT_BITS-1:0];
end
VX_fifo_queue #(
.DATAW (NUM_BANKS * (1 + `REQS_BITS + 1 + WORD_SIZE + `LINE_SELECT_BITS + `WORD_WIDTH + CORE_TAG_WIDTH)),
.DATAW (NUM_BANKS * (1 + 1 + `LINE_SELECT_BITS + WORD_SIZE + `WORD_WIDTH + CORE_TAG_WIDTH + `REQS_BITS)),
.SIZE (CREQ_SIZE),
.BUFFERED (1)
) core_req_queue (
@ -140,20 +136,20 @@ module VX_shared_mem #(
.reset (reset),
.push (creq_push),
.pop (creq_pop),
.data_in ({per_bank_core_req_valid_unqual,
per_bank_core_req_tid_unqual,
.data_in ({per_bank_core_req_valid_unqual,
per_bank_core_req_rw_unqual,
per_bank_core_req_byteen_unqual,
per_bank_core_req_addr_qual,
per_bank_core_req_byteen_unqual,
per_bank_core_req_data_unqual,
per_bank_core_req_tag_unqual}),
.data_out({per_bank_core_req_valid,
per_bank_core_req_tid,
per_bank_core_req_tag_unqual,
per_bank_core_req_tid_unqual}),
.data_out({per_bank_core_req_valid,
per_bank_core_req_rw,
per_bank_core_req_byteen,
per_bank_core_req_addr,
per_bank_core_req_byteen,
per_bank_core_req_data,
per_bank_core_req_tag}),
per_bank_core_req_tag,
per_bank_core_req_tid}),
.empty (creq_empty),
.full (creq_full),
`UNUSED_PIN (alm_empty),
@ -248,13 +244,41 @@ module VX_shared_mem #(
`endif
`ifdef PERF_ENABLE
assign perf_cache_if.reads = '0;
assign perf_cache_if.writes = '0;
// per cycle: core_reads, core_writes
reg [($clog2(NUM_REQS+1)-1):0] perf_core_reads_per_cycle, perf_core_writes_per_cycle;
reg [($clog2(NUM_REQS+1)-1):0] perf_crsp_stall_per_cycle;
assign perf_core_reads_per_cycle = $countones(core_req_valid & core_req_ready & ~core_req_rw);
assign perf_core_writes_per_cycle = $countones(core_req_valid & core_req_ready & core_req_rw);
if (CORE_TAG_ID_BITS != 0) begin
assign perf_crsp_stall_per_cycle = $countones(core_rsp_valid & {NUM_REQS{!core_rsp_ready}});
end else begin
assign perf_crsp_stall_per_cycle = $countones(core_rsp_valid & ~core_rsp_ready);
end
reg [63:0] perf_core_reads;
reg [63:0] perf_core_writes;
reg [63:0] perf_crsp_stalls;
always @(posedge clk) begin
if (reset) begin
perf_core_reads <= 0;
perf_core_writes <= 0;
perf_crsp_stalls <= 0;
end else begin
perf_core_reads <= perf_core_reads + 64'(perf_core_reads_per_cycle);
perf_core_writes <= perf_core_writes + 64'(perf_core_writes_per_cycle);
perf_crsp_stalls <= perf_crsp_stalls + 64'(perf_crsp_stall_per_cycle);
end
end
assign perf_cache_if.reads = perf_core_reads;
assign perf_cache_if.writes = perf_core_writes;
assign perf_cache_if.read_misses = '0;
assign perf_cache_if.write_misses = '0;
assign perf_cache_if.mshr_stalls = '0;
assign perf_cache_if.pipe_stalls = '0;
assign perf_cache_if.crsp_stalls = '0;
assign perf_cache_if.crsp_stalls = perf_crsp_stalls;
`endif
endmodule

View file

@ -29,13 +29,6 @@ module VX_fp_div #(
wire stall = ~ready_out && valid_out;
wire enable = ~stall;
wire _reset;
VX_reset_relay reset_relay (
.clk (clk),
.reset (reset),
.reset_out (_reset)
);
for (genvar i = 0; i < LANES; i++) begin
`ifdef VERILATOR
reg [31:0] r;
@ -52,7 +45,7 @@ module VX_fp_div #(
.RESETW (1)
) shift_req_dpi (
.clk (clk),
.reset (_reset),
.reset (reset),
.enable (enable),
.data_in (r),
.data_out (result[i])
@ -60,7 +53,7 @@ module VX_fp_div #(
`else
acl_fdiv fdiv (
.clk (clk),
.areset (_reset),
.areset (reset),
.en (enable),
.a (dataa[i]),
.b (datab[i]),

View file

@ -26,14 +26,7 @@ module VX_fp_sqrt #(
output wire valid_out
);
wire stall = ~ready_out && valid_out;
wire enable = ~stall;
wire _reset;
VX_reset_relay reset_relay (
.clk (clk),
.reset (reset),
.reset_out (_reset)
);
wire enable = ~stall;
for (genvar i = 0; i < LANES; i++) begin
`ifdef VERILATOR
@ -51,7 +44,7 @@ module VX_fp_sqrt #(
.RESETW (1)
) shift_req_dpi (
.clk (clk),
.reset (_reset),
.reset (reset),
.enable (enable),
.data_in (r),
.data_out (result[i])
@ -59,7 +52,7 @@ module VX_fp_sqrt #(
`else
acl_fsqrt fsqrt (
.clk (clk),
.areset (_reset),
.areset (reset),
.en (enable),
.a (dataa[i]),
.q (result[i])

View file

@ -71,12 +71,21 @@ module VX_fpu_fpga #(
endcase
end
wire [NUM_FPC-1:0] fpu_reset;
VX_reset_relay #(
.NUM_NODES(NUM_FPC)
) reset_relay (
.clk (clk),
.reset (reset),
.reset_o (fpu_reset)
);
VX_fp_fma #(
.TAGW (TAGW),
.LANES(`NUM_THREADS)
) fp_fma (
.clk (clk),
.reset (reset),
.reset (fpu_reset[FPU_FMA]),
.valid_in (valid_in && (core_select == FPU_FMA)),
.ready_in (per_core_ready_in[FPU_FMA]),
.tag_in (tag_in),
@ -100,7 +109,7 @@ module VX_fpu_fpga #(
.LANES(`NUM_THREADS)
) fp_div (
.clk (clk),
.reset (reset),
.reset (fpu_reset[FPU_DIV]),
.valid_in (valid_in && (core_select == FPU_DIV)),
.ready_in (per_core_ready_in[FPU_DIV]),
.tag_in (tag_in),
@ -120,7 +129,7 @@ module VX_fpu_fpga #(
.LANES(`NUM_THREADS)
) fp_sqrt (
.clk (clk),
.reset (reset),
.reset (fpu_reset[FPU_SQRT]),
.valid_in (valid_in && (core_select == FPU_SQRT)),
.ready_in (per_core_ready_in[FPU_SQRT]),
.tag_in (tag_in),
@ -139,7 +148,7 @@ module VX_fpu_fpga #(
.LANES(`NUM_THREADS)
) fp_cvt (
.clk (clk),
.reset (reset),
.reset (fpu_reset[FPU_CVT]),
.valid_in (valid_in && (core_select == FPU_CVT)),
.ready_in (per_core_ready_in[FPU_CVT]),
.tag_in (tag_in),
@ -160,7 +169,7 @@ module VX_fpu_fpga #(
.LANES(`NUM_THREADS)
) fp_ncomp (
.clk (clk),
.reset (reset),
.reset (fpu_reset[FPU_NCP]),
.valid_in (valid_in && (core_select == FPU_NCP)),
.ready_in (per_core_ready_in[FPU_NCP]),
.tag_in (tag_in),

View file

@ -0,0 +1,514 @@
:020000040000FA
:0400000020000004D8
:040001001FF00800E4
:040002001FE01FE4F8
:040003001FD047992A
:040004001FC07F0694
:040005001FB0C6154D
:040006001FA11CAE6C
:040007001F9182BA09
:040008001F81F82339
:040009001F727CD214
:04000A001F6310B1AF
:04000B001F53B3A824
:04000C001F4465A286
:04000D001F352689EC
:04000E001F25F6486C
:04000F001F16D4C81C
:040010001F07C1F411
:040011001EF8BDB761
:040012001EE9C7FC20
:040013001EDAE0AE63
:040014001ECC07B740
:040015001EBD3D03CC
:040016001EAE807F1B
:040017001E9FD21442
:040018001E9131B054
:040019001E829F3E66
:04001A001E741AA98D
:04001B001E65A3E0DB
:04001C001E573ACD64
:04001D001E48DF5D3D
:04001E001E3A917E77
:04001F001E2C511B27
:040020001E1E1E2260
:040021001E0FF88036
:040022001E01E022B9
:040023001DF3D4F500
:040024001DE5D6E818
:040025001DD7E5E717
:040026001DCA01E10D
:040027001DBC2AC210
:040028001DAE607B2E
:040029001DA0A2F77D
:04002A001D92F2270A
:04002B001D854DF8EA
:04002C001D77B6592D
:04002D001D6A2B38E5
:04002E001D5CAC8425
:04002F001D4F3A2DFA
:040030001D41D42179
:040031001D347A50B0
:040032001D272CA8B2
:040033001D19EB198F
:040034001D0CB59357
:040035001CFF8C061A
:040036001CF26E60EA
:040037001CE55C93D5
:040038001CD8568DED
:040039001CCB5C3F41
:04003A001CBE6D9AE1
:04003B001CB18A8DDD
:04003C001CA4B30944
:04003D001C97E6FF27
:04003E001C8B265F92
:04003F001C7E711A98
:040040001C71C72048
:040041001C652864AE
:040042001C5894D5DD
:040043001C4C0C65E0
:040044001C3F8F06C8
:040045001C331CA8A4
:040046001C26B53D82
:040047001C1A58B770
:040048001C0E07077C
:040049001C01C020B6
:04004A001BF583F22D
:04004B001BE95271EA
:04004C001BDD2B8EFF
:04004D001BD10F3A7A
:04004E001BC4FD6969
:04004F001BB8F60DD7
:040050001BACF919D3
:040051001BA1067E6B
:040052001B951E2FAD
:040053001B89401FA6
:040054001B7D6C4262
:040055001B71A289F0
:040056001B65E2E85C
:040057001B5A2D51B2
:040058001B4E81B901
:040059001B42E01254
:04005A001B37484FB9
:04005B001B2BBA643D
:04005C001B203644EB
:04005D001B14BBE4D1
:04005E001B094B36F9
:04005F001AFDE42E74
:040060001AF286C149
:040061001AE732E187
:040062001ADBE88439
:040063001AD0A79C6C
:040064001AC5701F2A
:040065001ABA420081
:040066001AAF1D337D
:040067001AA401AE28
:040068001A98EF648F
:040069001A8DE64ABC
:04006A001A82E655BB
:04006B001A77EF7998
:04006C001A6D01AB5D
:04006D001A621CDF18
:04006E001A57410BD1
:04006F001A4C6E2495
:040070001A41A41E6F
:040071001A36E2EF6A
:040072001A2C2A8C8E
:040073001A217AE9EB
:040074001A16D3FD88
:040075001A0C35BD6F
:040076001A01A01EAD
:0400770019F713154D
:0400780019EC8E9958
:0400790019E2129ED8
:04007A0019D79F1BD8
:04007B0019CD340661
:04007C0019C2D15381
:04007D0019B876F93F
:04007E0019AE24EEA5
:04007F0019A3DB28BE
:040080001999999E93
:04008100198F60442F
:0400820019852F129B
:04008300197B05FDE3
:040084001970E4FC0F
:040085001966CC0626
:04008600195CBB1036
:040087001952B21147
:040088001948B10161
:04008900193EB7D590
:04008A001934C684DB
:04008B00192ADD044D
:04008C001920FB4EEE
:04008D0019172157C7
:04008E00190D4F16E3
:04008F00190384834A
:0400900018F9C19406
:0400910018F006401D
:0400920018E6527F9B
:0400930018DCA64887
:0400940018D30191EB
:0400950018C96453CF
:0400960018BFCE843D
:0400970018B6401D3A
:0400980018ACB913D4
:0400990018A339600F
:04009A001899C0FAF7
:04009B0018904FD991
:04009C001886E5F5E8
:04009D00187D834502
:04009E00187427C1EA
:04009F00186AD361A7
:0400A0001861861C41
:0400A10018583FECC0
:0400A200184F00C62D
:0400A3001845C8A58F
:0400A400183C977FEE
:0400A50018336D4C53
:0400A600182A4A05C5
:0400A70018212DA34C
:0400A8001818181CF0
:0400A900180F096AB9
:0400AA0018060184AF
:0400AB0017FD0064D9
:0400AC0017F406013E
:0400AD0017EB1254E7
:0400AE0017E22555DB
:0400AF0017D93EFE21
:0400B00017D05F45C1
:0400B10017C78625C2
:0400B20017BEB3962C
:0400B30017B5E79006
:0400B40017AD220D55
:0400B50017A4630425
:0400B600179BAA707A
:0400B7001792F8485C
:0400B800178A4C85D2
:0400B9001781A722E2
:0400BA001779081694
:0400BB0017706F5AF1
:0400BC001767DCE8FE
:0400BD00175F50B9C0
:0400BE001756CAC641
:0400BF00174E4B0885
:0400C0001745D17897
:0400C100173D5E1079
:0400C2001734F0C936
:0400C300172C899CD1
:0400C4001724288352
:0400C500171BCD77C1
:0400C6001713787222
:0400C700170B296C7E
:0400C8001702E060DB
:0400C90016FA9D473F
:0400CA0016F2601BAF
:0400CB0016EA28D534
:0400CC0016E1F76FD3
:0400CD0016D9CBE392
:0400CE0016D1A62A77
:0400CF0016C9863F89
:0400D00016C16C1BCE
:0400D10016B957B74E
:0400D20016B1490F0B
:0400D30016A9401B0F
:0400D40016A13CD560
:0400D50016993F3900
:0400D6001691473FF9
:0400D700168954E151
:0400D8001681681A0B
:0400D900167980E52F
:0400DA0016719F3AC2
:0400DB001669C314CB
:0400DC001661EC6E4F
:0400DD00165A1B4252
:0400DE0016524F89DE
:0400DF00164A893FF5
:0400E0001642C85D9F
:0400E100163B0CDEE0
:0400E200163356BDBE
:0400E300162BA5F340
:0400E4001623FA7B6A
:0400E500161C545041
:0400E6001614B36CCD
:0400E700160D17CA11
:0400E8001605816414
:0400E90015FDF035DC
:0400EA0015F664386B
:0400EB0015EEDD67CA
:0400EC0015E75BBDFC
:0400ED0015DFDF3408
:0400EE0015D867C8F2
:0400EF0015D0F573C0
:0400F00015C9883076
:0400F10015C21FF91C
:0400F20015BABCCAB5
:0400F30015B35E9E45
:0400F40015AC056FD3
:0400F50015A4B13865
:0400F600159D61F5FE
:0400F700159617A0A3
:0400F800158ED2345B
:0400F900158791AD29
:0400FA001580560512
:0400FB0015791F381C
:0400FC001571ED404D
:0400FD00156AC019A7
:0400FE00156397BE31
:0400FF00155C742BED
:0401000015555559E3
:04010100154E3B4616
:04010200154725EB8D
:04010300154015444A
:040104001539094D53
:0401050015320201AC
:04010600152AFF5B5C
:040107001524015664
:04010800151D07EFCB
:040109001516132094
:04010A00150F22E5C6
:04010B001508373A62
:04010C001501501970
:04010D0014FA6D7FF4
:04010E0014F38F67F0
:04010F0014ECB5CC6B
:0401100014E5E0AB67
:0401110014DF0FFFE9
:0401120014D843C3F7
:0401130014D17BF395
:0401140014CAB88BC6
:0401150014C3F9878F
:0401160014BD3EE2F4
:0401170014B68898FA
:0401180014AFD6A4A6
:0401190014A92904F8
:04011A0014A27FB1FB
:04011B00149BDAA9AE
:04011C00149539E815
:04011D00148E9D6837
:04011E001488052616
:04011F001481711EB8
:04012000147AE14C20
:04012100147455AB52
:04012200146DCE3852
:0401230014674AEF24
:040124001460CBCCCC
:04012500145A50CA4E
:040126001453D9E7AE
:04012700144D671DEF
:040128001446F86918
:0401290014408DC829
:04012A00143A273527
:04012B001433C4AC19
:04012C00142D662AFE
:04012D0014270BABDD
:04012E001420B52ABA
:04012F00141A62A597
:040130001414141877
:04013100140DC97E62
:04013200140782D557
:04013300140140185B
:0401340013FB014474
:0401350013F4C654A5
:0401360013EE8F47EE
:0401370013E85C1756
:0401380013E22CC1E1
:0401390013DC014290
:04013A0013D5D9966A
:04013B0013CFB5B970
:04013C0013C995A8A6
:04013D0013C379600F
:04013E0013BD60DDB0
:04013F0013B74C1B8B
:0401400013B13B18A4
:0401410013AB2DCF00
:0401420013A5243CA1
:04014300139F1E5E8A
:0401440013991C30BF
:0401450013931DAF44
:04014600138D22D71C
:0401470013872BA649
:0401480013813817D0
:04014900137B4829B3
:04014A0013755BD6F8
:04014B00136F731C9F
:04014C0013698DF8AE
:04014D001363AC6626
:04014E00135DCE640B
:04014F001357F3ED62
:0401500013521CFF2B
:04015100134C49976B
:04015200134679B126
:040153001340AD4A5E
:04015400133AE45F17
:0401550013351EED53
:04015600132F5CF116
:0401570013299E6862
:040158001323E34E3C
:04015900131E2BA1A5
:04015A001318775DA2
:04015B001312C67F36
:04015C00130D190561
:04015D0013076EEB2B
:04015E001301C82F92
:04015F0012FC24CD9D
:0401600012F684C24D
:0401610012F0E80BA5
:0401620012EB4EA6A8
:0401630012E5B88F5A
:0401640012E025C4BC
:0401650012DA9642D2
:0401660012D50A059F
:0401670012CF810B27
:0401680012C9FB516C
:0401690012C478D56F
:04016A0012BEF99236
:04016B0012B97D87C1
:04016C0012B404B114
:04016D0012AE8F0C33
:04016E0012A91C971F
:04016F0012A3AD4EDC
:04017000129E412E6C
:040171001298D835D3
:040172001293726012
:04017300128E0FAC2D
:040174001288B01726
:040175001283539D01
:04017600127DFA3DBF
:040177001278A3F364
:04017800127350BCF2
:04017900126E00976B
:04017A001268B381D3
:04017B00126369762C
:04017C00125E227479
:04017D001258DE7ABC
:04017E0012539D83F8
:04017F00124E5F8D30
:040180001249249666
:040181001243EC9C9D
:04018200123EB79BD7
:040183001239859216
:040184001234567D5E
:04018500122F2A5AB1
:04018600122A012711
:040187001224DAE183
:04018800121FB78506
:04018900121A97129D
:04018A00121579844D
:04018B0012105EDA16
:04018C00120B4710FB
:04018D0012063225FF
:04018E001201201624
:04018F0011FC10E06F
:0401900011F70482DD
:0401910011F1FAF876
:0401920011ECF44038
:0401930011E7F05927
:0401940011E2EF3F46
:0401950011DDF0F197
:0401960011D8F56B1C
:0401970011D3FCACD8
:0401980011CF06B2CB
:0401990011CA1379FB
:04019A0011C5230068
:04019B0011C0354515
:04019C0011BB4A4405
:04019D0011B661FD39
:04019E0011B17C6CB3
:04019F0011AC998F77
:0401A00011A7B96585
:0401A10011A2DBEBE1
:0401A200119E011E8B
:0401A300119928FD89
:0401A40011945385DA
:0401A500118F80B482
:0401A600118AB08882
:0401A7001185E2FEDE
:0401A8001181181594
:0401A900117C4FCBAB
:0401AA0011778A1D22
:0401AB001172C709FD
:0401AC00116E068D3D
:0401AD00116948A7E5
:0401AE0011648D55F6
:0401AF00115FD49474
:0401B000115B1E635E
:0401B10011566AC0B9
:0401B2001151B9A886
:0401B300114D0B19C6
:0401B40011485F127D
:0401B5001143B590AD
:0401B600113F0E9156
:0401B700113A6A147B
:0401B8001135C81520
:0401B9001131289444
:0401BA00112C8B8EEB
:0401BB001127F10116
:0401BC00112358EBC8
:0401BD00111EC34B01
:0401BE00111A301EC4
:0401BF0011159F6215
:0401C00011111115F3
:0401C100110C853662
:0401C2001107FBC264
:0401C300110374B8F8
:0401C40010FEF01524
:0401C50010FA6DD8E7
:0401C60010F5EDFF44
:0401C70010F170873C
:0401C80010ECF570D2
:0401C90010E87CB707
:0401CA0010E40659DE
:0401CB0010DF925758
:0401CC0010DB20AD77
:0401CD0010D6B1593E
:0401CE0010D2445AAD
:0401CF0010CDD9AEC8
:0401D00010C971548D
:0401D10010C50B4802
:0401D20010C0A78B27
:0401D30010BC4618FE
:0401D40010B7E6F08A
:0401D50010B38A10C9
:0401D60010AF2F76C1
:0401D70010AAD72172
:0401D80010A6810EDE
:0401D90010A22D3D06
:0401DA00109DDBABEE
:0401DB0010998C5695
:0401DC0010953F3DFE
:0401DD001090F45E2C
:0401DE00108CABB71F
:0401DF0010886547D8
:0401E0001084210C5A
:0401E100107FDF04A8
:0401E200107B9F2EC1
:0401E30010776187A9
:0401E4001073260E60
:0401E500106EECC2EA
:0401E600106AB5A046
:0401E700106680A876
:0401E80010624DD77D
:0401E900105E1D2C5B
:0401EA001059EEA416
:0401EB001055C240A9
:0401EC00105197FC1B
:0401ED00104D6FD76B
:0401EE00104949D09B
:0401EF00104525E5AD
:0401F00010410414A2
:0401F100103CE45C7E
:0401F2001038C6BC3F
:0401F3001034AB30E9
:0401F400103091B97D
:0401F500102C7A54FC
:0401F6001028650068
:0401F700102451BCC3
:0401F800102040850E
:0401F900101C315A4B
:0401FA001018243A7B
:0401FB0010141923A0
:0401FC0010101014BB
:0401FD00100C090BCE
:0401FE0010080406DB
:0401FF0010040104E3
:00000001ff

View file

@ -1,514 +0,0 @@
:020000040000FA
:0400000040000004B8
:040001003FE00FFCD1
:040002003FC03FC4F8
:040003003FA08F2D5E
:040004003F80FE0833
:040005003F618C25A6
:040006003F423958E4
:040007003F2305711D
:040008003F03F0437F
:040009003EE4F9A137
:04000A003EC6215D70
:04000B003EA7674C59
:04000C003E88CB401F
:04000D003E6A4D0FEB
:04000E003E4BEC8CED
:04000F003E2DA98C4D
:040010003E0F83E537
:040011003DF17B6BD7
:040012003DD38FF457
:040013003DB5C157DF
:040014003D980F6A9A
:040015003D7A7A03B3
:040016003D5D00F953
:040017003D3FA424A1
:040018003D22635CC6
:040019003D053E77EC
:04001A003CE8354F3A
:04001B003CCB47BCD7
:04001C003CAE7596EB
:04001D003C91BEB79D
:04001E003C7522F813
:04001F003C58A23275
:040020003C3C3C40E8
:040021003C1FF0FC94
:040022003C03C0409B
:040023003BE7A9E727
:040024003BCBADCC59
:040025003BAFCBCA58
:040026003B9403BD47
:040027003B7855814C
:040028003B5CC0F18C
:040029003B4145EB27
:04002A003B25E44A44
:04002B003B0A9BEC05
:04002C003AEF6CAD8E
:04002D003AD4566CFF
:04002E003AB959057D
:04002F003A9E74562B
:040030003A83A83E29
:040031003A68F49B9A
:040032003A4E594C9D
:040033003A33D62F57
:040034003A196B23E7
:0400350039FF180770
:0400360039E4DCBC11
:0400370039CAB921E8
:0400380039B0AD1618
:040039003996B87BC1
:04003A00397CDB3002
:04003B0039631516FA
:04003C003949660FC9
:04003D00392FCDFA90
:04003E0039164CBA69
:04003F0038FCE22F78
:0400400038E38E3DD6
:0400410038CA50C4A5
:0400420038B129A602
:04004300389818C60B
:04004400387F1E07DC
:040045003866394C94
:04004600384D6A7651
:040047003834B16A2E
:04004800381C0E0B47
:040049003803803CBC
:04004A0037EB07E1A8
:04004B0037D2A4DE26
:04004C0037BA571751
:04004D0037A21E7147
:04004E003789FACF25
:04004F003771EC1702
:040050003759F22DFD
:0400510037420CF72F
:04005200372A3C5AB3
:040053003712803BA5
:0400540036FAD88020
:0400550036E3450E3B
:0400560036CBC5CB15
:0400570036B45A9FC2
:04005800369D036E60
:040059003685C01F09
:04005A00366E909AD4
:04005B00365774C4DC
:04005C0036406C8539
:04005D00362977C405
:04005E003612966858
:04005F0035FBC8584D
:0400600035E50D7DF8
:0400610035CE65BE75
:0400620035B7D103DA
:0400630035A14F3440
:04006400358AE039C0
:04006500357483FC6F
:04006600355E3A6366
:0400670035480358BD
:040068003531DEC58B
:04006900351BCC91E6
:04006A003505CCA6E6
:04006B0034EFDEEEA2
:04006C0034DA03522D
:04006D0034C439BBA3
:04006E0034AE821317
:04006F003498DC44A1
:040070003483483855
:04007100346DC5DA4B
:040072003458551396
:040073003442F5CF4F
:04007400342DA7F789
:0400750034186B765A
:0400760034034038D7
:0400770033EE262717
:0400780033D91D2E2D
:0400790033C425392E
:04007A0033AF3E332F
:04007B00339A680745
:04007C003385A2A284
:04007D003370EDEE01
:04007E00335C49D9CD
:04007F003347B64D00
:0400800033333337AC
:04008100331EC084E6
:04008200330A5E1FC0
:0400830032F60BF650
:0400840032E1C9F4A8
:0400850032CD9807D9
:0400860032B9761CF9
:0400870032A5641F1B
:04008800329161FE52
:04008900327D6FA5B0
:04008A0032698D0347
:04008B003255BA052B
:04008C003241F6986F
:04008D00322E42A924
:04008E00321A9E285C
:04008F00320709012A
:0400900031F38323A2
:0400910031E00C7CD2
:0400920031CCA4FACF
:0400930031B94C8BA8
:0400940031A6031E70
:040095003192C8A23A
:04009600317F9D0514
:04009700316C803513
:040098003159722345
:04009900314672BCBE
:04009A00313381F08D
:04009B0031209FAEC3
:04009C00310DCBE572
:04009D0030FB0685A9
:04009E0030E84F7D7A
:04009F0030D5A6BDF5
:0400A00030C30C3528
:0400A10030B07FD329
:0400A200309E018902
:0400A300308B9146C7
:0400A40030792EF988
:0400A5003066DA9453
:0400A6003054940737
:0400A70030425B4147
:0400A8003030303490
:0400A900301E12D023
:0400AA00300C03050E
:0400AB002FFA00C464
:0400AC002FE80BFE30
:0400AD002FD624A482
:0400AE002FC44AA76A
:0400AF002FB27DF7F8
:0400B0002FA0BE8738
:0400B1002F8F0C473A
:0400B2002F7D67280F
:0400B3002F6BCF1DC3
:0400B4002F5A441665
:0400B5002F48C60505
:0400B6002F3754DBB1
:0400B7002F25F08B76
:0400B8002F14990761
:0400B9002F034E3F84
:0400BA002EF21027EB
:0400BB002EE0DEB0A5
:0400BC002ECFB9CCBE
:0400BD002EBEA16E44
:0400BE002EAD958846
:0400BF002E9C960CD1
:0400C0002E8BA2EDF4
:0400C1002E7ABC1DBA
:0400C2002E69E18E34
:0400C3002E5913356A
:0400C4002E4851026F
:0400C5002E379AEA4E
:0400C6002E26F0DF13
:0400C7002E1652D4CB
:0400C8002E05C0BC85
:0400C9002DF53A8A4D
:0400CA002DE4C0322F
:0400CB002DD451A639
:0400CC002DC3EEDA78
:0400CD002DB397C2F6
:0400CE002DA34C51C1
:0400CF002D930C7AE7
:0400D0002D82D83174
:0400D1002D72AF6B72
:0400D2002D629219F0
:0400D3002D528031F9
:0400D4002D4279A799
:0400D5002D327E6DDD
:0400D6002D228E79D0
:0400D7002D12A9BE7F
:0400D8002D02D031F4
:0400D9002CF301C53E
:0400DA002CE33E7065
:0400DB002CD3862577
:0400DC002CC3D8D980
:0400DD002CB4368089
:0400DE002CA49F0EA1
:0400DF002C95127AD0
:0400E0002C8590B625
:0400E1002C7619B8A8
:0400E2002C66AD7566
:0400E3002C574BE16A
:0400E4002C47F4F2BF
:0400E5002C38A89C6F
:0400E6002C2966D487
:0400E7002C1A2F9010
:0400E8002C0B02C516
:0400E9002BFBE067A6
:0400EA002BECC86CC7
:0400EB002BDDBACA85
:0400EC002BCEB776EA
:0400ED002BBFBE6403
:0400EE002BB0CF8CD8
:0400EF002BA1EAE275
:0400F0002B93105BE3
:0400F1002B843FEE2F
:0400F2002B75799160
:0400F3002B66BD3883
:0400F4002B580ADAA1
:0400F5002B49626DC4
:0400F6002B3AC3E6F8
:0400F7002B2C2F3C43
:0400F8002B1DA465B3
:0400F9002B0F235650
:0400FA002B00AC0724
:0400FB002AF23E6C3B
:0400FC002AE3DA7D9C
:0400FD002AD5802F51
:0400FE002AC72F7965
:0400FF002AB8E851E2
:040100002AAAAAAFCE
:040101002A9C768737
:040102002A8E4BD125
:040103002A802A84A0
:040104002A721296B3
:040105002A6403FD68
:040106002A55FEB1C7
:040107002A4802A8D8
:040108002A3A0FDAA6
:040109002A2C263C3A
:04010A002A1E45C69E
:04010B002A106E6FD9
:04010C002A02A02EF5
:04010D0029F4DAFAFD
:04010E0029E71ECAF5
:04010F0029D96B95EA
:0401100029CBC152E4
:0401110029BE1FFAEA
:0401120029B0878207
:0401130029A2F7E244
:0401140029957112A6
:040115002987F3093A
:04011600297A7DBF06
:04011700296D112B12
:04011800295FAD4569
:040119002952520312
:04011A002944FF5F16
:04011B002937B54F7C
:04011C00292A73CB4E
:04011D00291D3ACC92
:04011E0029100A4852
:04011F002902E23897
:0401200028F5C29369
:0401210028E8AB52CD
:0401220028DB9C6DCD
:0401230028CE95DB72
:0401240028C19794C3
:0401250028B4A191C8
:0401260028A7B3CA89
:04012700289ACE360E
:04012800288DF0CF5F
:0401290028811B8C82
:04012A0028744E6582
:04012B002867895464
:04012C00285ACC5031
:04012D00284E1751F0
:04012E0028416A51A9
:04012F002834C54764
:040130002828282C27
:04013100281B92F9FC
:04013200280F05A6E7
:040133002802802CF2
:0401340027F6028325
:0401350027E98CA585
:0401360027DD1E891A
:0401370027D0B829EC
:0401380027C4597E01
:0401390027B8027F62
:04013A0027ABB32715
:04013B00279F6B6E21
:04013C0027932B4D8D
:04013D002786F2BD62
:04013E00277AC1B6A5
:04013F00276E98335C
:040140002762762B91
:0401410027565B9949
:04014200274A48758B
:04014300273E3CB85F
:040144002732385CCA
:0401450027263B5AD4
:04014600271A45AB84
:04014700270E5748E0
:040148002702702BEF
:0401490026F6904DB9
:04014A0026EAB7A842
:04014B0026DEE63492
:04014C0026D31BECAF
:04014D0026C758C8A1
:04014E0026BB9CC36D
:04014F0026AFE7D61A
:0401500026A439FAAE
:040151002698932A2F
:04015200268CF35EA6
:0401530026815A9017
:040154002675C8BB89
:04015500266A3DD702
:04015600265EB9DF89
:0401570026533CCC23
:040158002647C698D8
:04015900263C573EAB
:04015A002630EEB6A7
:04015B0026258CFBCE
:04015C00261A320627
:04015D00260EDDD3BA
:04015E002603905A8A
:04015F0025F84995A1
:0401600025ED097F01
:0401610025E1D012B2
:0401620025D69D48B9
:0401630025CB711B1C
:0401640025C04B85E2
:0401650025B52C8010
:0401660025AA1406AC
:04016700259F0213BB
:040168002593F69F46
:040169002588F1A64E
:04016A00257DF321DB
:04016B002572FB0BF3
:04016C002568095E9B
:04016D00255D1E15D9
:04016E002552392AB3
:04016F0025475A972F
:04017000253C825850
:040171002531B0661E
:040172002526E4BB9F
:04017300251C1F54D4
:0401740025116029C8
:040175002506A7367E
:0401760024FBF475FD
:0401770024F147E147
:0401780024E6A17563
:0401790024DC012B56
:04017A0024D166FE28
:04017B0024C6D2E8DC
:04017C0024BC44E576
:04017D0024B1BCEFFE
:04017E0024A73B0176
:04017F00249CBF16E7
:040180002492492953
:040181002487D934C2
:04018200247D6F3237
:0401830024730B1FB7
:040184002468ACF54A
:04018500245E54B0F0
:0401860024540249B2
:040187002449B5BD95
:04018800243F6F069B
:0401890024352E20CB
:04018A00242AF3052B
:04018B002420BDB0BF
:04018C0024168E1D8A
:04018D00240C644694
:04018E0024024028DF
:04018F0023F821BD73
:0401900023EE08FF53
:0401910023E3F5EC83
:0401920023D9E87D08
:0401930023CFE0AEE8
:0401940023C5DE7A27
:0401950023BBE1DDCA
:0401960023B1EAD2D5
:0401970023A7F9544D
:04019800239E0D5F36
:04019900239426EE97
:04019A00238A45FC73
:04019B0023806A85CE
:04019C0023769485AD
:04019D00236CC3F616
:04019E002362F8D40C
:04019F002359331B92
:0401A000234F72C6B1
:0401A1002345B7D16A
:0401A200233C0238C0
:0401A300233251F5BD
:0401A4002328A70560
:0401A500231F0163B0
:0401A6002315610BB1
:0401A700230BC5F869
:0401A80023023027D7
:0401A90022F89F9207
:0401AA0022EF1436F6
:0401AB0022E58E0EAD
:0401AC0022DC0D162E
:0401AD0022D2914A7F
:0401AE0022C91AA6A2
:0401AF0022BFA9259D
:0401B00022B63CC374
:0401B10022ACD57C2B
:0401B20022A3734CC5
:0401B300229A162F47
:0401B4002290BE20B7
:0401B50022876B1C16
:0401B600227E1D1E6A
:0401B7002274D423B7
:0401B800226B902600
:0401B9002262512449
:0401BA002259171897
:0401BB00224FE1FEF0
:0401BC002246B1D353
:0401BD00223D8692C7
:0401BE002234603750
:0401BF00222B3EBFF2
:0401C00022222226AF
:0401C10022190A688D
:0401C200220FF78091
:0401C3002206E96BBC
:0401C40021FDE02613
:0401C50021F4DBAC9A
:0401C60021EBDBF955
:0401C70021E2E10B45
:0401C80021D9EADC73
:0401C90021D0F969DF
:0401CA0021C80CAF8D
:0401CB0021BF24AA82
:0401CC0021B64155C2
:0401CD0021AD62AE50
:0401CE0021A488B030
:0401CF00219BB35964
:0401D0002192E2A3F3
:0401D100218A168DDC
:0401D20021814F1127
:0401D30021788C2DD6
:0401D400216FCDDCEE
:0401D5002167141C6E
:0401D600215E5EE860
:0401D7002155AE3EC2
:0401D800214D02199A
:0401D90021445A76ED
:0401DA00213BB751BD
:0401DB00213318A80C
:0401DC00212A7E76E0
:0401DD002121E8B83C
:0401DE002119576B21
:0401DF002110CA8B96
:0401E000210842149C
:0401E10020FFBE0439
:0401E20020F73E576D
:0401E30020EEC30A3D
:0401E40020E64C19AC
:0401E50020DDD980C0
:0401E60020D56B3D78
:0401E70020CD014CDA
:0401E80020C49BAAEA
:0401E90020BC3A53A9
:0401EA0020B3DD451C
:0401EB0020AB847B46
:0401EC0020A32FF429
:0401ED00209ADFAACB
:0401EE002092939C2C
:0401EF00208A4BC651
:0401F000208208243D
:0401F1002079C8B5F4
:0401F20020718D7378
:0401F3002069565DCC
:0401F4002061236EF5
:0401F5002058F4A5F5
:0401F6002050C9FDCF
:0401F7002048A37485
:0401F800204081061C
:0401F900203862B197
:0401FA0020304871F8
:0401FB002028324343
:0401FC00202020247B
:0401FD0020181212A2
:0401FE0020100808BD
:0401FF0020080204CE
:00000001ff

View file

@ -0,0 +1,514 @@
:020000040000FA
:03000000100002EB
:03000100100FF6E7
:03000200101FD2FA
:03000300102F9526
:03000400103F4466
:03000500104ED9C1
:03000600105E5831
:03000700106DC1B8
:03000800107D1454
:03000900108C4D0B
:03000A00109B6FD9
:03000B0010AA7FB9
:03000C0010B977B1
:03000D0010C85BBD
:03000E0010D726E2
:03000F0010E5DC1D
:0300100010F47E6B
:0300110011030CCC
:0300120011118148
:03001300111FE1D9
:03001400112E2F7B
:03001500113C6A31
:03001600114A8DFF
:0300170011589FDE
:03001800116699D5
:03001900117480DF
:03001A00118258F8
:03001B001190162B
:03001C00119DC370
:03001D0011AB5FC5
:03001E0011B8E333
:03001F0011C657B0
:0300200011D3B841
:0300210011E105E5
:0300220011EE3F9D
:0300230011FB6965
:0300240012087D42
:0300250012158130
:0300260012227033
:03002700122F5342
:03002800123C1D6A
:030029001248DD9D
:03002A00125585E7
:03002B0012621D41
:03002C00126EA3AE
:03002D00127B192A
:03002E00128781B5
:03002F001293D455
:0300300012A01605
:0300310012AC47C7
:0300320012B86A97
:0300330012C47C78
:0300340012D07C6B
:0300350012DC6A70
:0300360012E84B82
:0300370012F419A7
:0300380012FFDBD9
:03003900130B8C1A
:03003A0013172B6E
:03003B001322BDD0
:03003C00132E3E42
:03003D001339AFC5
:03003E0013451156
:03003F00135063F8
:03004000135BAAA5
:030041001366DD66
:0300420013720531
:03004300137D1D0D
:03004400138824FA
:0300450013931FF3
:03004600139E0CFA
:0300470013A8E813
:0300480013B3BA35
:0300490013BE786B
:03004A0013C92EA9
:03004B0013D3D0FC
:03004C0013DE6759
:03004D0013E8F2C3
:03004E0013F36E3B
:03004F0013FDDDC1
:0300500014083A57
:0300510014128EF8
:03005200141CD4A7
:0300530014270E61
:030054001431372D
:03005500143B5603
:03005600144567E7
:03005700144F6DD6
:03005800145962D6
:0300590014634DE0
:03005A00146D2CF6
:03005B001476FD1B
:03005C001480C449
:03005D00148A7B87
:03005E00149428CF
:03005F00149DC825
:0300600014A75B87
:0300610014B0E4F4
:0300620014BA5F6E
:0300630014C3D1F2
:0300640014CD3484
:0300650014D68C22
:0300660014DFDCC8
:0300670014E91D7C
:0300680014F2523D
:0300690014FB7E07
:03006A0015049BDF
:03006B00150DADC3
:03006C001516B6B0
:03006D00151FB5A7
:03006E001528A7AB
:03006F0015318DBB
:03007000153A69D5
:03007100154339FB
:03007200154BFE2D
:030073001554BE63
:03007400155D6FA8
:03007500156614F9
:03007600156EAE56
:03007700157742B8
:03007800157FC62B
:03007900158846A1
:03007A001590B727
:03007B0015991DB7
:03007C0015A17C4F
:03007D0015A9D1F1
:03007E0015B21C9C
:03007F0015BA5B54
:0300800015C28F17
:0300810015CABBE2
:0300820015D2DDB7
:0300830015DAF794
:0300840015E3067B
:0300850015EB0B6D
:0300860015F30768
:0300870015FAFC6B
:030088001602E37A
:03008900160AC292
:03008A00161298B3
:03008B00161A69D9
:03008C0016222A0F
:03008D001629E54C
:03008E0016319890
:03008F0016393FE0
:030090001640DF38
:0300910016487896
:0300920016500500
:0300930016578A73
:03009400165F09EB
:0300950016667C70
:03009600166DE8FC
:0300970016754893
:03009800167CA52E
:030099001683F5D6
:03009A00168B3F83
:03009B0016927F3B
:03009C001699B6FC
:03009D0016A0E6C4
:03009E0016A80F92
:03009F0016AF2F6A
:0300A00016B64849
:0300A10016BD5534
:0300A20016C46021
:0300A30016CB5D1C
:0300A40016D2551C
:0300A50016D94524
:0300A60016E02F32
:0300A70016E70C4D
:0300A80016EDE66C
:0300A90016F4B694
:0300AA0016FB80C2
:0300AB00170240F9
:0300AC001708FA38
:0300AD00170FAD7D
:0300AE00171657CB
:0300AF00171CF823
:0300B0001723987B
:0300B100172A2CDF
:0300B2001730B94B
:0300B30017373EBE
:0300B400173DBC39
:0300B500174434B9
:0300B600174AA244
:0300B70017510BD3
:0300B80017577067
:0300B900175DC808
:0300BA0017641DAB
:0300BB00176A6C55
:0300BC001770B208
:0300BD001776F1C2
:0300BE00177D2982
:0300BF0017835B49
:0300C00017898815
:0300C100178FACEA
:0300C2001795C9C6
:0300C300179BE1A7
:0300C40017A1F091
:0300C50017A7F981
:0300C60017ADFB78
:0300C70017B3F973
:0300C80017B9F075
:0300C90017BFDF7F
:0300CA0017C5C98E
:0300CB0017CBADA3
:0300CC0017D18ABF
:0300CD0017D75FE3
:0300CE0017DD3209
:0300CF0017E2FA3B
:0300D00017E8BD71
:0300D10017EE7CAB
:0300D20017F431EF
:0300D30017F9E436
:0300D40017FF9182
:0300D500180534D7
:0300D600180AD431
:0300D70018106F8F
:0300D800181605F2
:0300D900181B9061
:0300DA0018211AD0
:0300DB0018269E46
:0300DC00182C19C4
:0300DD0018318F48
:0300DE00183701CF
:0300DF00183C6B5F
:0300E0001841D1F3
:0300E1001847318C
:0300E200184C892E
:0300E3001851DFD2
:0300E4001857307A
:0300E500185C7A2A
:0300E6001861BFDF
:0300E7001866FE9A
:0300E800186C3958
:0300E90018716D1E
:0300EA0018769BEA
:0300EB00187BC3BC
:0300EC001880E891
:0300ED001886076B
:0300EE00188B204C
:0300EF0018903432
:0300F0001895431D
:0300F100189A500A
:0300F200189F55FF
:0300F30018A453FB
:0300F40018A94FF9
:0300F50018AE46FC
:0300F60018B33606
:0300F70018B82115
:0300F80018BD0A26
:0300F90018C1EB40
:0300FA0018C6C85D
:0300FB0018CB9F80
:0300FC0018D074A5
:0300FD0018D543D0
:0300FE0018DA0B02
:0300FF0018DECE3A
:0301000018E38F72
:0301010018E848B3
:0301020018ED00F5
:0301030018F1B33D
:0301040018F65F8B
:0301050018FB06DE
:0301060018FFAB34
:0301070019044C8C
:030108001908E6ED
:03010900190D7C51
:03010A0019120DBA
:03010B0019169A28
:03010C00191B2498
:03010D00191FA80F
:03010E0019242889
:03010F001928A507
:03011000192D1B8B
:0301110019318C15
:030112001935FBA1
:03011300193A6630
:03011400193ECBC6
:0301150019432B60
:03011600194787FF
:03011700194BE1A0
:0301180019503843
:03011900195486F0
:03011A001958D79A
:03011B00195D1E4D
:03011C0019615F07
:03011D001965A0C1
:03011E001969DC80
:03011F00196E1343
:030120001972470A
:03012100197678D4
:03012200197AA5A2
:03012300197ECC76
:030124001982EF4E
:0301250019871027
:03012600198B2A08
:03012700198F43EA
:03012800199358D0
:03012900199766BD
:03012A00199B72AC
:03012B00199F7B9E
:03012C0019A37F95
:03012D0019A7808F
:03012E0019AB808A
:03012F0019AF7A8B
:0301300019B36D93
:0301310019B7619A
:0301320019BB4EA8
:0301330019BF38B9
:0301340019C31DCF
:0301350019C703E4
:0301360019CAE003
:0301370019CEBD21
:0301380019D29643
:0301390019D66A6A
:03013A0019DA3B94
:03013B0019DE0BBF
:03013C0019E1D7EF
:03013D0019E59D24
:03013E0019E9605C
:03013F0019ED1F98
:0301400019F0D8DB
:0301410019F4911D
:0301420019F84B5E
:0301430019FBFBAA
:0301440019FFAAF6
:030145001A035545
:030146001A06FE98
:030147001A0AA0F1
:030148001A0E4547
:030149001A11DEAA
:03014A001A157A09
:03014B001A19126C
:03014C001A1CA6D4
:03014D001A20373E
:03014E001A23C3AE
:03014F001A274F1D
:030150001A2AD692
:030151001A2E590A
:030152001A31DA85
:030153001A355901
:030154001A38D581
:030155001A3C4C05
:030156001A3FC08D
:030157001A432F19
:030158001A469EA6
:030159001A4A0738
:03015A001A4D70CB
:03015B001A50D760
:03015C001A5438FA
:03015D001A579698
:03015E001A5AF03A
:03015F001A5E48DD
:030160001A619F82
:030161001A64F32A
:030162001A6843D5
:030163001A6B9282
:030164001A6EDB35
:030165001A7221EA
:030166001A7567A0
:030167001A78A95A
:030168001A7BE718
:030169001A7F21D9
:03016A001A825C9A
:03016B001A859161
:03016C001A88C42A
:03016D001A8BF5F5
:03016E001A8F21C4
:03016F001A924B96
:030170001A957469
:030171001A989841
:030172001A9BBB1A
:030173001A9EDBF6
:030174001AA1F8D5
:030175001AA513B5
:030176001AA82A9A
:030177001AAB3F81
:030178001AAE5666
:030179001AB16454
:03017A001AB46F45
:03017B001AB77A36
:03017C001ABA8527
:03017D001ABD8523
:03017E001AC0891B
:03017F001AC38B15
:030180001AC68913
:030181001AC98315
:030182001ACC7B19
:030183001ACF6F21
:030184001AD26329
:030185001AD55434
:030186001AD84242
:030187001ADB2E52
:030188001ADE1A62
:030189001AE10078
:03018A001AE3E68F
:03018B001AE6C7AA
:03018C001AE9A8C5
:03018D001AEC84E5
:03018E001AEF5F06
:03018F001AF2372A
:030190001AF50B52
:030191001AF7DF7B
:030192001AFAB3A3
:030193001AFD81D1
:030194001B004D00
:030195001B031633
:030196001B05DF67
:030197001B08A49E
:030198001B0B66D8
:030199001B0E2812
:03019A001B10E651
:03019B001B13A291
:03019C001B165DD2
:03019D001B191417
:03019E001B1BCA5E
:03019F001B1E7FA5
:0301A0001B212EF2
:0301A1001B23DB42
:0301A2001B268891
:0301A3001B2932E3
:0301A4001B2BDA38
:0301A5001B2E808E
:0301A6001B3125E5
:0301A7001B33C93E
:0301A8001B36699A
:0301A9001B3905FA
:0301AA001B3BA05C
:0301AB001B3E3ABE
:0301AC001B40D124
:0301AD001B43658C
:0301AE001B45F8F6
:0301AF001B488A60
:0301B0001B4B18CE
:0301B1001B4DA340
:0301B2001B502EB1
:0301B3001B52B725
:0301B4001B553C9C
:0301B5001B57C015
:0301B6001B5A428F
:0301B7001B5CC10D
:0301B8001B5F4189
:0301B9001B61BD0A
:0301BA001B64378C
:0301BB001B66B010
:0301BC001B692795
:0301BD001B6B9920
:0301BE001B6E0AAB
:0301BF001B707B37
:0301C0001B72EAC5
:0301C1001B755655
:0301C2001B77C1E7
:0301C3001B7A297B
:0301C4001B7C9110
:0301C5001B7EF5A9
:0301C6001B815842
:0301C7001B83BADD
:0301C8001B86177C
:0301C9001B88731D
:0301CA001B8AD2BB
:0301CB001B8D2861
:0301CC001B8F8006
:0301CD001B91D8AB
:0301CE001B942D52
:0301CF001B967EFE
:0301D0001B98CDAC
:0301D1001B9B1E57
:0301D2001B9D670B
:0301D3001B9FB5BA
:0301D4001BA1FD6F
:0301D5001BA44424
:0301D6001BA689DC
:0301D7001BA8CD95
:0301D8001BAB104E
:0301D9001BAD4E0D
:0301DA001BAF8CCC
:0301DB001BB1C98C
:0301DC001BB4054C
:0301DD001BB63F0F
:0301DE001BB877D4
:0301DF001BBAAD9B
:0301E0001BBCE065
:0301E1001BBF122F
:0301E2001BC141FD
:0301E3001BC371CA
:0301E4001BC59F99
:0301E5001BC7CA6B
:0301E6001BC9F53D
:0301E7001BCC1C12
:0301E8001BCE41EA
:0301E9001BD065C3
:0301EA001BD28C99
:0301EB001BD4AB77
:0301EC001BD6CC53
:0301ED001BD8EB31
:0301EE001BDB0810
:0301EF001BDD23F2
:0301F0001BDF3DD5
:0301F1001BE156B9
:0301F2001BE369A3
:0301F3001BE58188
:0301F4001BE79373
:0301F5001BE9A65D
:0301F6001BEBB64A
:0301F7001BEDC23B
:0301F8001BEFD02A
:0301F9001BF1DD1A
:0301FA001BF3E70D
:0301FB001BF5EF02
:0301FC001BF7F4FA
:0301FD001BF9F9F2
:0301FE001BFBFEEA
:0301FF001BFE00E4
:00000001ff

View file

@ -1,514 +0,0 @@
:020000040000FA
:03000000200004D9
:03000100201FEBD2
:03000200203FA4F8
:03000300205F2E4D
:03000400207E87D4
:03000500209DB685
:0300060020BCB16A
:0300070020DB817A
:0300080020FA23B8
:0300090021189625
:03000A002136E2BA
:03000B002154FC81
:03000C002172EF6F
:03000D002190B08F
:03000E0021AE4AD6
:03000F0021CBB949
:0300100021E8FAEA
:03001100220612B2
:03001200222302A4
:03001300223FC7C2
:03001400225C600B
:030015002278D17D
:0300160022951C14
:0300170022B13DD6
:0300180022CD32C4
:0300190022E905D4
:03001A002304AC10
:03001B0023202C73
:03001C00233B87FC
:03001D002356BAAD
:03001E002371C784
:03001F00238CAF80
:0300200023A76FA4
:0300210023C209EE
:0300220023DC7F5D
:0300230023F6CFF2
:030024002410FBAA
:03002500242B0386
:030026002444E58A
:03002700245EA2B2
:03002800247840F9
:030029002491B669
:03002A0024AB0AFA
:03002B0024C439B1
:03002C0024DD4A86
:03002D0024F63482
:03002E00250EFD9F
:03002F002527A6DC
:0300300025402C3C
:03003100255891BE
:030032002570D165
:030033002588F22B
:0300340025A0F311
:0300350025B8D615
:0300360025D0973B
:0300370025E83683
:0300380025FFB4ED
:0300390026171473
:03003A00262E551A
:03003B00264578DF
:03003C00265C79C6
:03003D0026735EC9
:03003E00268A22ED
:03003F0026A0CB2D
:0300400026B7518F
:0300410026CDBB0E
:0300420026E408A9
:0300430026FA3961
:0300440027104C36
:0300450027263D2E
:03004600273C183C
:030047002751D36B
:03004800276770B7
:03004900277CF21F
:03004A00279258A2
:03004B0027A7A242
:03004C0027BCD0FE
:03004D0027D1E2D6
:03004E0027E6DAC8
:03004F0027FBB5D7
:03005000281078FD
:0300510028251F40
:030052002839A9A1
:03005300284E191B
:0300540028626FB0
:030055002876AB5F
:03005600288AD025
:03005700289ED60A
:0300580028B2C605
:0300590028C69D19
:03005A0028DA574A
:03005B0028EDFB92
:03005C00290185F2
:03005D002914F66D
:03005E0029284E00
:03005F00293B93A7
:03006000294EBA6C
:030061002961CA48
:030062002974C23C
:030063002987A149
:03006400299A6B6B
:0300650029AD19A9
:0300660029BFB4FB
:0300670029D23863
:0300680029E4A2E6
:0300690029F6F67F
:03006A002A09362A
:03006B002A1B5BF2
:03006C002A2D6AD0
:03006D002A3F64C3
:03006E002A514ACA
:03006F002A6318E9
:030070002A74D31C
:030071002A867369
:030072002A9802C7
:030073002AA97740
:030074002ABAD8CD
:030075002ACC276B
:030076002ADD5D23
:030077002AEE80EE
:030078002AFF8FCD
:030079002B1087C2
:03007A002B216CCB
:03007B002B323DE8
:03007C002B42F81C
:03007D002B53A161
:03007E002B6433BD
:03007F002B74B42B
:030080002B8521AC
:030081002B957844
:030082002BA5BEED
:030083002BB5EEAC
:030084002BC60E7A
:030085002BD6195E
:030086002BE61056
:030087002BF5F561
:030088002C05C67E
:030089002C1589AA
:03008A002C2535ED
:03008B002C34CD45
:03008C002C4455AC
:03008D002C53CE23
:03008E002C6331AF
:03008F002C72834D
:030090002C81C3FD
:030091002C90F0C0
:030092002CA00C93
:030093002CAF1877
:030094002CBE116E
:030095002CCCF779
:030096002CDBCC94
:030097002CEA95BB
:030098002CF947F9
:030099002D07EB45
:03009A002D167DA3
:03009B002D24FF12
:03009C002D33728F
:03009D002D41D121
:03009E002D5023BF
:03009F002D5E6172
:0300A0002D6C8F35
:0300A1002D7AAF06
:0300A2002D88BCEA
:0300A3002D96BADD
:0300A4002DA4AEDA
:0300A5002DB28CED
:0300A6002DC05A10
:0300A7002DCE1C3F
:0300A8002DDBCB82
:0300A9002DE96BD3
:0300AA002DF6FD33
:0300AB002E0480A0
:0300AC002E11F41E
:0300AD002E1F57AC
:0300AE002E2CAD48
:0300AF002E39F5F2
:0300B0002E472BAD
:0300B1002E545575
:0300B2002E61704C
:0300B3002E6E7935
:0300B4002E7B762A
:0300B5002E88642E
:0300B6002E95483C
:0300B7002EA21B5B
:0300B8002EAEDC8D
:0300B9002EBB96C5
:0300BA002EC83D10
:0300BB002ED4D769
:0300BC002EE164CE
:0300BD002EEDE243
:0300BE002EFA52C5
:0300BF002F06B554
:0300C0002F130AF1
:0300C1002F1F529C
:0300C2002F2B9150
:0300C3002F37BC18
:0300C4002F43E1E6
:0300C5002F4FF3C7
:0300C6002F5BF9B4
:0300C7002F67F2AE
:0300C8002F73DFB4
:0300C9002F7FBFC7
:0300CA002F8B91E8
:0300CB002F975715
:0300CC002FA3144B
:0300CD002FAEC093
:0300CE002FBA5FE7
:0300CF002FC5F347
:0300D0002FD17CB1
:0300D1002FDCF62B
:0300D2002FE868AC
:0300D3002FF3CA3E
:0300D4002FFF20DB
:0300D500300A6D81
:0300D6003015AC36
:0300D7003020E0F6
:0300D800302C06C3
:0300D90030372499
:0300DA003042337E
:0300DB00304D366F
:0300DC0030582E6B
:0300DD0030631C71
:0300DE00306E0180
:0300DF003078D6A0
:0300E0003083A3C7
:0300E100308E63FB
:0300E2003099183A
:0300E30030A3C384
:0300E40030AE60DB
:0300E50030B8F53B
:0300E60030C37FA5
:0300E70030CDFB1E
:0300E80030D86DA0
:0300E90030E2D72B
:0300EA0030ED36C0
:0300EB0030F78764
:0300EC003101CD12
:0300ED00310C0FC4
:0300EE0031164088
:0300EF0031206954
:0300F000312A8A28
:0300F10031349D0A
:0300F200313EA6F6
:0300F3003148A7EA
:0300F40031529DE9
:0300F500315C89F2
:0300F60031666C04
:0300F70031704322
:0300F800317A104A
:0300F9003183D47C
:0300FA00318D8CB9
:0300FB0031973DFD
:0300FC0031A0E24E
:0300FD0031AA80A5
:0300FE0031B41406
:0300FF0031BD9E72
:0301000031C71CE8
:0301010031D09565
:0301020031DA03EC
:0301030031E36580
:0301040031ECBF1C
:0301050031F612BE
:0301060031FF5A6C
:0301070032089823
:030108003211CBE6
:03010900321AF9AE
:03010A0032241D7F
:03010B00322D375B
:03010C0032364741
:03010D00323F4F2F
:03010E0032484E26
:03010F0032514723
:03011000325A352B
:030111003263183E
:03011200326BF657
:030113003274CC77
:03011400327D96A3
:0301150032865BD4
:03011600328F1411
:030117003297C557
:0301180032A06DA5
:0301190032A910F8
:03011A0032B1A857
:03011B0032BA39BC
:03011C0032C2C22A
:03011D0032CB40A2
:03011E0032D3B821
:03011F0032DC28A7
:0301200032E49135
:0301210032ECEFCE
:0301220032F5446F
:0301230032FD9416
:030124003305DDC3
:03012500330E1C7A
:030126003316533A
:03012700331E85FF
:030128003326ACCF
:03012900332ECDA5
:03012A003336E782
:03012B00333EF66A
:03012C0033470056
:03012D00334F034A
:03012E003356FC49
:03012F00335EEF4D
:030130003366DC57
:03013100336EBF6B
:0301320033769C85
:03013300337E71A7
:0301340033863FD0
:03013500338E0501
:030136003395C638
:03013700339D7D78
:0301380033A52BC1
:0301390033ACD90B
:03013A0033B47B60
:03013B0033BC15BD
:03013C0033C3A822
:03013D0033CB368B
:03013E0033D2BEFB
:03013F0033DA3C74
:0301400033E1B6F2
:0301410033E92778
:0301420033F09205
:0301430033F7F798
:0301440033FF5333
:030145003406A8D5
:03014600340DF87D
:030147003415422A
:03014800341C84E0
:030149003423BF9D
:03014A00342AF460
:03014B0034322328
:03014C0034394BF8
:03014D0034406FCC
:03014E00344789AA
:03014F00344E9E8D
:030150003455AC77
:03015100345CB269
:030152003463B45F
:03015300346AB05B
:030154003471A45F
:0301550034789368
:03015600347F7B78
:0301570034865F8C
:03015800348D3BA8
:0301590034940FCC
:03015A00349ADFF5
:03015B0034A1AA22
:03015C0034A86E56
:03015D0034AF2993
:03015E0034B5E1D4
:03015F0034BC9518
:0301600034C34164
:0301610034C9E7B7
:0301620034D08511
:0301630034D71E70
:0301640034DDB2D5
:0301650034E4423D
:0301660034EACCAC
:0301670034F14D23
:0301680034F7CA9F
:0301690034FE4021
:03016A003504B2A7
:03016B00350B1F32
:03016C00351186C4
:03016D003517E75C
:03016E00351E43F8
:03016F003524999B
:03017000352AE746
:03017100353131F4
:0301720035377AA4
:03017300353DB760
:030174003543F31D
:03017500354A28E0
:03017600355059A8
:0301770035568377
:03017800355CA64D
:030179003562C527
:03017A003568DF06
:03017B00356EF5E9
:03017C00357505D1
:03017D00357B10BF
:03017E00358115B3
:03017F00358714AD
:03018000358D0EAC
:03018100359305AE
:030182003598F8B5
:03018300359EE3C3
:0301840035A4CAD5
:0301850035AAAAEE
:0301860035B08908
:0301870035B66129
:0301880035BC3350
:0301890035C1FF7E
:03018A0035C7C8AE
:03018B0035CD8DE2
:03018C0035D34B1D
:03018D0035D90958
:03018E0035DEBC9F
:03018F0035E46BE9
:0301900035EA1A33
:0301910035EFC087
:0301920035F562DE
:0301930035FAFF3B
:0301940036009B97
:0301950036062FFC
:03019600360BBF66
:0301970036114AD4
:030198003616CF49
:03019900361C50C1
:03019A003621CE3D
:03019B00362745BF
:03019C00362CB747
:03019D00363227D0
:03019E003637935E
:03019F00363CFAF1
:0301A00036425E86
:0301A1003647BB23
:0301A200364D12C5
:0301A30036526869
:0301A4003657B912
:0301A500365D05BF
:0301A60036624B73
:0301A70036679127
:0301A800366CCFE3
:0301A90036720AA1
:0301AA0036774065
:0301AB00367C732C
:0301AC003681A2F7
:0301AD003686CAC9
:0301AE00368BEE9F
:0301AF0036910F77
:0301B00036962C54
:0301B100369B4634
:0301B20036A05A1A
:0301B30036A56A04
:0301B40036AA78F0
:0301B50036AF81E1
:0301B60036B486D6
:0301B70036B987CF
:0301B80036BE83CD
:0301B90036C379D1
:0301BA0036C86ED6
:0301BB0036CD5EE0
:0301BC0036D249EF
:0301BD0036D733FF
:0301BE0036DC1A12
:0301BF0036E0FA2D
:0301C00036E5D54C
:0301C10036EAAD6E
:0301C20036EF8491
:0301C30036F455BA
:0301C40036F921E8
:0301C50036FDEB19
:0301C6003702B14C
:0301C70037077087
:0301C800370C30C1
:0301C9003710EB01
:0301CA003715A046
:0301CB00371A538D
:0301CC00371F04D6
:0301CD003723AF26
:0301CE0037285877
:0301CF00372CF9D1
:0301D00037319C28
:0301D10037363787
:0301D200373AD1E8
:0301D300373F664D
:0301D4003743FAB4
:0301D50037488820
:0301D600374D138F
:0301D70037519805
:0301D80037561C7B
:0301D900375A9DF5
:0301DA00375F1B71
:0301DB00376393F4
:0301DC0037680978
:0301DD00376C7C00
:0301DE003770EA8D
:0301DF003775541D
:0301E0003779C0AC
:0301E100377E2541
:0301E200378285DC
:0301E3003786E07C
:0301E400378B3A1C
:0301E500378F93BE
:0301E6003793E765
:0301E7003798370F
:0301E800379C85BC
:0301E90037A0CF6D
:0301EA0037A51521
:0301EB0037A959D8
:0301EC0037AD9894
:0301ED0037B1D750
:0301EE0037B60F12
:0301EF0037BA44D8
:0301F00037BE799E
:0301F10037C2A76B
:0301F20037C6D439
:0301F30037CAFD0B
:0301F40037CF25DD
:0301F50037D347B6
:0301F60037D76890
:0301F70037DB846F
:0301F80037DF9F4F
:0301F90037E3B435
:0301FA0037E7C81C
:0301FB0037EBDA05
:0301FC0037EFE8F2
:0301FD0037F3F1E4
:0301FE0037F7F9D7
:0301FF0037FC01C9
:00000001ff

View file

@ -0,0 +1,514 @@
:020000040000FA
:0200000007FAFD
:0200010007EE08
:0200020007E312
:0200030007D81C
:0200040007CB28
:0200050007C032
:0200060007B53C
:0200070007A947
:02000800079B54
:0200090007925C
:02000A00078865
:02000B00077B71
:02000C0007717A
:02000D00076486
:02000E00075A8F
:02000F00075197
:020010000746A1
:020011000739AD
:020012000731B4
:020013000728BC
:02001400071EC5
:020015000712D0
:020016000708D9
:0200170006FDE4
:0200180006F5EB
:0200190006ECF3
:02001A0006DFFF
:02001B0006D706
:02001C0006CE0E
:02001D0006C219
:02001E0006BA20
:02001F0006B029
:0200200006A632
:02002100069D3A
:02002200069541
:02002300068A4B
:02002400068252
:0200250006795A
:02002600067260
:0200270006666B
:02002800066070
:0200290006537C
:02002A00064C82
:02002B00064489
:02002C00063C90
:02002D00063497
:02002E000628A2
:02002F000620A9
:020030000619AF
:020031000611B6
:020032000607BF
:0200330005FEC8
:0200340005F7CE
:0200350005F0D4
:0200360005E8DB
:0200370005E1E1
:0200380005D7EA
:0200390005CFF1
:02003A0005C8F7
:02003B0005BFFF
:02003C0005B805
:02003D0005B10B
:02003E0005AA11
:02003F0005A416
:02004000059A1F
:02004100059424
:02004200058B2C
:02004300058432
:02004400057E37
:0200450005763E
:02004600056E45
:02004700056949
:02004800055F52
:02004900055B55
:02004A0005515E
:02004B00054D61
:02004C00054568
:02004D00053E6E
:02004E00053774
:02004F00052F7B
:02005000052B7E
:02005100052385
:02005200051D8A
:02005300051591
:02005400051095
:0200550005099B
:020056000502A1
:0200570004FBA8
:0200580004F7AB
:0200590004F0B1
:02005A0004E9B7
:02005B0004E4BB
:02005C0004DCC2
:02005D0004D7C6
:02005E0004D0CC
:02005F0004CBD0
:0200600004C5D5
:0200610004BFDA
:0200620004B9DF
:0200630004B2E5
:0200640004ADE9
:0200650004A8ED
:02006600049FF5
:020067000499FA
:020068000495FD
:02006900048D04
:02006A00048907
:02006B0004850A
:02006C00047E10
:02006D00047716
:02006E0004721A
:02006F00046D1E
:02007000046822
:02007100046425
:02007200046028
:02007300045631
:02007400045135
:02007500044D38
:02007600044A3A
:02007700044241
:02007800044042
:0200790004374A
:02007A0004344C
:02007B0004304F
:02007C00042A54
:02007D00042459
:02007E00041E5E
:02007F00041B60
:02008000041763
:02008100041366
:02008200040E6A
:0200830004086F
:02008400040472
:0200850003FF77
:0200860003FB7A
:0200870003F480
:0200880003F182
:0200890003ED85
:02008A0003E988
:02008B0003E18F
:02008C0003DF90
:02008D0003DA94
:02008E0003D598
:02008F0003D29A
:0200900003CD9E
:0200910003C7A3
:0200920003C4A5
:0200930003BFA9
:0200940003B9AE
:0200950003B5B1
:0200960003B1B4
:0200970003AFB5
:0200980003A8BB
:0200990003A5BD
:02009A0003A0C1
:02009B00039DC3
:02009C00039AC5
:02009D000396C8
:02009E000391CC
:02009F00038CD0
:0200A0000388D3
:0200A1000386D4
:0200A200037FDA
:0200A300037DDB
:0200A4000378DF
:0200A5000375E1
:0200A600036FE6
:0200A700036DE7
:0200A8000368EB
:0200A9000364EE
:0200AA000360F1
:0200AB00035DF3
:0200AC000359F6
:0200AD000354FA
:0200AE000352FB
:0200AF000350FC
:0200B000034803
:0200B100034505
:0200B200034108
:0200B300033F09
:0200B400033B0C
:0200B50003380E
:0200B60003360F
:0200B700033311
:0200B800032D16
:0200B900032C16
:0200BA0003271A
:0200BB0003221E
:0200BC00031F20
:0200BD00031C22
:0200BE00031924
:0200BF00031527
:0200C00003102B
:0200C100030D2D
:0200C200030A2F
:0200C300030632
:0200C400030433
:0200C500030234
:0200C60002FF37
:0200C70002FB3A
:0200C80002F73D
:0200C90002F53E
:0200CA0002F141
:0200CB0002ED44
:0200CC0002EA46
:0200CD0002E946
:0200CE0002E34B
:0200CF0002E24B
:0200D00002DF4D
:0200D10002DC4F
:0200D20002DB4F
:0200D30002D653
:0200D40002D355
:0200D50002D255
:0200D60002CE58
:0200D70002CB5A
:0200D80002C65E
:0200D90002C55E
:0200DA0002C062
:0200DB0002BC65
:0200DC0002BB65
:0200DD0002B867
:0200DE0002B569
:0200DF0002B36A
:0200E00002B06C
:0200E10002AE6D
:0200E20002AD6D
:0200E30002A970
:0200E40002A573
:0200E50002A275
:0200E600029F77
:0200E700029C79
:0200E80002987C
:0200E90002967D
:0200EA0002947E
:0200EB0002937E
:0200EC00028F81
:0200ED00028D82
:0200EE00028B83
:0200EF00028984
:0200F000028686
:0200F10002818A
:0200F200027F8B
:0200F300027E8B
:0200F400027A8E
:0200F500027790
:0200F600027591
:0200F700027491
:0200F800026F95
:0200F900026D96
:0200FA00026B97
:0200FB00026998
:0200FC0002659B
:0200FD0002629D
:0200FE0002629C
:0200FF0002609D
:02010000025E9D
:02010100025D9D
:020102000259A0
:020103000256A2
:020104000255A2
:020105000254A2
:020106000250A5
:02010700024DA7
:02010800024BA8
:020109000249A9
:02010A000248A9
:02010B000245AB
:02010C000242AD
:02010D000240AE
:02010E00023DB0
:02010F00023AB2
:020110000239B2
:020111000238B2
:020112000235B4
:020113000232B6
:020114000231B6
:020115000230B6
:02011600022FB6
:02011700022BB9
:020118000228BB
:020119000228BA
:02011A000221C0
:02011B000221BF
:02011C000221BE
:02011D00021EC0
:02011E00021CC1
:02011F00021BC1
:020120000218C3
:020121000215C5
:020122000212C7
:020123000211C7
:02012400020FC8
:02012500020DC9
:02012600020CC9
:020127000209CB
:020128000207CC
:020129000207CB
:02012A000205CC
:02012B000203CD
:02012C000202CD
:02012D0001FFD0
:02012E0001FBD3
:02012F0001F9D4
:0201300001FAD2
:0201310001F6D5
:0201320001F5D5
:0201330001F4D5
:0201340001F4D4
:0201350001F0D7
:0201360001F0D6
:0201370001EDD8
:0201380001EBD9
:0201390001EAD9
:02013A0001E8DA
:02013B0001E4DD
:02013C0001E1DF
:02013D0001E0DF
:02013E0001DEE0
:02013F0001DEDF
:0201400001DFDD
:0201410001DDDE
:0201420001D7E3
:0201430001D7E2
:0201440001D5E3
:0201450001D3E4
:0201460001D1E5
:0201470001D2E3
:0201480001CCE8
:0201490001CFE4
:02014A0001CCE6
:02014B0001CAE7
:02014C0001C8E8
:02014D0001C7E8
:02014E0001C6E8
:02014F0001C3EA
:0201500001C2EA
:0201510001C1EA
:0201520001BFEB
:0201530001BCED
:0201540001B9EF
:0201550001B8EF
:0201560001B7EF
:0201570001B7EE
:0201580001B5EF
:0201590001B5EE
:02015A0001B2F0
:02015B0001AFF2
:02015C0001AEF2
:02015D0001AEF1
:02015E0001AEF0
:02015F0001ADF0
:0201600001AAF2
:0201610001A8F3
:0201620001A6F4
:0201630001A3F6
:0201640001A3F5
:0201650001A2F5
:02016600019FF7
:02016700019DF8
:02016800019DF7
:02016900019CF7
:02016A000199F9
:02016B000199F8
:02016C000197F9
:02016D000196F9
:02016E000196F8
:02016F000195F8
:020170000193F9
:020171000193F8
:020172000191F9
:020173000190F9
:02017400018EFA
:02017500018DFA
:02017600018CFA
:02017700018BFA
:020178000185FF
:020179000186FD
:02017A000186FC
:02017B000185FC
:02017C00018000
:02017D000184FB
:02017E000181FD
:02017F00017EFF
:02018000017DFF
:02018100017CFF
:02018200017CFE
:02018300017CFD
:02018400017AFE
:020185000179FE
:020186000178FE
:020187000176FF
:02018800017301
:02018900017201
:02018A00017002
:02018B00016F02
:02018C00016D03
:02018D00016D02
:02018E00016B03
:02018F00016B02
:02019000016B01
:02019100016A01
:02019200016604
:02019300016504
:02019400016503
:02019500016403
:02019600016204
:02019700016203
:02019800016103
:02019900015F04
:02019A00015F03
:02019B00015D04
:02019C00015C04
:02019D00015B04
:02019E00015905
:02019F00015706
:0201A000015804
:0201A100015803
:0201A200015703
:0201A300015603
:0201A400015503
:0201A500015403
:0201A600015105
:0201A700014E07
:0201A800014D07
:0201A900014D06
:0201AA00014C06
:0201AB00014A07
:0201AC00014907
:0201AD00014906
:0201AE00014707
:0201AF00014508
:0201B000014507
:0201B100014506
:0201B200014307
:0201B300014207
:0201B400014206
:0201B500014106
:0201B600014105
:0201B700014005
:0201B800013E06
:0201B900013D06
:0201BA00013C06
:0201BB00013A07
:0201BC00013907
:0201BD00013A05
:0201BE00013A04
:0201BF00013805
:0201C000013705
:0201C100013605
:0201C200013505
:0201C300013405
:0201C400013206
:0201C500013205
:0201C600013006
:0201C700012F06
:0201C800013004
:0201C900013003
:0201CA00012C06
:0201CB00012E03
:0201CC00012C04
:0201CD00012906
:0201CE00012707
:0201CF00012805
:0201D000012705
:0201D100012407
:0201D200012604
:0201D300012306
:0201D400012305
:0201D500012205
:0201D600012204
:0201D700012005
:0201D800011F05
:0201D900012003
:0201DA00011F03
:0201DB00011E03
:0201DC00011C04
:0201DD00011A05
:0201DE00011905
:0201DF00011805
:0201E000011804
:0201E100011803
:0201E200011802
:0201E300011603
:0201E400011503
:0201E500011403
:0201E600011303
:0201E700011302
:0201E800011400
:0201E9000114FF
:0201EA00011002
:0201EB00011100
:0201EC00010F01
:0201ED00010E01
:0201EE00010D01
:0201EF00010C01
:0201F000010B01
:0201F100010902
:0201F200010BFF
:0201F300010801
:0201F400010800
:0201F500010601
:0201F600010600
:0201F7000107FE
:0201F8000105FF
:0201F900010300
:0201FA00010200
:0201FB000102FF
:0201FC000103FD
:0201FD000102FD
:0201FE000100FE
:0201FF000100FD
:00000001ff

View file

@ -1,514 +0,0 @@
:020000040000FA
:020000000FF4FB
:020001000FDE10
:020002000FC627
:020003000FAD3F
:020004000F9754
:020005000F7D6D
:020006000F6881
:020007000F5197
:020008000F3BAC
:020009000F27BF
:02000A000F0DD8
:02000B000EF9EC
:02000C000EE004
:02000D000ECE15
:02000E000EB72B
:02000F000EA041
:020010000E8C54
:020011000E7867
:020012000E627C
:020013000E4C91
:020014000E39A3
:020015000E26B5
:020016000E10CA
:020017000DFBDF
:020018000DEAEF
:020019000DD305
:02001A000DC116
:02001B000DAE28
:02001C000D9A3B
:02001D000D874D
:02001E000D7360
:02001F000D5F73
:020020000D4D84
:020021000D3B95
:020022000D28A7
:020023000D16B8
:020024000D03CA
:020025000CF0DD
:020026000CDFED
:020027000CCFFC
:020028000CBA10
:020029000CA920
:02002A000C9830
:02002B000C893E
:02002C000C7551
:02002D000C6560
:02002E000C556F
:02002F000C4380
:020030000C3290
:020031000C20A1
:020032000C12AE
:020033000C02BD
:020034000BF2CD
:020035000BE0DE
:020036000BCEEF
:020037000BBFFD
:020038000BB10A
:020039000BA119
:02003A000B9227
:02003B000B8137
:02003C000B7245
:02003D000B6254
:02003E000B5461
:02003F000B4371
:020040000B367D
:020041000B278B
:020042000B1998
:020043000B09A7
:020044000AF9B7
:020045000AEEC1
:020046000ADCD2
:020047000ACEDF
:020048000AC1EB
:020049000AB3F8
:02004A000AA505
:02004B000A9712
:02004C000A8A1E
:02004D000A7C2B
:02004E000A6E38
:02004F000A6243
:020050000A5351
:020051000A445F
:020052000A386A
:020053000A2C75
:020054000A1F81
:020055000A138C
:020056000A049A
:0200570009F9A5
:0200580009EBB2
:0200590009DEBE
:02005A0009D3C8
:02005B0009C6D4
:02005C0009BADF
:02005D0009AEEA
:02005E0009A3F4
:02005F00099204
:0200600009870E
:02006100097B19
:02006200096F24
:0200630009652D
:02006400095839
:02006500094E42
:0200660009424D
:02006700093559
:02006800092A63
:0200690009206C
:02006A00091279
:02006B00090981
:02006C0008FF8B
:02006D0008F495
:02006E0008E7A1
:02006F0008DDAA
:0200700008CFB7
:0200710008C7BE
:0200720008BACA
:0200730008B1D2
:0200740008A8DA
:02007500089BE6
:020076000892EE
:020077000887F8
:02007800087C02
:0200790008730A
:02007A00086814
:02007B00085E1D
:02007C00085426
:02007D00084A2F
:02007E00084137
:02007F00083641
:02008000082C4A
:02008100082352
:0200820008195B
:02008300081063
:0200840008056D
:0200850007FC76
:0200860007F37E
:0200870007EA86
:0200880007E28D
:0200890007D599
:02008A0007CDA0
:02008B0007C6A6
:02008C0007BDAE
:02008D0007B1B9
:02008E0007A8C1
:02008F00079FC9
:020090000796D1
:02009100078ED8
:020092000785E0
:02009300077BE9
:020094000773F0
:02009500076CF6
:020096000765FC
:02009700075907
:0200980007520D
:02009900074915
:02009A0007411C
:02009B00073824
:02009C00072E2D
:02009D00072832
:02009E00071D3C
:02009F00071741
:0200A000070F48
:0200A10007074F
:0200A200070154
:0200A30006FA5B
:0200A40006ED67
:0200A50006E76C
:0200A60006E171
:0200A70006D77A
:0200A80006D17F
:0200A90006CA85
:0200AA0006C28C
:0200AB0006BA93
:0200AC0006B29A
:0200AD0006AC9F
:0200AE0006A3A7
:0200AF00069BAE
:0200B0000695B3
:0200B100068CBB
:0200B2000685C1
:0200B3000680C5
:0200B4000679CB
:0200B5000673D0
:0200B6000669D9
:0200B7000661E0
:0200B800065DE3
:0200B9000652ED
:0200BA00064CF2
:0200BB000645F8
:0200BC00063EFE
:0200BD00063803
:0200BE00063208
:0200BF00062C0D
:0200C000062612
:0200C100062017
:0200C200061620
:0200C300061223
:0200C40006072D
:0200C500060231
:0200C60005FC37
:0200C70005F63C
:0200C80005EF42
:0200C90005E947
:0200CA0005E34C
:0200CB0005DE50
:0200CC0005D459
:0200CD0005CF5D
:0200CE0005CA61
:0200CF0005C565
:0200D00005BE6B
:0200D10005B870
:0200D20005B077
:0200D30005AC7A
:0200D40005A67F
:0200D500059F85
:0200D60005998A
:0200D70005938F
:0200D800058F92
:0200D900058799
:0200DA0005829D
:0200DB00057EA0
:0200DC000579A4
:0200DD000573A9
:0200DE00056BB0
:0200DF000566B4
:0200E000055FBA
:0200E100055ABE
:0200E2000554C3
:0200E300054EC8
:0200E400054ACB
:0200E5000543D1
:0200E600053DD6
:0200E700053AD8
:0200E8000535DC
:0200E900052EE2
:0200EA000528E7
:0200EB000525E9
:0200EC000522EB
:0200ED000519F3
:0200EE000516F5
:0200EF000510FA
:0200F000050900
:0200F100050602
:0200F200050106
:0200F30004FB0C
:0200F40004F610
:0200F50004F015
:0200F60004EA1A
:0200F70004E61D
:0200F80004E121
:0200F90004DD24
:0200FA0004D927
:0200FB0004D42B
:0200FC0004D02E
:0200FD0004CA33
:0200FE0004C438
:0200FF0004C03B
:0201000004BC3D
:0201010004B543
:0201020004B047
:0201030004AD49
:0201040004A84D
:0201050004A252
:02010600049D56
:02010700049A58
:0201080004975A
:0201090004915F
:02010A00048C63
:02010B00048866
:02010C00048568
:02010D0004816B
:02010E00047D6E
:02010F00047674
:02011000047376
:02011100047078
:02011200046A7D
:02011300046482
:02011400046283
:02011500045B89
:0201160004588B
:0201170004558D
:02011800045190
:02011900044C94
:02011A00044897
:02011B0004439B
:02011C00043F9E
:02011D00043CA0
:02011E000438A3
:02011F000433A7
:02012000042EAB
:02012100042CAC
:02012200042AAD
:020123000425B1
:020124000420B5
:02012500041DB7
:020126000419BA
:020127000414BE
:020128000411C0
:02012900040CC4
:02012A000408C7
:02012B000406C8
:02012C000401CC
:02012D0003FDD0
:02012E0003FAD2
:02012F0003F6D5
:0201300003F1D9
:0201310003EEDB
:0201320003EADE
:0201330003E6E1
:0201340003E3E3
:0201350003DFE6
:0201360003DAEA
:0201370003D8EB
:0201380003D7EB
:0201390003CFF2
:02013A0003CCF4
:02013B0003CAF5
:02013C0003C8F6
:02013D0003C3FA
:02013E0003BFFD
:02013F0003BCFF
:0201400003B802
:0201410003B504
:0201420003B107
:0201430003AD0A
:0201440003AB0B
:0201450003A90C
:0201460003A50F
:0201470003A112
:02014800039E14
:02014900039C15
:02014A00039818
:02014B0003951A
:02014C0003911D
:02014D00038C21
:02014E00038A22
:02014F00038625
:02015000038426
:02015100038227
:02015200037E2A
:02015300037B2C
:0201540003782E
:02015500037530
:02015600037232
:02015700036D36
:02015800036B37
:02015900036938
:02015A0003663A
:02015B0003613E
:02015C00035F3F
:02015D00035E3F
:02015E00035A42
:02015F00035546
:02016000035248
:02016100034F4A
:02016200034E4A
:02016300034C4B
:0201640003494D
:02016500034451
:02016600034153
:02016700033F54
:02016800033D55
:02016900033B56
:02016A00033858
:02016B0003345B
:02016C0003315D
:02016D00032E5F
:02016E00032A62
:02016F00032863
:02017000032763
:02017100032564
:02017200031F69
:02017300031E69
:02017400031A6C
:0201750003176E
:02017600031371
:02017700031172
:02017800031072
:02017900030E73
:02017A00030B75
:02017B00030877
:02017C00030579
:02017D0003027B
:02017E0003007C
:02017F0002FF7D
:0201800002FD7E
:0201810002F981
:0201820002F584
:0201830002F385
:0201840002F186
:0201850002EF87
:0201860002EB8A
:0201870002E88C
:0201880002E78C
:0201890002E68C
:02018A0002E38E
:02018B0002E090
:02018C0002DF90
:02018D0002D995
:02018E0002D994
:02018F0002D894
:0201900002D398
:0201910002D199
:0201920002CF9A
:0201930002CE9A
:0201940002C89F
:0201950002C6A0
:0201960002C3A2
:0201970002C1A3
:0201980002C0A3
:0201990002BEA4
:02019A0002BBA6
:02019B0002BBA5
:02019C0002BAA5
:02019D0002B7A7
:02019E0002B4A9
:02019F0002B1AB
:0201A00002ADAE
:0201A10002ACAE
:0201A20002ABAE
:0201A30002A8B0
:0201A40002A5B2
:0201A50002A3B3
:0201A60002A3B2
:0201A700029EB6
:0201A800029CB7
:0201A900029AB8
:0201AA000298B9
:0201AB000295BB
:0201AC000292BD
:0201AD000292BC
:0201AE000291BC
:0201AF00028FBD
:0201B000028DBE
:0201B100028AC0
:0201B2000289C0
:0201B3000287C1
:0201B4000284C3
:0201B5000281C5
:0201B600027FC6
:0201B700027CC8
:0201B800027BC8
:0201B900027BC7
:0201BA000278C9
:0201BB000277C9
:0201BC000276C9
:0201BD000272CC
:0201BE00026ECF
:0201BF00026DCF
:0201C000026DCE
:0201C100026BCF
:0201C2000267D2
:0201C3000266D2
:0201C4000265D2
:0201C5000262D4
:0201C6000261D4
:0201C7000261D3
:0201C800025DD6
:0201C900025BD7
:0201CA00025BD6
:0201CB000258D8
:0201CC000255DA
:0201CD000253DB
:0201CE000251DC
:0201CF000252DA
:0201D000024EDD
:0201D100024DDD
:0201D200024BDE
:0201D3000249DF
:0201D4000246E1
:0201D5000244E2
:0201D6000243E2
:0201D7000243E1
:0201D8000241E2
:0201D900023EE4
:0201DA00023CE5
:0201DB00023BE5
:0201DC000239E6
:0201DD000237E7
:0201DE000236E7
:0201DF000236E6
:0201E0000230EB
:0201E100022EEC
:0201E200022EEB
:0201E300022FE9
:0201E400022DEA
:0201E500022AEC
:0201E6000228ED
:0201E7000227ED
:0201E8000224EF
:0201E9000223EF
:0201EA000221F0
:0201EB000220F0
:0201EC00021EF1
:0201ED00021BF3
:0201EE00021BF2
:0201EF00021BF1
:0201F0000218F3
:0201F1000217F3
:0201F2000216F3
:0201F3000214F4
:0201F4000212F5
:0201F5000211F5
:0201F600020FF6
:0201F700020EF6
:0201F800020CF7
:0201F900020CF6
:0201FA00020AF7
:0201FB000207F9
:0201FC000206F9
:0201FD000205F9
:0201FE000204F9
:0201FF0001FFFE
:00000001ff

View file

@ -127,132 +127,132 @@
:04007D000B3F49F3F9
:04007E000B44F93AFC
:04007F000B4AA5A5DE
:040080000B504F379B
:040081000B5B99E498
:040082000B66D962CE
:040083000B720DD21D
:040084000B7D375564
:040085000B88560A84
:040086000B936A105E
:040087000B9E7387D2
:040088000BA9728BC3
:040089000BB4673B12
:04008A000BBF51B3A4
:04008B000BCA32105A
:04008C000BD5086D1B
:04008D000BDFD4E6CB
:04008E000BEA97964C
:04008F000BF5509885
:040090000C0000045C
:040091000C0AA5F5BB
:040092000C15428483
:040093000C1FD5CA9F
:040094000C2A5FDEF5
:040095000C34E0D86F
:040096000C3F58D1F2
:040097000C49C7DE6B
:040098000C542E17BF
:040099000C5E8B91DD
:04009A000C68E063AB
:04009B000C732CA313
:04009C000C7D706502
:04009D000C87ABBE63
:04009E000C91DEC320
:04009F000C9C098824
:0400A0000CA62C225C
:0400A1000CB046A2B7
:0400A2000CBA591E1D
:0400A3000CC463A77F
:0400A4000CCE6651C7
:0400A5000CD8612EE4
:0400A6000CE2544FC5
:0400A7000CEC3FC856
:0400A8000CF623A986
:0400A9000D00000442
:0400AA000D09D4EA7E
:0400AB000D13A26B24
:0400AC000D1D689925
:0400AD000D27278470
:0400AE000D30DF3BF7
:0400AF000D3A8FCEA9
:0400B0000D44394E74
:0400B1000D4DDBCA4C
:0400B2000D5777501F
:0400B3000D610BF0E0
:0400B4000D6A99B97F
:0400B5000D7420B9ED
:0400B6000D7DA0FE1E
:0400B7000D871A9700
:0400B8000D908D9288
:0400B9000D99F9FDA7
:0400BA000DA35FE44F
:0400BB000DACBF5673
:0400BC000DB6186005
:0400BD000DBF6B0FF9
:0400BE000DC8B76F43
:0400BF000DD1FD8ED4
:0400C0000DDB3D789F
:0400C1000DE4773A99
:0400C2000DEDAADFB7
:0400C3000DF6D874EA
:0400C4000E00000426
:0400C5000E09219C63
:0400C6000E123D4792
:0400C7000E1B5311A8
:0400C8000E2463049B
:0400C9000E2D6D2D5E
:0400CA000E367195E8
:0400CB000E3F70492B
:0400CC000E4869531E
:0400CD000E515CBDB7
:0400CE000E5A4A92EA
:0400CF000E6332DCAE
:0400D0000E6C15A6F7
:0400D1000E74F2FABD
:0400D2000E7DCAE2F3
:0400D3000E869D6791
:0400D4000E8F6A948D
:0400D5000E983272DD
:0400D6000EA0F50B78
:0400D7000EA9B26854
:0400D8000EB26A9367
:0400D9000EBB1D94A9
:0400DA000EC3CB7610
:0400DB000ECC744093
:0400DC000ED517FC2A
:0400DD000EDDB6B2CC
:0400DE000EE6506C6E
:0400DF000EEEE5320A
:0400E0000EF7750D95
:0400E1000F00000408
:0400E2000F0886215C
:0400E3000F11076B87
:0400E4000F1983EA83
:0400E5000F21FBA844
:0400E6000F2A6EAAC5
:0400E7000F32DCFBFD
:0400E8000F3B46A1E3
:0400E9000F43ABA472
:0400EA000F4C0C0BA0
:0400EB000F5467DF68
:0400EC000F5CBF27BF
:0400ED000F6511E9A1
:0400EE000F6D602E04
:0400EF000F75A9FDE3
:0400F0000F7DEF5D34
:0400F1000F863054F2
:0400F2000F8E6CEB16
:0400F3000F96A52798
:0400F4000F9ED91072
:0400F5000FA708AC9D
:0400F6000FAF340311
:0400F7000FB75B1BC9
:0400F8000FBF7DFABF
:0400F9000FC79CA7EA
:0400FA000FCFB72944
:0400FB000FD7CD85C9
:0400FC000FDFDFC370
:0400FD000FE7EDE933
:0400FE000FEFF7FC0D
:0400FF000FF7FE03F6
:040080000B504F3C96
:040081000B5B99E894
:040082000B66D966CA
:040083000B720DD619
:040084000B7D375861
:040085000B88560E80
:040086000B936A145A
:040087000B9E738ACF
:040088000BA97290BE
:040089000BB4673E0F
:04008A000BBF51B6A1
:04008B000BCA321456
:04008C000BD5087018
:04008D000BDFD4EAC7
:04008E000BEA979A48
:04008F000BF5509C81
:040090000C00000858
:040091000C0AA5FAB6
:040092000C1542887F
:040093000C1FD5CE9B
:040094000C2A5FE2F1
:040095000C34E0DC6B
:040096000C3F58D4EF
:040097000C49C7E267
:040098000C542E1ABC
:040099000C5E8B96D8
:04009A000C68E068A6
:04009B000C732CA610
:04009C000C7D7068FF
:04009D000C87ABC25F
:04009E000C91DEC81B
:04009F000C9C098C20
:0400A0000CA62C2658
:0400A1000CB046A6B3
:0400A2000CBA592219
:0400A3000CC463AC7A
:0400A4000CCE6654C4
:0400A5000CD86132E0
:0400A6000CE25454C0
:0400A7000CEC3FCC52
:0400A8000CF623AE81
:0400A9000D0000083E
:0400AA000D09D4EE7A
:0400AB000D13A2701F
:0400AC000D1D689E20
:0400AD000D2727886C
:0400AE000D30DF3EF4
:0400AF000D3A8FD2A5
:0400B0000D44395270
:0400B1000D4DDBCE48
:0400B2000D5777541B
:0400B3000D610BF4DC
:0400B4000D6A99BC7C
:0400B5000D7420BCEA
:0400B6000D7DA10219
:0400B7000D871A9CFB
:0400B8000D908D9684
:0400B9000D99FA00A3
:0400BA000DA35FE84B
:0400BB000DACBF5A6F
:0400BC000DB6186401
:0400BD000DBF6B12F6
:0400BE000DC8B7743E
:0400BF000DD1FD92D0
:0400C0000DDB3D7C9B
:0400C1000DE4773E95
:0400C2000DEDAAE2B4
:0400C3000DF6D878E6
:0400C4000E00000822
:0400C5000E0921A05F
:0400C6000E123D4C8D
:0400C7000E1B5314A5
:0400C8000E24630897
:0400C9000E2D6D305B
:0400CA000E36719AE3
:0400CB000E3F704E26
:0400CC000E4869561B
:0400CD000E515CC0B4
:0400CE000E5A4A96E6
:0400CF000E6332E0AA
:0400D0000E6C15AAF3
:0400D1000E74F2FEB9
:0400D2000E7DCAE6EF
:0400D3000E869D6C8C
:0400D4000E8F6A9889
:0400D5000E983276D9
:0400D6000EA0F51073
:0400D7000EA9B26C50
:0400D8000EB26A9862
:0400D9000EBB1D98A5
:0400DA000EC3CB7A0C
:0400DB000ECC74448F
:0400DC000ED5180025
:0400DD000EDDB6B6C8
:0400DE000EE650706A
:0400DF000EEEE53606
:0400E0000EF7751092
:0400E1000F00000804
:0400E2000F08862459
:0400E3000F11076E84
:0400E4000F1983EE7F
:0400E5000F21FBAC40
:0400E6000F2A6EAEC1
:0400E7000F32DD00F7
:0400E8000F3B46A4E0
:0400E9000F43ABA86E
:0400EA000F4C0C109B
:0400EB000F5467E463
:0400EC000F5CBF2ABC
:0400ED000F6511EE9C
:0400EE000F6D603200
:0400EF000F75AA02DD
:0400F0000F7DEF6031
:0400F1000F863058EE
:0400F2000F8E6CEE13
:0400F3000F96A52A95
:0400F4000F9ED9146E
:0400F5000FA708B099
:0400F6000FAF34060E
:0400F7000FB75B1EC6
:0400F8000FBF7DFEBB
:0400F9000FC79CACE5
:0400FA000FCFB72C41
:0400FB000FD7CD8AC4
:0400FC000FDFDFC86B
:0400FD000FE7EDEC30
:0400FE000FEFF80008
:0400FF000FF7FE08F1
:00000001ff

View file

@ -127,132 +127,132 @@
:03007D0005B0B714
:03007E0005ADD9F4
:03007F0005AAFED1
:030080000B504DD5
:030080000B504AD8
:030081000B450C20
:030082000B39EE49
:030083000B2EF34E
:030084000B241238
:030085000B1955FF
:030083000B2EF24F
:030084000B241634
:030085000B1956FE
:030086000B0EB8A6
:030087000B043433
:030088000AF9D39F
:030089000AEF8BF0
:03008A000AE56321
:03008B000ADB5439
:03008C000AD16432
:030087000B043A2D
:030088000AF9D0A2
:030089000AEF90EB
:03008A000AE5661E
:03008B000ADB5637
:03008C000AD1682E
:03008D000AC78E11
:03008E000ABDD3D5
:03008F000AB42F81
:030090000AAAA910
:030091000AA13B86
:030092000A97E6E4
:030093000A8EA52D
:030094000A858159
:030095000A7C756D
:030096000A737B6F
:030097000A6A9D55
:030098000A61D228
:030099000A5921E0
:03009A000A508485
:03009B000A47FA17
:03009C000A3F8791
:03009D000A372AF5
:03009E000A2EE146
:03009F000A26AC82
:03008E000ABDD2D6
:03008F000AB42E82
:030090000AAAA811
:030091000AA13889
:030092000A97E4E6
:030093000A8EA42E
:030094000A85805A
:030095000A7C766C
:030096000A737E6C
:030097000A6A9E54
:030098000A61D822
:030099000A591CE5
:03009A000A508287
:03009B000A480010
:03009C000A3F8A8E
:03009D000A372CF3
:03009E000A2EDE49
:03009F000A26AA84
:0300A0000A1E86AF
:0300A1000A1679C3
:0300A2000A0E7CC7
:0300A3000A0695B5
:0300A40009FEBF93
:0300A50009F6FA5F
:0300A60009EF4A15
:0300A70009E7A8BE
:0300A80009E01A52
:0300A1000A167AC2
:0300A2000A0E7EC5
:0300A3000A0692B8
:0300A40009FEC092
:0300A50009F6F861
:0300A60009EF4619
:0300A70009E7AABC
:0300A80009E01656
:0300A90009D89CD7
:0300AA0009D12F4A
:0300AB0009C9D5AB
:0300AC0009C289FD
:0300AD0009BB4A42
:0300AE0009B42072
:0300AA0009D12E4B
:0300AB0009C9D0B0
:0300AC0009C28402
:0300AD0009BB4C40
:0300AE0009B4246E
:0300AF0009AD0692
:0300B00009A5FBA4
:0300B100099EFBAA
:0300B20009980F9B
:0300B30009913080
:0300B400098A5F57
:0300B50009839E1E
:0300B600097CEDD5
:0300B7000976487F
:0300B800096FAF1E
:0300B900096925AD
:0300BA000962AB2D
:0300B00009A5F8A7
:0300B100099EFAAB
:0300B20009980E9C
:0300B3000991327E
:0300B400098A6452
:0300B5000983A21A
:0300B600097CECD6
:0300B70009764483
:0300B800096FB21B
:0300B900096928AA
:0300BA000962AA2E
:0300BB00095C3CA1
:0300BC000955D90A
:0300BD00094F8464
:0300BE0009493EAF
:0300BC000955DA09
:0300BD00094F8662
:0300BE0009493AB3
:0300BF00094302F0
:0300C000093CD424
:0300C1000936AE4F
:0300C20009309A68
:0300C000093CD226
:0300C1000936B04D
:0300C20009309C66
:0300C300092A8E79
:0300C4000924917B
:0300C500091E9E73
:0300C6000918B75F
:0300C7000912DA41
:0300C800090D0B14
:0300C900090745DF
:0300CA0009018D9C
:0300CB0008FBDB54
:0300CC0008F635FE
:0300CD0008F09B9D
:0300C4000924927A
:0300C500091EA071
:0300C6000918B462
:0300C7000912DE3D
:0300C800090D0C13
:0300C900090746DE
:0300CA00090188A1
:0300CB0008FBDA55
:0300CC0008F63AF9
:0300CD0008F09E9A
:0300CE0008EB0C30
:0300CF0008E588B9
:0300D00008E00D38
:0300D10008DA9BAF
:0300D20008D5341A
:0300D30008CFD87B
:0300D40008CA85D2
:0300D50008C53B20
:0300D60008BFFA66
:0300D70008BAC3A1
:0300D80008B595D3
:0300D00008E00E37
:0300D10008DA9CAE
:0300D20008D5321C
:0300D30008CFD47F
:0300D40008CA84D3
:0300D50008C53A21
:0300D60008BFF66A
:0300D70008BAC4A0
:0300D80008B590D8
:0300D90008B070FC
:0300DA0008AB521E
:0300DB0008A64034
:0300DC0008A13741
:0300DC0008A13840
:0300DD00089C3844
:0300DE0008974040
:0300DF0008924F35
:0300E000088D6622
:0300E10008888903
:0300E2000883AFE1
:0300E300087EE1B3
:0300E400087A1E79
:0300E50008755B40
:0300E6000870A9F6
:0300E700086BF9AA
:0300E80008675155
:0300E9000862B3F7
:0300EA00085E1D90
:0300EB0008598C25
:0300EC00085503B1
:0300ED0008508434
:0300EE00084C0AB1
:0300EF000847952A
:0300F00008432999
:0300DF0008925034
:0300E000088D6A1E
:0300E10008888804
:0300E2000883B4DC
:0300E300087EE6AE
:0300E400087A1C7B
:0300E50008755E3D
:0300E6000870ACF3
:0300E700086BF6AD
:0300E80008675452
:0300E9000862B2F8
:0300EA00085E1895
:0300EB0008598A27
:0300EC00085504B0
:0300ED0008508038
:0300EE00084C0CAF
:0300EF000847942B
:0300F00008432C96
:0300F100083EC600
:0300F200083A6564
:0300F30008360FBD
:0300F200083A6A5F
:0300F300083612BA
:0300F4000831C010
:0300F500082D785B
:0300F600082934A2
:0300F7000824F8E2
:0300F8000820C419
:0300F900081C964A
:0300FA0008186E75
:0300FB0008144E98
:0300FC00081031B8
:0300FD00080C1AD2
:0300FE0008080BE4
:0300FF00080402F0
:0300F500082D7A59
:0300F60008293A9C
:0300F7000824FCDE
:0300F8000820C21B
:0300F900081C944C
:0300FA0008187073
:0300FB000814489E
:0300FC00081030B9
:0300FD00080C1ECE
:0300FE0008080EE1
:0300FF000803FEF5
:00000001ff

View file

@ -127,132 +127,132 @@
:02007D000E90E3
:02007E000E92E0
:02007F000E94DD
:020080000A6014
:020080000A6212
:020081000A7201
:020082000A82F0
:020083000A8FE2
:020084000AA3CD
:020085000AB1BE
:020083000A90E1
:020084000AA0D0
:020085000AB0BF
:020086000ABEB0
:020087000AD09D
:020088000ADC90
:020089000AED7E
:02008A000AF971
:02008B000B095F
:02008C000B1552
:020087000ACAA3
:020088000ADE8E
:020089000AE883
:02008A000AF872
:02008B000B0662
:02008C000B1255
:02008D000B2244
:02008E000B2E37
:02008F000B3D27
:020090000B481B
:020091000B540E
:020092000B5F02
:020093000B6FF1
:020094000B79E6
:020095000B83DB
:020096000B92CB
:020097000B9BC1
:020098000BA8B3
:020099000BB1A9
:02008E000B3035
:02008F000B3E26
:020090000B4A19
:020091000B560C
:020092000B62FF
:020093000B70F0
:020094000B7AE5
:020095000B82DC
:020096000B90CD
:020097000B9AC2
:020098000BA2B9
:020099000BB6A4
:02009A000BBC9D
:02009B000BC890
:02009C000BD285
:02009D000BDB7B
:02009E000BE471
:02009F000BED67
:02009B000BC296
:02009C000BD087
:02009D000BD87E
:02009E000BE66F
:02009F000BF064
:0200A0000BFA59
:0200A1000C034E
:0200A2000C0D43
:0200A3000C153A
:0200A4000C1D31
:0200A5000C2726
:0200A6000C2F1D
:0200A7000C3912
:0200A8000C4109
:0200A1000C024F
:0200A2000C0A46
:0200A3000C1639
:0200A4000C1E30
:0200A5000C2A23
:0200A6000C321A
:0200A7000C3615
:0200A8000C4406
:0200A9000C4AFF
:0200AA000C52F6
:0200AB000C59EE
:0200AC000C61E5
:0200AD000C6DD8
:0200AE000C73D1
:0200AA000C54F4
:0200AB000C5EE9
:0200AC000C66E0
:0200AD000C6ADB
:0200AE000C70D4
:0200AF000C7AC9
:0200B0000C80C2
:0200B1000C8BB6
:0200B2000C91AF
:0200B3000C99A6
:0200B4000CA19D
:0200B5000CA796
:0200B6000CAC90
:0200B7000CB388
:0200B8000CBC7E
:0200B9000CC277
:0200BA000CC771
:0200B0000C84BE
:0200B1000C8CB5
:0200B2000C92AE
:0200B3000C96A9
:0200B4000C9CA2
:0200B5000CA499
:0200B6000CAE8E
:0200B7000CB685
:0200B8000CB882
:0200B9000CC079
:0200BA000CC870
:0200BB000CCE69
:0200BC000CD660
:0200BC000CD462
:0200BD000CDC59
:0200BE000CE153
:0200BE000CE450
:0200BF000CE84B
:0200C0000CED45
:0200C1000CF73A
:0200C0000CF042
:0200C1000CF43D
:0200C2000CFA36
:0200C3000D022C
:0200C4000D0726
:0200C5000D0D1F
:0200C6000D1318
:0200C7000D1911
:0200C8000D1E0B
:0200C9000D2305
:0200CA000D2700
:0200CB000D2FF7
:0200CC000D35F0
:0200CD000D3AEA
:0200C4000D0627
:0200C5000D0A22
:0200C6000D1417
:0200C7000D1614
:0200C8000D1C0D
:0200C9000D2404
:0200CA000D2CFB
:0200CB000D2EF8
:0200CC000D30F5
:0200CD000D38EC
:0200CE000D3EE5
:0200CF000D42E0
:0200D0000D47DA
:0200D1000D4DD3
:0200D2000D51CE
:0200D3000D55C9
:0200D4000D59C4
:0200D5000D5EBE
:0200D6000D63B8
:0200D7000D68B2
:0200D8000D6CAD
:0200D0000D46DB
:0200D1000D4CD4
:0200D2000D54CB
:0200D3000D58C6
:0200D4000D5AC3
:0200D5000D60BC
:0200D6000D66B5
:0200D7000D66B4
:0200D8000D70A9
:0200D9000D72A6
:0200DA000D789F
:0200DB000D7C9A
:0200DC000D7F96
:0200DC000D7E97
:0200DD000D8292
:0200DE000D868D
:0200DF000D8C86
:0200E0000D9180
:0200E1000D937D
:0200E2000D9B74
:0200E3000D9E70
:0200E4000D9F6E
:0200E5000DA864
:0200E6000DA863
:0200E7000DAD5D
:0200E8000DB257
:0200E9000DB454
:0200EA000DB750
:0200DF000D8A88
:0200E0000D8E83
:0200E1000D947C
:0200E2000D9679
:0200E3000D9A74
:0200E4000DA26B
:0200E5000DA468
:0200E6000DA467
:0200E7000DAE5C
:0200E8000DB059
:0200E9000DB652
:0200EA000DBC4B
:0200EB000DBC4A
:0200EC000DBF46
:0200ED000DC143
:0200EE000DC53E
:0200EF000DCB37
:0200F0000DCE33
:0200EC000DC045
:0200ED000DC440
:0200EE000DC241
:0200EF000DCA38
:0200F0000DCC35
:0200F1000DD030
:0200F2000DD728
:0200F3000DDA24
:0200F2000DD22D
:0200F3000DD826
:0200F4000DDC21
:0200F5000DDF1D
:0200F6000DE417
:0200F7000DE713
:0200F8000DE910
:0200F5000DDC20
:0200F6000DDE1D
:0200F7000DE416
:0200F8000DEC0D
:0200F9000DEC0C
:0200FA000DEE09
:0200FB000DF006
:0200FC000DF500
:0200FD000DF9FB
:0200FE000DFCF7
:0200FF000DFFF3
:0200FB000DF600
:0200FC000DF401
:0200FD000DF6FE
:0200FE000DF8FB
:0200FF000E02EF
:00000001ff

View file

@ -7,7 +7,7 @@ module VX_reset_relay #(
) (
input wire clk,
input wire reset,
output wire [NUM_NODES-1:0] reset_out
output wire [NUM_NODES-1:0] reset_o
);
if (DEPTH > 1) begin
@ -25,7 +25,7 @@ module VX_reset_relay #(
reset_r[0] <= {NUM_NODES{reset}};
end
end
assign reset_out = reset_r[DEPTH-1];
assign reset_o = reset_r[DEPTH-1];
end else if (DEPTH == 1) begin
reg [NUM_NODES-1:0] reset_r;
if (ASYNC) begin
@ -37,10 +37,10 @@ module VX_reset_relay #(
reset_r <= {NUM_NODES{reset}};
end
end
assign reset_out = reset_r;
assign reset_o = reset_r;
end else begin
`UNUSED_VAR (clk)
assign reset_out = {NUM_NODES{reset}};
assign reset_o = {NUM_NODES{reset}};
end
endmodule

View file

@ -40,8 +40,11 @@ set_global_assignment -name VERILOG_MACRO SYNTHESIS
set_global_assignment -name VERILOG_MACRO NDEBUG
set_global_assignment -name MESSAGE_DISABLE 16818
set_global_assignment -name TIMEQUEST_DO_REPORT_TIMING ON
set_global_assignment -name OPTIMIZATION_TECHNIQUE SPEED
set_global_assignment -name OPTIMIZATION_TECHNIQUE SPEED
set_global_assignment -name ALLOW_ANY_RAM_SIZE_FOR_RECOGNITION ON
set_global_assignment -name USE_HIGH_SPEED_ADDER ON
set_global_assignment -name MUX_RESTRUCTURE ON
#set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE PERFORMANCE"
#set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
#set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS"