├── pwm.v ├── .gitignore ├── .gitmodules ├── gamma.py ├── decimator.v ├── test_tb.v ├── fft.gtkw ├── Makefile ├── adc_model.v ├── bram.v ├── mv-dev.pcf ├── top.v ├── adc.v ├── gamma.hex ├── README.md └── testtone.hex /pwm.v: -------------------------------------------------------------------------------- 1 | /home/matt/work/first-fpga-pcb/test/pwm.v -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | yosys.log 2 | nextpnr.log 3 | fft-core 4 | *bin 5 | *vcd 6 | *hex 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dblclockfft"] 2 | path = dblclockfft 3 | url = https://github.com/ZipCPU/dblclockfft 4 | -------------------------------------------------------------------------------- /gamma.py: -------------------------------------------------------------------------------- 1 | ## Creates a gamma-corrected lookup table 2 | import math 3 | import sys 4 | 5 | def hex3(n): 6 | return "0x%s"% ("00000000%x"%(n&0xffffffff))[-8:] 7 | 8 | def gamma(nsteps, gamma): 9 | gammaedUp = [math.pow(x, gamma) for x in range(nsteps)] 10 | return [x/max(gammaedUp) for x in gammaedUp] 11 | 12 | def rounder(topValue, gammas): 13 | return [min(topValue, round(x*topValue)) for x in gammas] 14 | 15 | if __name__ == "__main__": 16 | myGamma = 2.3 17 | steps = 2 ** int(sys.argv[1]) 18 | with open("gamma.hex", 'w') as fh: 19 | for value in rounder(steps-1, gamma(steps, myGamma)): 20 | fh.write(hex3(value) + "\n") 21 | -------------------------------------------------------------------------------- /decimator.v: -------------------------------------------------------------------------------- 1 | `default_nettype none 2 | module decimator #( 3 | parameter WIDTH = 8, 4 | parameter TIMES = 4 5 | ) ( 6 | input wire clk, 7 | input wire ce, 8 | input wire [WIDTH-1:0] data_in, 9 | output reg [WIDTH-1:0] data_out, 10 | output wire new_sample 11 | ); 12 | 13 | localparam COUNT_WIDTH = $clog2(TIMES); 14 | reg [COUNT_WIDTH:0] count = 0; 15 | 16 | assign new_sample = ce && count == TIMES - 1; 17 | 18 | always @(posedge clk) 19 | if(ce) begin 20 | count <= count + 1; 21 | if(count == TIMES-1) begin 22 | count <= 0; 23 | data_out <= data_in; 24 | end 25 | end 26 | 27 | endmodule 28 | -------------------------------------------------------------------------------- /test_tb.v: -------------------------------------------------------------------------------- 1 | `default_nettype none 2 | module test; 3 | 4 | reg clk = 0; 5 | always #1 clk = !clk; 6 | 7 | localparam WIDTH = 12; 8 | localparam MAX_LEN = 2000; 9 | localparam CE = 16; 10 | localparam BINS = 8; 11 | 12 | top #(.WIDTH(WIDTH), .BINS(BINS)) top0 (.ext_clk(clk), .reset_async(1'b0), .adc_clk(adc_clk), .adc_cs(adc_cs), .adc_sd(adc_sd)); 13 | 14 | wire done, adc_sd, adc_cs, adc_clk; 15 | reg run; 16 | adc_model #(.MAX_LEN(MAX_LEN), .SAMPLE_FILE("testtone.hex")) adc_model_inst(.run(run), .clk(adc_clk), .cs(adc_cs), .sd(adc_sd), .done(done)); 17 | 18 | integer i; 19 | initial begin 20 | $dumpfile("test.vcd"); 21 | $dumpvars(0,test); 22 | for (i = 0 ; i < BINS ; i = i + 1) begin 23 | $dumpvars(1, top0.bins[i]); 24 | end 25 | 26 | # 20 27 | run = 1; 28 | # 20000 29 | 30 | $finish; 31 | end 32 | 33 | endmodule 34 | -------------------------------------------------------------------------------- /fft.gtkw: -------------------------------------------------------------------------------- 1 | [*] 2 | [*] GTKWave Analyzer v3.3.105 (w)1999-2020 BSI 3 | [*] Fri May 29 16:07:33 2020 4 | [*] 5 | [dumpfile] "/home/matt/work/fpga/fpga-fft/test.vcd" 6 | [dumpfile_mtime] "Fri May 29 16:06:20 2020" 7 | [dumpfile_size] 11616903 8 | [savefile] "/home/matt/work/fpga/fpga-fft/fft.gtkw" 9 | [timestart] 4959 10 | [size] 2210 1288 11 | [pos] -1 -1 12 | *-9.979837 8314 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 13 | [treeopen] test. 14 | [treeopen] test.top0. 15 | [treeopen] test.top0.genblk1[0]. 16 | [sst_width] 272 17 | [signals_width] 517 18 | [sst_expanded] 1 19 | [sst_vpaned_height] 385 20 | @28 21 | test.clk 22 | test.adc_clk 23 | test.adc_cs 24 | test.adc_sd 25 | test.done 26 | @200 27 | - 28 | @28 29 | test.top0.reset 30 | @20000 31 | - 32 | @8420 33 | test.top0.adc_data[11:0] 34 | test.top0.decimator_0.data_in[11:0] 35 | test.top0.decimator_0.data_out[11:0] 36 | @28 37 | test.top0.decimator_0.new_sample 38 | test.top0.decimator_0.ce 39 | test.top0.fft_0.i_ce 40 | test.top0.fft_0.o_sync 41 | @8024 42 | test.top0.abs[25:0] 43 | @20000 44 | - 45 | @24 46 | test.top0.bin[7:0] 47 | test.top0.\bins[0][7:0] 48 | test.top0.\bins[1][7:0] 49 | test.top0.\bins[2][7:0] 50 | test.top0.\bins[3][7:0] 51 | test.top0.\bins[4][7:0] 52 | test.top0.\bins[5][7:0] 53 | test.top0.\bins[6][7:0] 54 | test.top0.\bins[7][7:0] 55 | @200 56 | - 57 | @800022 58 | test.top0.leds[7:0] 59 | @28 60 | (0)test.top0.leds[7:0] 61 | (1)test.top0.leds[7:0] 62 | (2)test.top0.leds[7:0] 63 | (3)test.top0.leds[7:0] 64 | (4)test.top0.leds[7:0] 65 | (5)test.top0.leds[7:0] 66 | (6)test.top0.leds[7:0] 67 | (7)test.top0.leds[7:0] 68 | @1001200 69 | -group_end 70 | [pattern_trace] 1 71 | [pattern_trace] 0 72 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | PROJ = fft 2 | 3 | DEVICE = hx8k 4 | PIN_DEF = mv-dev.pcf 5 | PACKAGE = tq144:4k 6 | 7 | #DEVICE = up5k 8 | #PIN_DEF = icebreaker.pcf 9 | #PACKAGE = sg48 10 | 11 | BUILD_DIR = . 12 | PI_ADDR = pi@fpga.local 13 | FOMU_FLASH = ~/fomu-flash/fomu-flash 14 | 15 | SEED = 8 16 | 17 | PULSE_TOOL=~/work/kneesonic/tools/gen_pulse.py 18 | FFT_CORE = bimpy.v bitreverse.v butterfly.v convround.v fftmain.v fftstage.v hwbfly.v laststage.v longbimpy.v qtrstage.v shiftaddmpy.v 19 | FFT_SRC = $(addprefix fft-core/, $(FFT_CORE)) 20 | LOCAL_SRC = top.v adc.v pwm.v bram.v decimator.v 21 | SRC = $(FFT_SRC) $(LOCAL_SRC) 22 | 23 | all: fft-core gamma.hex $(PROJ).bin 24 | 25 | gamma.hex: 26 | python3 ./gamma.py 8 27 | 28 | testtone.hex: 29 | # $(PULSE_TOOL) --wave sweep --amp 600 --amp2 600 --freq 62500 --freq2 125000 --sample-rate 2000000 --plot --file testtone.hex --length 2000 30 | $(PULSE_TOOL) --wave sine --amp 600 --freq 31250 --sample-rate 2000000 --file testtone.hex --length 2000 31 | # $(PULSE_TOOL) --wave sine --amp 600 --freq 93750 --sample-rate 2000000 --plot --file testtone.hex --length 2000 32 | # $(PULSE_TOOL) --wave sine --amp 600 --freq 125000 --sample-rate 2000000 --plot --file testtone.hex --length 2000 33 | 34 | # link from Dan's core 35 | fft-core: 36 | make -C dblclockfft 37 | ./dblclockfft/sw/fftgen -f 8 -n 12 -m 12 -k 3 -d fft-core 38 | ln -sf fft-core/cmem_8.hex . 39 | ln -sf fft-core/cmem_16.hex . 40 | ln -sf fft-core/cmem_32.hex . 41 | #ln -sf fft-core/cmem_64.hex . 42 | 43 | debug: testtone.hex 44 | iverilog -DDEBUG -o test test_tb.v adc_model.v $(SRC) 45 | vvp test 46 | gtkwave test.vcd fft.gtkw 47 | 48 | # needs -dsp to infer multiplies 49 | %.json: $(SRC) 50 | yosys -l yosys.log -p 'synth_ice40 -top top -json $@' $^ 51 | 52 | %.asc: %.json $(PIN_DEF) 53 | nextpnr-ice40 -l nextpnr.log --seed $(SEED) --freq 32 --package $(PACKAGE) --$(DEVICE) --asc $@ --pcf $(PIN_DEF) --json $< 54 | 55 | %.bin: %.asc 56 | icepack $< $@ 57 | 58 | prog-fpga: $(BUILD_DIR)/$(PROJ).bin 59 | scp $< $(PI_ADDR):/tmp/$(PROJ).bin 60 | ssh $(PI_ADDR) "sudo $(FOMU_FLASH) -f /tmp/$(PROJ).bin" 61 | 62 | prog-flash: $(BUILD_DIR)/$(PROJ).bin 63 | scp $< $(PI_ADDR):/tmp/$(PROJ).bin 64 | ssh $(PI_ADDR) "sudo $(FOMU_FLASH) -w /tmp/$(PROJ).bin; sudo $(FOMU_FLASH) -r" 65 | 66 | clean: 67 | rm $(PROJ).bin 68 | 69 | .phony: testtone.hex clean 70 | -------------------------------------------------------------------------------- /adc_model.v: -------------------------------------------------------------------------------- 1 | /* 2 | model of the ADC that the adc.v core reads 3 | Serial ADC [ADS7883](http://www.ti.com/lit/ds/symlink/ads7883.pdf) 4 | */ 5 | `default_nettype none 6 | module adc_model #( 7 | parameter MAX_LEN = 128, 8 | parameter WIDTH = 12, 9 | parameter SAMPLE_FILE = "sample.list" 10 | ) 11 | ( 12 | input wire clk, 13 | input wire cs, 14 | input wire run, 15 | output done, 16 | output reg sd 17 | ); 18 | 19 | reg [$clog2(MAX_LEN)-1:0] sample_count = 0; 20 | reg [$clog2(WIDTH)-1:0] bit_count = 0; 21 | reg [WIDTH-1:0] sample_data [MAX_LEN-1:0]; 22 | 23 | assign done = state == STATE_IDLE; 24 | 25 | initial begin 26 | if (SAMPLE_FILE) $readmemh(SAMPLE_FILE, sample_data); 27 | sd <= 0; 28 | bit_count <= 0; 29 | sample_count <= 0; 30 | end 31 | 32 | localparam STATE_IDLE = 0; 33 | localparam STATE_WAIT_CS= 1; 34 | localparam STATE_RUN = 2; 35 | 36 | reg [2:0] state = STATE_IDLE; 37 | 38 | always @(negedge clk) 39 | case(state) 40 | STATE_IDLE: begin 41 | sd <= 0; 42 | sample_count <= 0; 43 | bit_count <= 0; 44 | if(run) 45 | state <= STATE_WAIT_CS; 46 | end 47 | 48 | STATE_WAIT_CS: begin // sync to adc reader 49 | if(cs == 1) 50 | state <= STATE_RUN; 51 | end 52 | 53 | STATE_RUN: begin 54 | if(cs == 1 && sample_count < MAX_LEN - 1) begin // reset counters 55 | // $display("sample = %d", sample_data[sample_count]); 56 | bit_count <= 0; 57 | sample_count <= sample_count + 1; 58 | sd <= 0; 59 | end else if (bit_count <= WIDTH ) begin // clock out data on negedge of clock until end of the sample file 60 | bit_count <= bit_count + 1; 61 | if(bit_count == 0) // ADC outputs a leading 0 before the sample data follows 62 | sd <= 0; 63 | else 64 | sd <= sample_data[sample_count][WIDTH-bit_count]; 65 | end else if (sample_count == MAX_LEN - 1) 66 | state <= STATE_IDLE; 67 | end 68 | endcase 69 | 70 | endmodule 71 | -------------------------------------------------------------------------------- /bram.v: -------------------------------------------------------------------------------- 1 | `default_nettype none 2 | module bram 3 | #( 4 | parameter ADDR_W = 9, 5 | parameter DATA_W = 8, 6 | parameter FILE = "", 7 | parameter ZERO = 0 8 | ) 9 | ( 10 | input wire r_clk, 11 | input wire w_clk, 12 | input wire [ADDR_W-1:0] r_addr, 13 | input wire [ADDR_W-1:0] w_addr, 14 | input wire w_en, 15 | input wire r_en, 16 | input wire [DATA_W-1:0] w_data, 17 | output reg [DATA_W-1:0] r_data 18 | ); 19 | 20 | reg [DATA_W-1:0] bram [(1 << ADDR_W)-1:0]; 21 | 22 | integer j; 23 | initial begin 24 | if (FILE) $readmemh(FILE, bram); 25 | if (ZERO) 26 | for(j = 0; j < (2<> BIN_DIV) < 255 ? (abs >> BIN_DIV) : 255; // scale & limit to 255 88 | end 89 | end 90 | end 91 | 92 | // Dan's fft core 93 | wire fft_ce; 94 | wire [WIDTH-1:0] decimated_data; 95 | decimator #(.WIDTH(WIDTH)) decimator_0(.clk(clk_32m), .ce(adc_ready), .data_in(adc_data), .data_out(decimated_data), .new_sample(fft_ce)); 96 | fftmain fft_0(.i_clk(clk_32m), .i_reset(reset), .i_ce(fft_ce), .i_sample({decimated_data, sample_imag}), .o_result({output_real, output_imag}), .o_sync(sync)); 97 | 98 | // pwm and gamma correction for each LED 99 | generate 100 | genvar i; 101 | for(i = 0; i < BINS; i = i + 1) begin 102 | bram #(.ADDR_W(PWM_WIDTH), .DATA_W(PWM_WIDTH), .FILE("gamma.hex")) gamma_LUT (.r_clk(clk_32m), .r_addr(bins[i]), .r_data(corrected_pwm_level[i]), .r_en(1'b1)); 103 | pwm #(.WIDTH(PWM_WIDTH), .INVERT(1'b0)) pwm_inst (.clk(clk_32m), .level(corrected_pwm_level[i]), .pwm(leds[i])); 104 | end 105 | endgenerate 106 | 107 | endmodule 108 | -------------------------------------------------------------------------------- /adc.v: -------------------------------------------------------------------------------- 1 | /* 2 | Serial ADC reader for [ADS7883](http://www.ti.com/lit/ds/symlink/ads7883.pdf) 3 | 4 | Matt Venn 2017 5 | 6 | ADC starts sample on CS low. First 2 clocks are blank and then sample is 7 | clocked out MSB first. 8 | 9 | */ 10 | `default_nettype none 11 | module adc ( 12 | input wire clk, 13 | input wire reset, 14 | output wire adc_clk, 15 | output wire adc_cs, 16 | output reg ready, 17 | input wire adc_sd, 18 | output reg [11:0] data, 19 | output reg [11:0] max 20 | ); 21 | 22 | initial begin 23 | ready = 0; 24 | data = 0; 25 | max = 0; 26 | end 27 | 28 | // outputs only valid not in reset 29 | assign adc_clk = clk; 30 | assign adc_cs = (cnt == 0 && reset == 0) ? 1 : 0; 31 | 32 | reg [11:0] serial_data = 0; 33 | reg [3:0] cnt = 0; 34 | reg capture = 0; 35 | 36 | always @(posedge clk) begin 37 | 38 | if(reset) begin 39 | 40 | max <= 0; 41 | serial_data <= 12'b0; 42 | cnt <= 0; 43 | data <= 12'b0; 44 | ready <= 0; 45 | 46 | end else begin 47 | 48 | cnt<=cnt+1; 49 | 50 | if(cnt == 0) begin 51 | ready <= 0; 52 | end 53 | 54 | if(cnt > 1 && cnt <= 13) 55 | serial_data <= { serial_data[10:0], adc_sd }; 56 | if(cnt == 0) 57 | serial_data <= 0; 58 | 59 | if(cnt == 14) begin 60 | data <= serial_data; 61 | ready <= 1; 62 | if(serial_data > max) 63 | max <= serial_data; 64 | end 65 | 66 | // ready signal is only valid for 1 clock, used for clock enable 67 | if(cnt == 15) 68 | ready <= 0; 69 | end 70 | end 71 | 72 | `ifdef FORMAL_ADC 73 | // all this mostly from https://zipcpu.com/blog/2017/10/19/formal-intro.html 74 | 75 | // past valid signal 76 | reg f_past_valid = 0; 77 | always @(posedge clk) 78 | f_past_valid <= 1'b1; 79 | 80 | // start in reset 81 | initial restrict(reset); 82 | 83 | // force: clock to change, only allow inputs to change on rising clock 84 | reg f_last_clk = 0; 85 | always @($global_clock) begin 86 | restrict(clk == !f_last_clk); 87 | f_last_clk <= clk; 88 | if (!$rose(clk)) begin 89 | assume($stable(reset)); 90 | end 91 | end 92 | 93 | // check everything is zeroed on the reset signal 94 | always @(posedge clk) 95 | if (f_past_valid) 96 | if ($past(reset)) begin 97 | assert(max == 0); 98 | assert(serial_data == 0); 99 | assert(cnt == 0); 100 | assert(data == 0); 101 | assert(ready == 0); 102 | end 103 | 104 | // ready signal is asserted 105 | // check data doesn't change when the ready signal is given 106 | always @(posedge clk) 107 | if(cnt == 15) begin 108 | assert(ready == 1); 109 | assert(data == $past(serial_data)); 110 | end 111 | 112 | // ready signal only one clock 113 | always @(posedge clk) 114 | if (f_past_valid) 115 | if($past(ready)) 116 | assert(ready == 0); 117 | 118 | // cs signal 119 | always @(posedge clk) 120 | if(!reset && cnt == 0) 121 | assert(adc_cs == 1); 122 | 123 | `endif 124 | 125 | endmodule 126 | -------------------------------------------------------------------------------- /gamma.hex: -------------------------------------------------------------------------------- 1 | 0x00000000 2 | 0x00000000 3 | 0x00000000 4 | 0x00000000 5 | 0x00000000 6 | 0x00000000 7 | 0x00000000 8 | 0x00000000 9 | 0x00000000 10 | 0x00000000 11 | 0x00000000 12 | 0x00000000 13 | 0x00000000 14 | 0x00000000 15 | 0x00000000 16 | 0x00000000 17 | 0x00000000 18 | 0x00000001 19 | 0x00000001 20 | 0x00000001 21 | 0x00000001 22 | 0x00000001 23 | 0x00000001 24 | 0x00000001 25 | 0x00000001 26 | 0x00000001 27 | 0x00000001 28 | 0x00000001 29 | 0x00000002 30 | 0x00000002 31 | 0x00000002 32 | 0x00000002 33 | 0x00000002 34 | 0x00000002 35 | 0x00000002 36 | 0x00000003 37 | 0x00000003 38 | 0x00000003 39 | 0x00000003 40 | 0x00000003 41 | 0x00000004 42 | 0x00000004 43 | 0x00000004 44 | 0x00000004 45 | 0x00000004 46 | 0x00000005 47 | 0x00000005 48 | 0x00000005 49 | 0x00000005 50 | 0x00000006 51 | 0x00000006 52 | 0x00000006 53 | 0x00000007 54 | 0x00000007 55 | 0x00000007 56 | 0x00000007 57 | 0x00000008 58 | 0x00000008 59 | 0x00000008 60 | 0x00000009 61 | 0x00000009 62 | 0x0000000a 63 | 0x0000000a 64 | 0x0000000a 65 | 0x0000000b 66 | 0x0000000b 67 | 0x0000000b 68 | 0x0000000c 69 | 0x0000000c 70 | 0x0000000d 71 | 0x0000000d 72 | 0x0000000d 73 | 0x0000000e 74 | 0x0000000e 75 | 0x0000000f 76 | 0x0000000f 77 | 0x00000010 78 | 0x00000010 79 | 0x00000011 80 | 0x00000011 81 | 0x00000012 82 | 0x00000012 83 | 0x00000013 84 | 0x00000013 85 | 0x00000014 86 | 0x00000014 87 | 0x00000015 88 | 0x00000015 89 | 0x00000016 90 | 0x00000017 91 | 0x00000017 92 | 0x00000018 93 | 0x00000018 94 | 0x00000019 95 | 0x0000001a 96 | 0x0000001a 97 | 0x0000001b 98 | 0x0000001c 99 | 0x0000001c 100 | 0x0000001d 101 | 0x0000001e 102 | 0x0000001e 103 | 0x0000001f 104 | 0x00000020 105 | 0x00000020 106 | 0x00000021 107 | 0x00000022 108 | 0x00000023 109 | 0x00000023 110 | 0x00000024 111 | 0x00000025 112 | 0x00000026 113 | 0x00000026 114 | 0x00000027 115 | 0x00000028 116 | 0x00000029 117 | 0x0000002a 118 | 0x0000002a 119 | 0x0000002b 120 | 0x0000002c 121 | 0x0000002d 122 | 0x0000002e 123 | 0x0000002f 124 | 0x00000030 125 | 0x00000031 126 | 0x00000031 127 | 0x00000032 128 | 0x00000033 129 | 0x00000034 130 | 0x00000035 131 | 0x00000036 132 | 0x00000037 133 | 0x00000038 134 | 0x00000039 135 | 0x0000003a 136 | 0x0000003b 137 | 0x0000003c 138 | 0x0000003d 139 | 0x0000003e 140 | 0x0000003f 141 | 0x00000040 142 | 0x00000041 143 | 0x00000042 144 | 0x00000043 145 | 0x00000045 146 | 0x00000046 147 | 0x00000047 148 | 0x00000048 149 | 0x00000049 150 | 0x0000004a 151 | 0x0000004b 152 | 0x0000004c 153 | 0x0000004e 154 | 0x0000004f 155 | 0x00000050 156 | 0x00000051 157 | 0x00000052 158 | 0x00000054 159 | 0x00000055 160 | 0x00000056 161 | 0x00000057 162 | 0x00000059 163 | 0x0000005a 164 | 0x0000005b 165 | 0x0000005c 166 | 0x0000005e 167 | 0x0000005f 168 | 0x00000060 169 | 0x00000062 170 | 0x00000063 171 | 0x00000064 172 | 0x00000066 173 | 0x00000067 174 | 0x00000068 175 | 0x0000006a 176 | 0x0000006b 177 | 0x0000006d 178 | 0x0000006e 179 | 0x00000070 180 | 0x00000071 181 | 0x00000072 182 | 0x00000074 183 | 0x00000075 184 | 0x00000077 185 | 0x00000078 186 | 0x0000007a 187 | 0x0000007b 188 | 0x0000007d 189 | 0x0000007e 190 | 0x00000080 191 | 0x00000082 192 | 0x00000083 193 | 0x00000085 194 | 0x00000086 195 | 0x00000088 196 | 0x0000008a 197 | 0x0000008b 198 | 0x0000008d 199 | 0x0000008f 200 | 0x00000090 201 | 0x00000092 202 | 0x00000094 203 | 0x00000095 204 | 0x00000097 205 | 0x00000099 206 | 0x0000009a 207 | 0x0000009c 208 | 0x0000009e 209 | 0x000000a0 210 | 0x000000a1 211 | 0x000000a3 212 | 0x000000a5 213 | 0x000000a7 214 | 0x000000a9 215 | 0x000000aa 216 | 0x000000ac 217 | 0x000000ae 218 | 0x000000b0 219 | 0x000000b2 220 | 0x000000b4 221 | 0x000000b6 222 | 0x000000b7 223 | 0x000000b9 224 | 0x000000bb 225 | 0x000000bd 226 | 0x000000bf 227 | 0x000000c1 228 | 0x000000c3 229 | 0x000000c5 230 | 0x000000c7 231 | 0x000000c9 232 | 0x000000cb 233 | 0x000000cd 234 | 0x000000cf 235 | 0x000000d1 236 | 0x000000d3 237 | 0x000000d5 238 | 0x000000d7 239 | 0x000000da 240 | 0x000000dc 241 | 0x000000de 242 | 0x000000e0 243 | 0x000000e2 244 | 0x000000e4 245 | 0x000000e6 246 | 0x000000e9 247 | 0x000000eb 248 | 0x000000ed 249 | 0x000000ef 250 | 0x000000f1 251 | 0x000000f4 252 | 0x000000f6 253 | 0x000000f8 254 | 0x000000fa 255 | 0x000000fd 256 | 0x000000ff 257 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Demo of Dan's FFT Core 2 | 3 | https://zipcpu.com/dsp/2018/10/02/fft.html 4 | https://github.com/ZipCPU/dblclockfft 5 | 6 | This demo uses a 32 bin 12 bit core generated with this command: 7 | 8 | ./fftgen -f 32 -n 12 -m 12 -k 16 9 | 10 | Runs at 32MHz, with -k 16 fft only runs once per 16 cycles (to reduce number of 11 | multipliers). So throughput is 2MHz. 12 | 13 | Only the first 8 bins are displayed on the LEDs. 14 | 15 | # Build 16 | 17 | Dev board targetted is [here](https://github.com/mattvenn/first-fpga-pcb) 18 | 19 | * run make debug to see trace of a generated sine 20 | * run make prog-fpga to build a bin and copy to dev board plugged to raspi 21 | 22 | # Resource usage 23 | 24 | ## HX8k 25 | 26 | ### ./fftgen -f 64 -n 12 -m 12 27 | 28 | === top === 29 | 30 | Number of wires: 5026 31 | Number of wire bits: 32754 32 | Number of public wires: 5026 33 | Number of public wire bits: 32754 34 | Number of memories: 0 35 | Number of memory bits: 0 36 | Number of processes: 0 37 | Number of cells: 20790 38 | SB_CARRY 4011 39 | SB_DFF 6903 40 | SB_DFFE 301 41 | SB_DFFESR 46 42 | SB_DFFSR 215 43 | SB_DFFSS 1 44 | SB_LUT4 9285 45 | SB_RAM40_4K 28 46 | 47 | ### ./fftgen -f 64 -n 12 -m 12 -k 16 48 | 49 | -k # Sets # clocks per sample, used to minimize multiplies. Also 50 | sets one sample in per i_ce clock (opt -1) 51 | 52 | 97% fpga usage on 8k 53 | 54 | === top === 55 | 56 | Number of wires: 3309 57 | Number of wire bits: 18949 58 | Number of public wires: 3309 59 | Number of public wire bits: 18949 60 | Number of memories: 0 61 | Number of memory bits: 0 62 | Number of processes: 0 63 | Number of cells: 10583 64 | SB_CARRY 1763 65 | SB_DFF 3634 66 | SB_DFFE 301 67 | SB_DFFESR 46 68 | SB_DFFSR 236 69 | SB_DFFSS 1 70 | SB_LUT4 4574 71 | SB_RAM40_4K 28 72 | 73 | 74 | ### ./fftgen -f 32 -n 12 -m 12 -k 16 75 | 76 | Info: Device utilisation: 77 | Info: ICESTORM_LC: 6053/ 7680 78% 78 | Info: ICESTORM_RAM: 20/ 32 62% 79 | Info: SB_IO: 40/ 256 15% 80 | Info: SB_GB: 8/ 8 100% 81 | Info: ICESTORM_PLL: 0/ 2 0% 82 | Info: SB_WARMBOOT: 0/ 1 0% 83 | 84 | === top === 85 | 86 | Number of wires: 2815 87 | Number of wire bits: 15018 88 | Number of public wires: 2815 89 | Number of public wire bits: 15018 90 | Number of memories: 0 91 | Number of memory bits: 0 92 | Number of processes: 0 93 | Number of cells: 8445 94 | SB_CARRY 1377 95 | SB_DFF 2790 96 | SB_DFFE 301 97 | SB_DFFESR 33 98 | SB_DFFSR 181 99 | SB_DFFSS 1 100 | SB_LUT4 3742 101 | SB_RAM40_4K 20 102 | 103 | ### ./fftgen -f 32 -n 12 -m 12 -k 16 -p 6 104 | 105 | using hardware dsps on up5k 106 | 107 | Info: ICESTORM_LC: 3092/ 5280 58% 108 | Info: ICESTORM_RAM: 14/ 30 46% 109 | Info: SB_IO: 40/ 96 41% 110 | Info: SB_GB: 8/ 8 100% 111 | Info: ICESTORM_PLL: 0/ 1 0% 112 | Info: SB_WARMBOOT: 0/ 1 0% 113 | Info: ICESTORM_DSP: 5/ 8 62% 114 | Info: ICESTORM_HFOSC: 0/ 1 0% 115 | Info: ICESTORM_LFOSC: 0/ 1 0% 116 | Info: SB_I2C: 0/ 2 0% 117 | Info: SB_SPI: 0/ 2 0% 118 | Info: IO_I3C: 0/ 2 0% 119 | Info: SB_LEDDA_IP: 0/ 1 0% 120 | Info: SB_RGBA_DRV: 0/ 1 0% 121 | Info: ICESTORM_SPRAM: 0/ 4 0% 122 | 123 | ### ./fftgen -f 64 -n 12 -m 12 -k 16 -p 6 124 | 125 | using hardware dsps on up5k 126 | 127 | Info: ICESTORM_LC: 3809/ 5280 72% 128 | Info: ICESTORM_RAM: 20/ 30 66% 129 | Info: SB_IO: 40/ 96 41% 130 | Info: SB_GB: 8/ 8 100% 131 | Info: ICESTORM_PLL: 0/ 1 0% 132 | Info: SB_WARMBOOT: 0/ 1 0% 133 | Info: ICESTORM_DSP: 6/ 8 75% 134 | Info: ICESTORM_HFOSC: 0/ 1 0% 135 | Info: ICESTORM_LFOSC: 0/ 1 0% 136 | Info: SB_I2C: 0/ 2 0% 137 | Info: SB_SPI: 0/ 2 0% 138 | Info: IO_I3C: 0/ 2 0% 139 | Info: SB_LEDDA_IP: 0/ 1 0% 140 | Info: SB_RGBA_DRV: 0/ 1 0% 141 | Info: ICESTORM_SPRAM: 0/ 4 0% 142 | 143 | ### ./fftgen -f 32 -n 12 -m 12 -k 16 144 | 145 | for now working with this one 146 | 147 | Info: Device utilisation: 148 | Info: ICESTORM_LC: 6762/ 7680 88% 149 | Info: ICESTORM_RAM: 20/ 32 62% 150 | Info: SB_IO: 13/ 256 5% 151 | Info: SB_GB: 8/ 8 100% 152 | Info: ICESTORM_PLL: 1/ 2 50% 153 | Info: SB_WARMBOOT: 0/ 1 0% 154 | 155 | ### fftgen -f 8 -n 12 -m 12 -k 3 -d fft-core 156 | 157 | Info: Device utilisation: 158 | Info: ICESTORM_LC: 3923/ 7680 51% 159 | Info: ICESTORM_RAM: 12/ 32 37% 160 | Info: SB_IO: 13/ 256 5% 161 | Info: SB_GB: 8/ 8 100% 162 | Info: ICESTORM_PLL: 1/ 2 50% 163 | Info: SB_WARMBOOT: 0/ 1 0% 164 | 165 | -------------------------------------------------------------------------------- /testtone.hex: -------------------------------------------------------------------------------- 1 | 0x00000000 2 | 0x0000003a 3 | 0x00000075 4 | 0x000000ae 5 | 0x000000e5 6 | 0x0000011a 7 | 0x0000014d 8 | 0x0000017c 9 | 0x000001a8 10 | 0x000001cf 11 | 0x000001f2 12 | 0x00000211 13 | 0x0000022a 14 | 0x0000023e 15 | 0x0000024c 16 | 0x00000255 17 | 0x00000258 18 | 0x00000255 19 | 0x0000024c 20 | 0x0000023e 21 | 0x0000022a 22 | 0x00000211 23 | 0x000001f2 24 | 0x000001cf 25 | 0x000001a8 26 | 0x0000017c 27 | 0x0000014d 28 | 0x0000011a 29 | 0x000000e5 30 | 0x000000ae 31 | 0x00000075 32 | 0x0000003a 33 | 0x00000000 34 | 0xffffffc6 35 | 0xffffff8b 36 | 0xffffff52 37 | 0xffffff1b 38 | 0xfffffee6 39 | 0xfffffeb3 40 | 0xfffffe84 41 | 0xfffffe58 42 | 0xfffffe31 43 | 0xfffffe0e 44 | 0xfffffdef 45 | 0xfffffdd6 46 | 0xfffffdc2 47 | 0xfffffdb4 48 | 0xfffffdab 49 | 0xfffffda8 50 | 0xfffffdab 51 | 0xfffffdb4 52 | 0xfffffdc2 53 | 0xfffffdd6 54 | 0xfffffdef 55 | 0xfffffe0e 56 | 0xfffffe31 57 | 0xfffffe58 58 | 0xfffffe84 59 | 0xfffffeb3 60 | 0xfffffee6 61 | 0xffffff1b 62 | 0xffffff52 63 | 0xffffff8b 64 | 0xffffffc6 65 | 0x00000000 66 | 0x0000003a 67 | 0x00000075 68 | 0x000000ae 69 | 0x000000e5 70 | 0x0000011a 71 | 0x0000014d 72 | 0x0000017c 73 | 0x000001a8 74 | 0x000001cf 75 | 0x000001f2 76 | 0x00000211 77 | 0x0000022a 78 | 0x0000023e 79 | 0x0000024c 80 | 0x00000255 81 | 0x00000258 82 | 0x00000255 83 | 0x0000024c 84 | 0x0000023e 85 | 0x0000022a 86 | 0x00000211 87 | 0x000001f2 88 | 0x000001cf 89 | 0x000001a8 90 | 0x0000017c 91 | 0x0000014d 92 | 0x0000011a 93 | 0x000000e5 94 | 0x000000ae 95 | 0x00000075 96 | 0x0000003a 97 | 0x00000000 98 | 0xffffffc6 99 | 0xffffff8b 100 | 0xffffff52 101 | 0xffffff1b 102 | 0xfffffee6 103 | 0xfffffeb3 104 | 0xfffffe84 105 | 0xfffffe58 106 | 0xfffffe31 107 | 0xfffffe0e 108 | 0xfffffdef 109 | 0xfffffdd6 110 | 0xfffffdc2 111 | 0xfffffdb4 112 | 0xfffffdab 113 | 0xfffffda8 114 | 0xfffffdab 115 | 0xfffffdb4 116 | 0xfffffdc2 117 | 0xfffffdd6 118 | 0xfffffdef 119 | 0xfffffe0e 120 | 0xfffffe31 121 | 0xfffffe58 122 | 0xfffffe84 123 | 0xfffffeb3 124 | 0xfffffee6 125 | 0xffffff1b 126 | 0xffffff52 127 | 0xffffff8b 128 | 0xffffffc6 129 | 0x00000000 130 | 0x0000003a 131 | 0x00000075 132 | 0x000000ae 133 | 0x000000e5 134 | 0x0000011a 135 | 0x0000014d 136 | 0x0000017c 137 | 0x000001a8 138 | 0x000001cf 139 | 0x000001f2 140 | 0x00000211 141 | 0x0000022a 142 | 0x0000023e 143 | 0x0000024c 144 | 0x00000255 145 | 0x00000258 146 | 0x00000255 147 | 0x0000024c 148 | 0x0000023e 149 | 0x0000022a 150 | 0x00000211 151 | 0x000001f2 152 | 0x000001cf 153 | 0x000001a8 154 | 0x0000017c 155 | 0x0000014d 156 | 0x0000011a 157 | 0x000000e5 158 | 0x000000ae 159 | 0x00000075 160 | 0x0000003a 161 | 0x00000000 162 | 0xffffffc6 163 | 0xffffff8b 164 | 0xffffff52 165 | 0xffffff1b 166 | 0xfffffee6 167 | 0xfffffeb3 168 | 0xfffffe84 169 | 0xfffffe58 170 | 0xfffffe31 171 | 0xfffffe0e 172 | 0xfffffdef 173 | 0xfffffdd6 174 | 0xfffffdc2 175 | 0xfffffdb4 176 | 0xfffffdab 177 | 0xfffffda8 178 | 0xfffffdab 179 | 0xfffffdb4 180 | 0xfffffdc2 181 | 0xfffffdd6 182 | 0xfffffdef 183 | 0xfffffe0e 184 | 0xfffffe31 185 | 0xfffffe58 186 | 0xfffffe84 187 | 0xfffffeb3 188 | 0xfffffee6 189 | 0xffffff1b 190 | 0xffffff52 191 | 0xffffff8b 192 | 0xffffffc6 193 | 0x00000000 194 | 0x0000003a 195 | 0x00000075 196 | 0x000000ae 197 | 0x000000e5 198 | 0x0000011a 199 | 0x0000014d 200 | 0x0000017c 201 | 0x000001a8 202 | 0x000001cf 203 | 0x000001f2 204 | 0x00000211 205 | 0x0000022a 206 | 0x0000023e 207 | 0x0000024c 208 | 0x00000255 209 | 0x00000258 210 | 0x00000255 211 | 0x0000024c 212 | 0x0000023e 213 | 0x0000022a 214 | 0x00000211 215 | 0x000001f2 216 | 0x000001cf 217 | 0x000001a8 218 | 0x0000017c 219 | 0x0000014d 220 | 0x0000011a 221 | 0x000000e5 222 | 0x000000ae 223 | 0x00000075 224 | 0x0000003a 225 | 0x00000000 226 | 0xffffffc6 227 | 0xffffff8b 228 | 0xffffff52 229 | 0xffffff1b 230 | 0xfffffee6 231 | 0xfffffeb3 232 | 0xfffffe84 233 | 0xfffffe58 234 | 0xfffffe31 235 | 0xfffffe0e 236 | 0xfffffdef 237 | 0xfffffdd6 238 | 0xfffffdc2 239 | 0xfffffdb4 240 | 0xfffffdab 241 | 0xfffffda8 242 | 0xfffffdab 243 | 0xfffffdb4 244 | 0xfffffdc2 245 | 0xfffffdd6 246 | 0xfffffdef 247 | 0xfffffe0e 248 | 0xfffffe31 249 | 0xfffffe58 250 | 0xfffffe84 251 | 0xfffffeb3 252 | 0xfffffee6 253 | 0xffffff1b 254 | 0xffffff52 255 | 0xffffff8b 256 | 0xffffffc6 257 | 0x00000000 258 | 0x0000003a 259 | 0x00000075 260 | 0x000000ae 261 | 0x000000e5 262 | 0x0000011a 263 | 0x0000014d 264 | 0x0000017c 265 | 0x000001a8 266 | 0x000001cf 267 | 0x000001f2 268 | 0x00000211 269 | 0x0000022a 270 | 0x0000023e 271 | 0x0000024c 272 | 0x00000255 273 | 0x00000258 274 | 0x00000255 275 | 0x0000024c 276 | 0x0000023e 277 | 0x0000022a 278 | 0x00000211 279 | 0x000001f2 280 | 0x000001cf 281 | 0x000001a8 282 | 0x0000017c 283 | 0x0000014d 284 | 0x0000011a 285 | 0x000000e5 286 | 0x000000ae 287 | 0x00000075 288 | 0x0000003a 289 | 0x00000000 290 | 0xffffffc6 291 | 0xffffff8b 292 | 0xffffff52 293 | 0xffffff1b 294 | 0xfffffee6 295 | 0xfffffeb3 296 | 0xfffffe84 297 | 0xfffffe58 298 | 0xfffffe31 299 | 0xfffffe0e 300 | 0xfffffdef 301 | 0xfffffdd6 302 | 0xfffffdc2 303 | 0xfffffdb4 304 | 0xfffffdab 305 | 0xfffffda8 306 | 0xfffffdab 307 | 0xfffffdb4 308 | 0xfffffdc2 309 | 0xfffffdd6 310 | 0xfffffdef 311 | 0xfffffe0e 312 | 0xfffffe31 313 | 0xfffffe58 314 | 0xfffffe84 315 | 0xfffffeb3 316 | 0xfffffee6 317 | 0xffffff1b 318 | 0xffffff52 319 | 0xffffff8b 320 | 0xffffffc6 321 | 0x00000000 322 | 0x0000003a 323 | 0x00000075 324 | 0x000000ae 325 | 0x000000e5 326 | 0x0000011a 327 | 0x0000014d 328 | 0x0000017c 329 | 0x000001a8 330 | 0x000001cf 331 | 0x000001f2 332 | 0x00000211 333 | 0x0000022a 334 | 0x0000023e 335 | 0x0000024c 336 | 0x00000255 337 | 0x00000258 338 | 0x00000255 339 | 0x0000024c 340 | 0x0000023e 341 | 0x0000022a 342 | 0x00000211 343 | 0x000001f2 344 | 0x000001cf 345 | 0x000001a8 346 | 0x0000017c 347 | 0x0000014d 348 | 0x0000011a 349 | 0x000000e5 350 | 0x000000ae 351 | 0x00000075 352 | 0x0000003a 353 | 0x00000000 354 | 0xffffffc6 355 | 0xffffff8b 356 | 0xffffff52 357 | 0xffffff1b 358 | 0xfffffee6 359 | 0xfffffeb3 360 | 0xfffffe84 361 | 0xfffffe58 362 | 0xfffffe31 363 | 0xfffffe0e 364 | 0xfffffdef 365 | 0xfffffdd6 366 | 0xfffffdc2 367 | 0xfffffdb4 368 | 0xfffffdab 369 | 0xfffffda8 370 | 0xfffffdab 371 | 0xfffffdb4 372 | 0xfffffdc2 373 | 0xfffffdd6 374 | 0xfffffdef 375 | 0xfffffe0e 376 | 0xfffffe31 377 | 0xfffffe58 378 | 0xfffffe84 379 | 0xfffffeb3 380 | 0xfffffee6 381 | 0xffffff1b 382 | 0xffffff52 383 | 0xffffff8b 384 | 0xffffffc6 385 | 0x00000000 386 | 0x0000003a 387 | 0x00000075 388 | 0x000000ae 389 | 0x000000e5 390 | 0x0000011a 391 | 0x0000014d 392 | 0x0000017c 393 | 0x000001a8 394 | 0x000001cf 395 | 0x000001f2 396 | 0x00000211 397 | 0x0000022a 398 | 0x0000023e 399 | 0x0000024c 400 | 0x00000255 401 | 0x00000258 402 | 0x00000255 403 | 0x0000024c 404 | 0x0000023e 405 | 0x0000022a 406 | 0x00000211 407 | 0x000001f2 408 | 0x000001cf 409 | 0x000001a8 410 | 0x0000017c 411 | 0x0000014d 412 | 0x0000011a 413 | 0x000000e5 414 | 0x000000ae 415 | 0x00000075 416 | 0x0000003a 417 | 0x00000000 418 | 0xffffffc6 419 | 0xffffff8b 420 | 0xffffff52 421 | 0xffffff1b 422 | 0xfffffee6 423 | 0xfffffeb3 424 | 0xfffffe84 425 | 0xfffffe58 426 | 0xfffffe31 427 | 0xfffffe0e 428 | 0xfffffdef 429 | 0xfffffdd6 430 | 0xfffffdc2 431 | 0xfffffdb4 432 | 0xfffffdab 433 | 0xfffffda8 434 | 0xfffffdab 435 | 0xfffffdb4 436 | 0xfffffdc2 437 | 0xfffffdd6 438 | 0xfffffdef 439 | 0xfffffe0e 440 | 0xfffffe31 441 | 0xfffffe58 442 | 0xfffffe84 443 | 0xfffffeb3 444 | 0xfffffee6 445 | 0xffffff1b 446 | 0xffffff52 447 | 0xffffff8b 448 | 0xffffffc6 449 | 0x00000000 450 | 0x0000003a 451 | 0x00000075 452 | 0x000000ae 453 | 0x000000e5 454 | 0x0000011a 455 | 0x0000014d 456 | 0x0000017c 457 | 0x000001a8 458 | 0x000001cf 459 | 0x000001f2 460 | 0x00000211 461 | 0x0000022a 462 | 0x0000023e 463 | 0x0000024c 464 | 0x00000255 465 | 0x00000258 466 | 0x00000255 467 | 0x0000024c 468 | 0x0000023e 469 | 0x0000022a 470 | 0x00000211 471 | 0x000001f2 472 | 0x000001cf 473 | 0x000001a8 474 | 0x0000017c 475 | 0x0000014d 476 | 0x0000011a 477 | 0x000000e5 478 | 0x000000ae 479 | 0x00000075 480 | 0x0000003a 481 | 0x00000000 482 | 0xffffffc6 483 | 0xffffff8b 484 | 0xffffff52 485 | 0xffffff1b 486 | 0xfffffee6 487 | 0xfffffeb3 488 | 0xfffffe84 489 | 0xfffffe58 490 | 0xfffffe31 491 | 0xfffffe0e 492 | 0xfffffdef 493 | 0xfffffdd6 494 | 0xfffffdc2 495 | 0xfffffdb4 496 | 0xfffffdab 497 | 0xfffffda8 498 | 0xfffffdab 499 | 0xfffffdb4 500 | 0xfffffdc2 501 | 0xfffffdd6 502 | 0xfffffdef 503 | 0xfffffe0e 504 | 0xfffffe31 505 | 0xfffffe58 506 | 0xfffffe84 507 | 0xfffffeb3 508 | 0xfffffee6 509 | 0xffffff1b 510 | 0xffffff52 511 | 0xffffff8b 512 | 0xffffffc6 513 | 0x00000000 514 | 0x0000003a 515 | 0x00000075 516 | 0x000000ae 517 | 0x000000e5 518 | 0x0000011a 519 | 0x0000014d 520 | 0x0000017c 521 | 0x000001a8 522 | 0x000001cf 523 | 0x000001f2 524 | 0x00000211 525 | 0x0000022a 526 | 0x0000023e 527 | 0x0000024c 528 | 0x00000255 529 | 0x00000258 530 | 0x00000255 531 | 0x0000024c 532 | 0x0000023e 533 | 0x0000022a 534 | 0x00000211 535 | 0x000001f2 536 | 0x000001cf 537 | 0x000001a8 538 | 0x0000017c 539 | 0x0000014d 540 | 0x0000011a 541 | 0x000000e5 542 | 0x000000ae 543 | 0x00000075 544 | 0x0000003a 545 | 0x00000000 546 | 0xffffffc6 547 | 0xffffff8b 548 | 0xffffff52 549 | 0xffffff1b 550 | 0xfffffee6 551 | 0xfffffeb3 552 | 0xfffffe84 553 | 0xfffffe58 554 | 0xfffffe31 555 | 0xfffffe0e 556 | 0xfffffdef 557 | 0xfffffdd6 558 | 0xfffffdc2 559 | 0xfffffdb4 560 | 0xfffffdab 561 | 0xfffffda8 562 | 0xfffffdab 563 | 0xfffffdb4 564 | 0xfffffdc2 565 | 0xfffffdd6 566 | 0xfffffdef 567 | 0xfffffe0e 568 | 0xfffffe31 569 | 0xfffffe58 570 | 0xfffffe84 571 | 0xfffffeb3 572 | 0xfffffee6 573 | 0xffffff1b 574 | 0xffffff52 575 | 0xffffff8b 576 | 0xffffffc6 577 | 0x00000000 578 | 0x0000003a 579 | 0x00000075 580 | 0x000000ae 581 | 0x000000e5 582 | 0x0000011a 583 | 0x0000014d 584 | 0x0000017c 585 | 0x000001a8 586 | 0x000001cf 587 | 0x000001f2 588 | 0x00000211 589 | 0x0000022a 590 | 0x0000023e 591 | 0x0000024c 592 | 0x00000255 593 | 0x00000258 594 | 0x00000255 595 | 0x0000024c 596 | 0x0000023e 597 | 0x0000022a 598 | 0x00000211 599 | 0x000001f2 600 | 0x000001cf 601 | 0x000001a8 602 | 0x0000017c 603 | 0x0000014d 604 | 0x0000011a 605 | 0x000000e5 606 | 0x000000ae 607 | 0x00000075 608 | 0x0000003a 609 | 0x00000000 610 | 0xffffffc6 611 | 0xffffff8b 612 | 0xffffff52 613 | 0xffffff1b 614 | 0xfffffee6 615 | 0xfffffeb3 616 | 0xfffffe84 617 | 0xfffffe58 618 | 0xfffffe31 619 | 0xfffffe0e 620 | 0xfffffdef 621 | 0xfffffdd6 622 | 0xfffffdc2 623 | 0xfffffdb4 624 | 0xfffffdab 625 | 0xfffffda8 626 | 0xfffffdab 627 | 0xfffffdb4 628 | 0xfffffdc2 629 | 0xfffffdd6 630 | 0xfffffdef 631 | 0xfffffe0e 632 | 0xfffffe31 633 | 0xfffffe58 634 | 0xfffffe84 635 | 0xfffffeb3 636 | 0xfffffee6 637 | 0xffffff1b 638 | 0xffffff52 639 | 0xffffff8b 640 | 0xffffffc6 641 | 0x00000000 642 | 0x0000003a 643 | 0x00000075 644 | 0x000000ae 645 | 0x000000e5 646 | 0x0000011a 647 | 0x0000014d 648 | 0x0000017c 649 | 0x000001a8 650 | 0x000001cf 651 | 0x000001f2 652 | 0x00000211 653 | 0x0000022a 654 | 0x0000023e 655 | 0x0000024c 656 | 0x00000255 657 | 0x00000258 658 | 0x00000255 659 | 0x0000024c 660 | 0x0000023e 661 | 0x0000022a 662 | 0x00000211 663 | 0x000001f2 664 | 0x000001cf 665 | 0x000001a8 666 | 0x0000017c 667 | 0x0000014d 668 | 0x0000011a 669 | 0x000000e5 670 | 0x000000ae 671 | 0x00000075 672 | 0x0000003a 673 | 0x00000000 674 | 0xffffffc6 675 | 0xffffff8b 676 | 0xffffff52 677 | 0xffffff1b 678 | 0xfffffee6 679 | 0xfffffeb3 680 | 0xfffffe84 681 | 0xfffffe58 682 | 0xfffffe31 683 | 0xfffffe0e 684 | 0xfffffdef 685 | 0xfffffdd6 686 | 0xfffffdc2 687 | 0xfffffdb4 688 | 0xfffffdab 689 | 0xfffffda8 690 | 0xfffffdab 691 | 0xfffffdb4 692 | 0xfffffdc2 693 | 0xfffffdd6 694 | 0xfffffdef 695 | 0xfffffe0e 696 | 0xfffffe31 697 | 0xfffffe58 698 | 0xfffffe84 699 | 0xfffffeb3 700 | 0xfffffee6 701 | 0xffffff1b 702 | 0xffffff52 703 | 0xffffff8b 704 | 0xffffffc6 705 | 0x00000000 706 | 0x0000003a 707 | 0x00000075 708 | 0x000000ae 709 | 0x000000e5 710 | 0x0000011a 711 | 0x0000014d 712 | 0x0000017c 713 | 0x000001a8 714 | 0x000001cf 715 | 0x000001f2 716 | 0x00000211 717 | 0x0000022a 718 | 0x0000023e 719 | 0x0000024c 720 | 0x00000255 721 | 0x00000258 722 | 0x00000255 723 | 0x0000024c 724 | 0x0000023e 725 | 0x0000022a 726 | 0x00000211 727 | 0x000001f2 728 | 0x000001cf 729 | 0x000001a8 730 | 0x0000017c 731 | 0x0000014d 732 | 0x0000011a 733 | 0x000000e5 734 | 0x000000ae 735 | 0x00000075 736 | 0x0000003a 737 | 0x00000000 738 | 0xffffffc6 739 | 0xffffff8b 740 | 0xffffff52 741 | 0xffffff1b 742 | 0xfffffee6 743 | 0xfffffeb3 744 | 0xfffffe84 745 | 0xfffffe58 746 | 0xfffffe31 747 | 0xfffffe0e 748 | 0xfffffdef 749 | 0xfffffdd6 750 | 0xfffffdc2 751 | 0xfffffdb4 752 | 0xfffffdab 753 | 0xfffffda8 754 | 0xfffffdab 755 | 0xfffffdb4 756 | 0xfffffdc2 757 | 0xfffffdd6 758 | 0xfffffdef 759 | 0xfffffe0e 760 | 0xfffffe31 761 | 0xfffffe58 762 | 0xfffffe84 763 | 0xfffffeb3 764 | 0xfffffee6 765 | 0xffffff1b 766 | 0xffffff52 767 | 0xffffff8b 768 | 0xffffffc6 769 | 0x00000000 770 | 0x0000003a 771 | 0x00000075 772 | 0x000000ae 773 | 0x000000e5 774 | 0x0000011a 775 | 0x0000014d 776 | 0x0000017c 777 | 0x000001a8 778 | 0x000001cf 779 | 0x000001f2 780 | 0x00000211 781 | 0x0000022a 782 | 0x0000023e 783 | 0x0000024c 784 | 0x00000255 785 | 0x00000258 786 | 0x00000255 787 | 0x0000024c 788 | 0x0000023e 789 | 0x0000022a 790 | 0x00000211 791 | 0x000001f2 792 | 0x000001cf 793 | 0x000001a8 794 | 0x0000017c 795 | 0x0000014d 796 | 0x0000011a 797 | 0x000000e5 798 | 0x000000ae 799 | 0x00000075 800 | 0x0000003a 801 | 0x00000000 802 | 0xffffffc6 803 | 0xffffff8b 804 | 0xffffff52 805 | 0xffffff1b 806 | 0xfffffee6 807 | 0xfffffeb3 808 | 0xfffffe84 809 | 0xfffffe58 810 | 0xfffffe31 811 | 0xfffffe0e 812 | 0xfffffdef 813 | 0xfffffdd6 814 | 0xfffffdc2 815 | 0xfffffdb4 816 | 0xfffffdab 817 | 0xfffffda8 818 | 0xfffffdab 819 | 0xfffffdb4 820 | 0xfffffdc2 821 | 0xfffffdd6 822 | 0xfffffdef 823 | 0xfffffe0e 824 | 0xfffffe31 825 | 0xfffffe58 826 | 0xfffffe84 827 | 0xfffffeb3 828 | 0xfffffee6 829 | 0xffffff1b 830 | 0xffffff52 831 | 0xffffff8b 832 | 0xffffffc6 833 | 0x00000000 834 | 0x0000003a 835 | 0x00000075 836 | 0x000000ae 837 | 0x000000e5 838 | 0x0000011a 839 | 0x0000014d 840 | 0x0000017c 841 | 0x000001a8 842 | 0x000001cf 843 | 0x000001f2 844 | 0x00000211 845 | 0x0000022a 846 | 0x0000023e 847 | 0x0000024c 848 | 0x00000255 849 | 0x00000258 850 | 0x00000255 851 | 0x0000024c 852 | 0x0000023e 853 | 0x0000022a 854 | 0x00000211 855 | 0x000001f2 856 | 0x000001cf 857 | 0x000001a8 858 | 0x0000017c 859 | 0x0000014d 860 | 0x0000011a 861 | 0x000000e5 862 | 0x000000ae 863 | 0x00000075 864 | 0x0000003a 865 | 0x00000000 866 | 0xffffffc6 867 | 0xffffff8b 868 | 0xffffff52 869 | 0xffffff1b 870 | 0xfffffee6 871 | 0xfffffeb3 872 | 0xfffffe84 873 | 0xfffffe58 874 | 0xfffffe31 875 | 0xfffffe0e 876 | 0xfffffdef 877 | 0xfffffdd6 878 | 0xfffffdc2 879 | 0xfffffdb4 880 | 0xfffffdab 881 | 0xfffffda8 882 | 0xfffffdab 883 | 0xfffffdb4 884 | 0xfffffdc2 885 | 0xfffffdd6 886 | 0xfffffdef 887 | 0xfffffe0e 888 | 0xfffffe31 889 | 0xfffffe58 890 | 0xfffffe84 891 | 0xfffffeb3 892 | 0xfffffee6 893 | 0xffffff1b 894 | 0xffffff52 895 | 0xffffff8b 896 | 0xffffffc6 897 | 0x00000000 898 | 0x0000003a 899 | 0x00000075 900 | 0x000000ae 901 | 0x000000e5 902 | 0x0000011a 903 | 0x0000014d 904 | 0x0000017c 905 | 0x000001a8 906 | 0x000001cf 907 | 0x000001f2 908 | 0x00000211 909 | 0x0000022a 910 | 0x0000023e 911 | 0x0000024c 912 | 0x00000255 913 | 0x00000258 914 | 0x00000255 915 | 0x0000024c 916 | 0x0000023e 917 | 0x0000022a 918 | 0x00000211 919 | 0x000001f2 920 | 0x000001cf 921 | 0x000001a8 922 | 0x0000017c 923 | 0x0000014d 924 | 0x0000011a 925 | 0x000000e5 926 | 0x000000ae 927 | 0x00000075 928 | 0x0000003a 929 | 0x00000000 930 | 0xffffffc6 931 | 0xffffff8b 932 | 0xffffff52 933 | 0xffffff1b 934 | 0xfffffee6 935 | 0xfffffeb3 936 | 0xfffffe84 937 | 0xfffffe58 938 | 0xfffffe31 939 | 0xfffffe0e 940 | 0xfffffdef 941 | 0xfffffdd6 942 | 0xfffffdc2 943 | 0xfffffdb4 944 | 0xfffffdab 945 | 0xfffffda8 946 | 0xfffffdab 947 | 0xfffffdb4 948 | 0xfffffdc2 949 | 0xfffffdd6 950 | 0xfffffdef 951 | 0xfffffe0e 952 | 0xfffffe31 953 | 0xfffffe58 954 | 0xfffffe84 955 | 0xfffffeb3 956 | 0xfffffee6 957 | 0xffffff1b 958 | 0xffffff52 959 | 0xffffff8b 960 | 0xffffffc6 961 | 0x00000000 962 | 0x0000003a 963 | 0x00000075 964 | 0x000000ae 965 | 0x000000e5 966 | 0x0000011a 967 | 0x0000014d 968 | 0x0000017c 969 | 0x000001a8 970 | 0x000001cf 971 | 0x000001f2 972 | 0x00000211 973 | 0x0000022a 974 | 0x0000023e 975 | 0x0000024c 976 | 0x00000255 977 | 0x00000258 978 | 0x00000255 979 | 0x0000024c 980 | 0x0000023e 981 | 0x0000022a 982 | 0x00000211 983 | 0x000001f2 984 | 0x000001cf 985 | 0x000001a8 986 | 0x0000017c 987 | 0x0000014d 988 | 0x0000011a 989 | 0x000000e5 990 | 0x000000ae 991 | 0x00000075 992 | 0x0000003a 993 | 0x00000000 994 | 0xffffffc6 995 | 0xffffff8b 996 | 0xffffff52 997 | 0xffffff1b 998 | 0xfffffee6 999 | 0xfffffeb3 1000 | 0xfffffe84 1001 | 0xfffffe58 1002 | 0xfffffe31 1003 | 0xfffffe0e 1004 | 0xfffffdef 1005 | 0xfffffdd6 1006 | 0xfffffdc2 1007 | 0xfffffdb4 1008 | 0xfffffdab 1009 | 0xfffffda8 1010 | 0xfffffdab 1011 | 0xfffffdb4 1012 | 0xfffffdc2 1013 | 0xfffffdd6 1014 | 0xfffffdef 1015 | 0xfffffe0e 1016 | 0xfffffe31 1017 | 0xfffffe58 1018 | 0xfffffe84 1019 | 0xfffffeb3 1020 | 0xfffffee6 1021 | 0xffffff1b 1022 | 0xffffff52 1023 | 0xffffff8b 1024 | 0xffffffc6 1025 | 0x00000000 1026 | 0x0000003a 1027 | 0x00000075 1028 | 0x000000ae 1029 | 0x000000e5 1030 | 0x0000011a 1031 | 0x0000014d 1032 | 0x0000017c 1033 | 0x000001a8 1034 | 0x000001cf 1035 | 0x000001f2 1036 | 0x00000211 1037 | 0x0000022a 1038 | 0x0000023e 1039 | 0x0000024c 1040 | 0x00000255 1041 | 0x00000258 1042 | 0x00000255 1043 | 0x0000024c 1044 | 0x0000023e 1045 | 0x0000022a 1046 | 0x00000211 1047 | 0x000001f2 1048 | 0x000001cf 1049 | 0x000001a8 1050 | 0x0000017c 1051 | 0x0000014d 1052 | 0x0000011a 1053 | 0x000000e5 1054 | 0x000000ae 1055 | 0x00000075 1056 | 0x0000003a 1057 | 0x00000000 1058 | 0xffffffc6 1059 | 0xffffff8b 1060 | 0xffffff52 1061 | 0xffffff1b 1062 | 0xfffffee6 1063 | 0xfffffeb3 1064 | 0xfffffe84 1065 | 0xfffffe58 1066 | 0xfffffe31 1067 | 0xfffffe0e 1068 | 0xfffffdef 1069 | 0xfffffdd6 1070 | 0xfffffdc2 1071 | 0xfffffdb4 1072 | 0xfffffdab 1073 | 0xfffffda8 1074 | 0xfffffdab 1075 | 0xfffffdb4 1076 | 0xfffffdc2 1077 | 0xfffffdd6 1078 | 0xfffffdef 1079 | 0xfffffe0e 1080 | 0xfffffe31 1081 | 0xfffffe58 1082 | 0xfffffe84 1083 | 0xfffffeb3 1084 | 0xfffffee6 1085 | 0xffffff1b 1086 | 0xffffff52 1087 | 0xffffff8b 1088 | 0xffffffc6 1089 | 0x00000000 1090 | 0x0000003a 1091 | 0x00000075 1092 | 0x000000ae 1093 | 0x000000e5 1094 | 0x0000011a 1095 | 0x0000014d 1096 | 0x0000017c 1097 | 0x000001a8 1098 | 0x000001cf 1099 | 0x000001f2 1100 | 0x00000211 1101 | 0x0000022a 1102 | 0x0000023e 1103 | 0x0000024c 1104 | 0x00000255 1105 | 0x00000258 1106 | 0x00000255 1107 | 0x0000024c 1108 | 0x0000023e 1109 | 0x0000022a 1110 | 0x00000211 1111 | 0x000001f2 1112 | 0x000001cf 1113 | 0x000001a8 1114 | 0x0000017c 1115 | 0x0000014d 1116 | 0x0000011a 1117 | 0x000000e5 1118 | 0x000000ae 1119 | 0x00000075 1120 | 0x0000003a 1121 | 0x00000000 1122 | 0xffffffc6 1123 | 0xffffff8b 1124 | 0xffffff52 1125 | 0xffffff1b 1126 | 0xfffffee6 1127 | 0xfffffeb3 1128 | 0xfffffe84 1129 | 0xfffffe58 1130 | 0xfffffe31 1131 | 0xfffffe0e 1132 | 0xfffffdef 1133 | 0xfffffdd6 1134 | 0xfffffdc2 1135 | 0xfffffdb4 1136 | 0xfffffdab 1137 | 0xfffffda8 1138 | 0xfffffdab 1139 | 0xfffffdb4 1140 | 0xfffffdc2 1141 | 0xfffffdd6 1142 | 0xfffffdef 1143 | 0xfffffe0e 1144 | 0xfffffe31 1145 | 0xfffffe58 1146 | 0xfffffe84 1147 | 0xfffffeb3 1148 | 0xfffffee6 1149 | 0xffffff1b 1150 | 0xffffff52 1151 | 0xffffff8b 1152 | 0xffffffc6 1153 | 0x00000000 1154 | 0x0000003a 1155 | 0x00000075 1156 | 0x000000ae 1157 | 0x000000e5 1158 | 0x0000011a 1159 | 0x0000014d 1160 | 0x0000017c 1161 | 0x000001a8 1162 | 0x000001cf 1163 | 0x000001f2 1164 | 0x00000211 1165 | 0x0000022a 1166 | 0x0000023e 1167 | 0x0000024c 1168 | 0x00000255 1169 | 0x00000258 1170 | 0x00000255 1171 | 0x0000024c 1172 | 0x0000023e 1173 | 0x0000022a 1174 | 0x00000211 1175 | 0x000001f2 1176 | 0x000001cf 1177 | 0x000001a8 1178 | 0x0000017c 1179 | 0x0000014d 1180 | 0x0000011a 1181 | 0x000000e5 1182 | 0x000000ae 1183 | 0x00000075 1184 | 0x0000003a 1185 | 0x00000000 1186 | 0xffffffc6 1187 | 0xffffff8b 1188 | 0xffffff52 1189 | 0xffffff1b 1190 | 0xfffffee6 1191 | 0xfffffeb3 1192 | 0xfffffe84 1193 | 0xfffffe58 1194 | 0xfffffe31 1195 | 0xfffffe0e 1196 | 0xfffffdef 1197 | 0xfffffdd6 1198 | 0xfffffdc2 1199 | 0xfffffdb4 1200 | 0xfffffdab 1201 | 0xfffffda8 1202 | 0xfffffdab 1203 | 0xfffffdb4 1204 | 0xfffffdc2 1205 | 0xfffffdd6 1206 | 0xfffffdef 1207 | 0xfffffe0e 1208 | 0xfffffe31 1209 | 0xfffffe58 1210 | 0xfffffe84 1211 | 0xfffffeb3 1212 | 0xfffffee6 1213 | 0xffffff1b 1214 | 0xffffff52 1215 | 0xffffff8b 1216 | 0xffffffc6 1217 | 0x00000000 1218 | 0x0000003a 1219 | 0x00000075 1220 | 0x000000ae 1221 | 0x000000e5 1222 | 0x0000011a 1223 | 0x0000014d 1224 | 0x0000017c 1225 | 0x000001a8 1226 | 0x000001cf 1227 | 0x000001f2 1228 | 0x00000211 1229 | 0x0000022a 1230 | 0x0000023e 1231 | 0x0000024c 1232 | 0x00000255 1233 | 0x00000258 1234 | 0x00000255 1235 | 0x0000024c 1236 | 0x0000023e 1237 | 0x0000022a 1238 | 0x00000211 1239 | 0x000001f2 1240 | 0x000001cf 1241 | 0x000001a8 1242 | 0x0000017c 1243 | 0x0000014d 1244 | 0x0000011a 1245 | 0x000000e5 1246 | 0x000000ae 1247 | 0x00000075 1248 | 0x0000003a 1249 | 0x00000000 1250 | 0xffffffc6 1251 | 0xffffff8b 1252 | 0xffffff52 1253 | 0xffffff1b 1254 | 0xfffffee6 1255 | 0xfffffeb3 1256 | 0xfffffe84 1257 | 0xfffffe58 1258 | 0xfffffe31 1259 | 0xfffffe0e 1260 | 0xfffffdef 1261 | 0xfffffdd6 1262 | 0xfffffdc2 1263 | 0xfffffdb4 1264 | 0xfffffdab 1265 | 0xfffffda8 1266 | 0xfffffdab 1267 | 0xfffffdb4 1268 | 0xfffffdc2 1269 | 0xfffffdd6 1270 | 0xfffffdef 1271 | 0xfffffe0e 1272 | 0xfffffe31 1273 | 0xfffffe58 1274 | 0xfffffe84 1275 | 0xfffffeb3 1276 | 0xfffffee6 1277 | 0xffffff1b 1278 | 0xffffff52 1279 | 0xffffff8b 1280 | 0xffffffc6 1281 | 0x00000000 1282 | 0x0000003a 1283 | 0x00000075 1284 | 0x000000ae 1285 | 0x000000e5 1286 | 0x0000011a 1287 | 0x0000014d 1288 | 0x0000017c 1289 | 0x000001a8 1290 | 0x000001cf 1291 | 0x000001f2 1292 | 0x00000211 1293 | 0x0000022a 1294 | 0x0000023e 1295 | 0x0000024c 1296 | 0x00000255 1297 | 0x00000258 1298 | 0x00000255 1299 | 0x0000024c 1300 | 0x0000023e 1301 | 0x0000022a 1302 | 0x00000211 1303 | 0x000001f2 1304 | 0x000001cf 1305 | 0x000001a8 1306 | 0x0000017c 1307 | 0x0000014d 1308 | 0x0000011a 1309 | 0x000000e5 1310 | 0x000000ae 1311 | 0x00000075 1312 | 0x0000003a 1313 | 0x00000000 1314 | 0xffffffc6 1315 | 0xffffff8b 1316 | 0xffffff52 1317 | 0xffffff1b 1318 | 0xfffffee6 1319 | 0xfffffeb3 1320 | 0xfffffe84 1321 | 0xfffffe58 1322 | 0xfffffe31 1323 | 0xfffffe0e 1324 | 0xfffffdef 1325 | 0xfffffdd6 1326 | 0xfffffdc2 1327 | 0xfffffdb4 1328 | 0xfffffdab 1329 | 0xfffffda8 1330 | 0xfffffdab 1331 | 0xfffffdb4 1332 | 0xfffffdc2 1333 | 0xfffffdd6 1334 | 0xfffffdef 1335 | 0xfffffe0e 1336 | 0xfffffe31 1337 | 0xfffffe58 1338 | 0xfffffe84 1339 | 0xfffffeb3 1340 | 0xfffffee6 1341 | 0xffffff1b 1342 | 0xffffff52 1343 | 0xffffff8b 1344 | 0xffffffc6 1345 | 0x00000000 1346 | 0x0000003a 1347 | 0x00000075 1348 | 0x000000ae 1349 | 0x000000e5 1350 | 0x0000011a 1351 | 0x0000014d 1352 | 0x0000017c 1353 | 0x000001a8 1354 | 0x000001cf 1355 | 0x000001f2 1356 | 0x00000211 1357 | 0x0000022a 1358 | 0x0000023e 1359 | 0x0000024c 1360 | 0x00000255 1361 | 0x00000258 1362 | 0x00000255 1363 | 0x0000024c 1364 | 0x0000023e 1365 | 0x0000022a 1366 | 0x00000211 1367 | 0x000001f2 1368 | 0x000001cf 1369 | 0x000001a8 1370 | 0x0000017c 1371 | 0x0000014d 1372 | 0x0000011a 1373 | 0x000000e5 1374 | 0x000000ae 1375 | 0x00000075 1376 | 0x0000003a 1377 | 0x00000000 1378 | 0xffffffc6 1379 | 0xffffff8b 1380 | 0xffffff52 1381 | 0xffffff1b 1382 | 0xfffffee6 1383 | 0xfffffeb3 1384 | 0xfffffe84 1385 | 0xfffffe58 1386 | 0xfffffe31 1387 | 0xfffffe0e 1388 | 0xfffffdef 1389 | 0xfffffdd6 1390 | 0xfffffdc2 1391 | 0xfffffdb4 1392 | 0xfffffdab 1393 | 0xfffffda8 1394 | 0xfffffdab 1395 | 0xfffffdb4 1396 | 0xfffffdc2 1397 | 0xfffffdd6 1398 | 0xfffffdef 1399 | 0xfffffe0e 1400 | 0xfffffe31 1401 | 0xfffffe58 1402 | 0xfffffe84 1403 | 0xfffffeb3 1404 | 0xfffffee6 1405 | 0xffffff1b 1406 | 0xffffff52 1407 | 0xffffff8b 1408 | 0xffffffc6 1409 | 0x00000000 1410 | 0x0000003a 1411 | 0x00000075 1412 | 0x000000ae 1413 | 0x000000e5 1414 | 0x0000011a 1415 | 0x0000014d 1416 | 0x0000017c 1417 | 0x000001a8 1418 | 0x000001cf 1419 | 0x000001f2 1420 | 0x00000211 1421 | 0x0000022a 1422 | 0x0000023e 1423 | 0x0000024c 1424 | 0x00000255 1425 | 0x00000258 1426 | 0x00000255 1427 | 0x0000024c 1428 | 0x0000023e 1429 | 0x0000022a 1430 | 0x00000211 1431 | 0x000001f2 1432 | 0x000001cf 1433 | 0x000001a8 1434 | 0x0000017c 1435 | 0x0000014d 1436 | 0x0000011a 1437 | 0x000000e5 1438 | 0x000000ae 1439 | 0x00000075 1440 | 0x0000003a 1441 | 0x00000000 1442 | 0xffffffc6 1443 | 0xffffff8b 1444 | 0xffffff52 1445 | 0xffffff1b 1446 | 0xfffffee6 1447 | 0xfffffeb3 1448 | 0xfffffe84 1449 | 0xfffffe58 1450 | 0xfffffe31 1451 | 0xfffffe0e 1452 | 0xfffffdef 1453 | 0xfffffdd6 1454 | 0xfffffdc2 1455 | 0xfffffdb4 1456 | 0xfffffdab 1457 | 0xfffffda8 1458 | 0xfffffdab 1459 | 0xfffffdb4 1460 | 0xfffffdc2 1461 | 0xfffffdd6 1462 | 0xfffffdef 1463 | 0xfffffe0e 1464 | 0xfffffe31 1465 | 0xfffffe58 1466 | 0xfffffe84 1467 | 0xfffffeb3 1468 | 0xfffffee6 1469 | 0xffffff1b 1470 | 0xffffff52 1471 | 0xffffff8b 1472 | 0xffffffc6 1473 | 0x00000000 1474 | 0x0000003a 1475 | 0x00000075 1476 | 0x000000ae 1477 | 0x000000e5 1478 | 0x0000011a 1479 | 0x0000014d 1480 | 0x0000017c 1481 | 0x000001a8 1482 | 0x000001cf 1483 | 0x000001f2 1484 | 0x00000211 1485 | 0x0000022a 1486 | 0x0000023e 1487 | 0x0000024c 1488 | 0x00000255 1489 | 0x00000258 1490 | 0x00000255 1491 | 0x0000024c 1492 | 0x0000023e 1493 | 0x0000022a 1494 | 0x00000211 1495 | 0x000001f2 1496 | 0x000001cf 1497 | 0x000001a8 1498 | 0x0000017c 1499 | 0x0000014d 1500 | 0x0000011a 1501 | 0x000000e5 1502 | 0x000000ae 1503 | 0x00000075 1504 | 0x0000003a 1505 | 0x00000000 1506 | 0xffffffc6 1507 | 0xffffff8b 1508 | 0xffffff52 1509 | 0xffffff1b 1510 | 0xfffffee6 1511 | 0xfffffeb3 1512 | 0xfffffe84 1513 | 0xfffffe58 1514 | 0xfffffe31 1515 | 0xfffffe0e 1516 | 0xfffffdef 1517 | 0xfffffdd6 1518 | 0xfffffdc2 1519 | 0xfffffdb4 1520 | 0xfffffdab 1521 | 0xfffffda8 1522 | 0xfffffdab 1523 | 0xfffffdb4 1524 | 0xfffffdc2 1525 | 0xfffffdd6 1526 | 0xfffffdef 1527 | 0xfffffe0e 1528 | 0xfffffe31 1529 | 0xfffffe58 1530 | 0xfffffe84 1531 | 0xfffffeb3 1532 | 0xfffffee6 1533 | 0xffffff1b 1534 | 0xffffff52 1535 | 0xffffff8b 1536 | 0xffffffc6 1537 | 0x00000000 1538 | 0x0000003a 1539 | 0x00000075 1540 | 0x000000ae 1541 | 0x000000e5 1542 | 0x0000011a 1543 | 0x0000014d 1544 | 0x0000017c 1545 | 0x000001a8 1546 | 0x000001cf 1547 | 0x000001f2 1548 | 0x00000211 1549 | 0x0000022a 1550 | 0x0000023e 1551 | 0x0000024c 1552 | 0x00000255 1553 | 0x00000258 1554 | 0x00000255 1555 | 0x0000024c 1556 | 0x0000023e 1557 | 0x0000022a 1558 | 0x00000211 1559 | 0x000001f2 1560 | 0x000001cf 1561 | 0x000001a8 1562 | 0x0000017c 1563 | 0x0000014d 1564 | 0x0000011a 1565 | 0x000000e5 1566 | 0x000000ae 1567 | 0x00000075 1568 | 0x0000003a 1569 | 0x00000000 1570 | 0xffffffc6 1571 | 0xffffff8b 1572 | 0xffffff52 1573 | 0xffffff1b 1574 | 0xfffffee6 1575 | 0xfffffeb3 1576 | 0xfffffe84 1577 | 0xfffffe58 1578 | 0xfffffe31 1579 | 0xfffffe0e 1580 | 0xfffffdef 1581 | 0xfffffdd6 1582 | 0xfffffdc2 1583 | 0xfffffdb4 1584 | 0xfffffdab 1585 | 0xfffffda8 1586 | 0xfffffdab 1587 | 0xfffffdb4 1588 | 0xfffffdc2 1589 | 0xfffffdd6 1590 | 0xfffffdef 1591 | 0xfffffe0e 1592 | 0xfffffe31 1593 | 0xfffffe58 1594 | 0xfffffe84 1595 | 0xfffffeb3 1596 | 0xfffffee6 1597 | 0xffffff1b 1598 | 0xffffff52 1599 | 0xffffff8b 1600 | 0xffffffc6 1601 | 0x00000000 1602 | 0x0000003a 1603 | 0x00000075 1604 | 0x000000ae 1605 | 0x000000e5 1606 | 0x0000011a 1607 | 0x0000014d 1608 | 0x0000017c 1609 | 0x000001a8 1610 | 0x000001cf 1611 | 0x000001f2 1612 | 0x00000211 1613 | 0x0000022a 1614 | 0x0000023e 1615 | 0x0000024c 1616 | 0x00000255 1617 | 0x00000258 1618 | 0x00000255 1619 | 0x0000024c 1620 | 0x0000023e 1621 | 0x0000022a 1622 | 0x00000211 1623 | 0x000001f2 1624 | 0x000001cf 1625 | 0x000001a8 1626 | 0x0000017c 1627 | 0x0000014d 1628 | 0x0000011a 1629 | 0x000000e5 1630 | 0x000000ae 1631 | 0x00000075 1632 | 0x0000003a 1633 | 0x00000000 1634 | 0xffffffc6 1635 | 0xffffff8b 1636 | 0xffffff52 1637 | 0xffffff1b 1638 | 0xfffffee6 1639 | 0xfffffeb3 1640 | 0xfffffe84 1641 | 0xfffffe58 1642 | 0xfffffe31 1643 | 0xfffffe0e 1644 | 0xfffffdef 1645 | 0xfffffdd6 1646 | 0xfffffdc2 1647 | 0xfffffdb4 1648 | 0xfffffdab 1649 | 0xfffffda8 1650 | 0xfffffdab 1651 | 0xfffffdb4 1652 | 0xfffffdc2 1653 | 0xfffffdd6 1654 | 0xfffffdef 1655 | 0xfffffe0e 1656 | 0xfffffe31 1657 | 0xfffffe58 1658 | 0xfffffe84 1659 | 0xfffffeb3 1660 | 0xfffffee6 1661 | 0xffffff1b 1662 | 0xffffff52 1663 | 0xffffff8b 1664 | 0xffffffc6 1665 | 0x00000000 1666 | 0x0000003a 1667 | 0x00000075 1668 | 0x000000ae 1669 | 0x000000e5 1670 | 0x0000011a 1671 | 0x0000014d 1672 | 0x0000017c 1673 | 0x000001a8 1674 | 0x000001cf 1675 | 0x000001f2 1676 | 0x00000211 1677 | 0x0000022a 1678 | 0x0000023e 1679 | 0x0000024c 1680 | 0x00000255 1681 | 0x00000258 1682 | 0x00000255 1683 | 0x0000024c 1684 | 0x0000023e 1685 | 0x0000022a 1686 | 0x00000211 1687 | 0x000001f2 1688 | 0x000001cf 1689 | 0x000001a8 1690 | 0x0000017c 1691 | 0x0000014d 1692 | 0x0000011a 1693 | 0x000000e5 1694 | 0x000000ae 1695 | 0x00000075 1696 | 0x0000003a 1697 | 0x00000000 1698 | 0xffffffc6 1699 | 0xffffff8b 1700 | 0xffffff52 1701 | 0xffffff1b 1702 | 0xfffffee6 1703 | 0xfffffeb3 1704 | 0xfffffe84 1705 | 0xfffffe58 1706 | 0xfffffe31 1707 | 0xfffffe0e 1708 | 0xfffffdef 1709 | 0xfffffdd6 1710 | 0xfffffdc2 1711 | 0xfffffdb4 1712 | 0xfffffdab 1713 | 0xfffffda8 1714 | 0xfffffdab 1715 | 0xfffffdb4 1716 | 0xfffffdc2 1717 | 0xfffffdd6 1718 | 0xfffffdef 1719 | 0xfffffe0e 1720 | 0xfffffe31 1721 | 0xfffffe58 1722 | 0xfffffe84 1723 | 0xfffffeb3 1724 | 0xfffffee6 1725 | 0xffffff1b 1726 | 0xffffff52 1727 | 0xffffff8b 1728 | 0xffffffc6 1729 | 0x00000000 1730 | 0x0000003a 1731 | 0x00000075 1732 | 0x000000ae 1733 | 0x000000e5 1734 | 0x0000011a 1735 | 0x0000014d 1736 | 0x0000017c 1737 | 0x000001a8 1738 | 0x000001cf 1739 | 0x000001f2 1740 | 0x00000211 1741 | 0x0000022a 1742 | 0x0000023e 1743 | 0x0000024c 1744 | 0x00000255 1745 | 0x00000258 1746 | 0x00000255 1747 | 0x0000024c 1748 | 0x0000023e 1749 | 0x0000022a 1750 | 0x00000211 1751 | 0x000001f2 1752 | 0x000001cf 1753 | 0x000001a8 1754 | 0x0000017c 1755 | 0x0000014d 1756 | 0x0000011a 1757 | 0x000000e5 1758 | 0x000000ae 1759 | 0x00000075 1760 | 0x0000003a 1761 | 0x00000000 1762 | 0xffffffc6 1763 | 0xffffff8b 1764 | 0xffffff52 1765 | 0xffffff1b 1766 | 0xfffffee6 1767 | 0xfffffeb3 1768 | 0xfffffe84 1769 | 0xfffffe58 1770 | 0xfffffe31 1771 | 0xfffffe0e 1772 | 0xfffffdef 1773 | 0xfffffdd6 1774 | 0xfffffdc2 1775 | 0xfffffdb4 1776 | 0xfffffdab 1777 | 0xfffffda8 1778 | 0xfffffdab 1779 | 0xfffffdb4 1780 | 0xfffffdc2 1781 | 0xfffffdd6 1782 | 0xfffffdef 1783 | 0xfffffe0e 1784 | 0xfffffe31 1785 | 0xfffffe58 1786 | 0xfffffe84 1787 | 0xfffffeb3 1788 | 0xfffffee6 1789 | 0xffffff1b 1790 | 0xffffff52 1791 | 0xffffff8b 1792 | 0xffffffc6 1793 | 0x00000000 1794 | 0x0000003a 1795 | 0x00000075 1796 | 0x000000ae 1797 | 0x000000e5 1798 | 0x0000011a 1799 | 0x0000014d 1800 | 0x0000017c 1801 | 0x000001a8 1802 | 0x000001cf 1803 | 0x000001f2 1804 | 0x00000211 1805 | 0x0000022a 1806 | 0x0000023e 1807 | 0x0000024c 1808 | 0x00000255 1809 | 0x00000258 1810 | 0x00000255 1811 | 0x0000024c 1812 | 0x0000023e 1813 | 0x0000022a 1814 | 0x00000211 1815 | 0x000001f2 1816 | 0x000001cf 1817 | 0x000001a8 1818 | 0x0000017c 1819 | 0x0000014d 1820 | 0x0000011a 1821 | 0x000000e5 1822 | 0x000000ae 1823 | 0x00000075 1824 | 0x0000003a 1825 | 0x00000000 1826 | 0xffffffc6 1827 | 0xffffff8b 1828 | 0xffffff52 1829 | 0xffffff1b 1830 | 0xfffffee6 1831 | 0xfffffeb3 1832 | 0xfffffe84 1833 | 0xfffffe58 1834 | 0xfffffe31 1835 | 0xfffffe0e 1836 | 0xfffffdef 1837 | 0xfffffdd6 1838 | 0xfffffdc2 1839 | 0xfffffdb4 1840 | 0xfffffdab 1841 | 0xfffffda8 1842 | 0xfffffdab 1843 | 0xfffffdb4 1844 | 0xfffffdc2 1845 | 0xfffffdd6 1846 | 0xfffffdef 1847 | 0xfffffe0e 1848 | 0xfffffe31 1849 | 0xfffffe58 1850 | 0xfffffe84 1851 | 0xfffffeb3 1852 | 0xfffffee6 1853 | 0xffffff1b 1854 | 0xffffff52 1855 | 0xffffff8b 1856 | 0xffffffc6 1857 | 0x00000000 1858 | 0x0000003a 1859 | 0x00000075 1860 | 0x000000ae 1861 | 0x000000e5 1862 | 0x0000011a 1863 | 0x0000014d 1864 | 0x0000017c 1865 | 0x000001a8 1866 | 0x000001cf 1867 | 0x000001f2 1868 | 0x00000211 1869 | 0x0000022a 1870 | 0x0000023e 1871 | 0x0000024c 1872 | 0x00000255 1873 | 0x00000258 1874 | 0x00000255 1875 | 0x0000024c 1876 | 0x0000023e 1877 | 0x0000022a 1878 | 0x00000211 1879 | 0x000001f2 1880 | 0x000001cf 1881 | 0x000001a8 1882 | 0x0000017c 1883 | 0x0000014d 1884 | 0x0000011a 1885 | 0x000000e5 1886 | 0x000000ae 1887 | 0x00000075 1888 | 0x0000003a 1889 | 0x00000000 1890 | 0xffffffc6 1891 | 0xffffff8b 1892 | 0xffffff52 1893 | 0xffffff1b 1894 | 0xfffffee6 1895 | 0xfffffeb3 1896 | 0xfffffe84 1897 | 0xfffffe58 1898 | 0xfffffe31 1899 | 0xfffffe0e 1900 | 0xfffffdef 1901 | 0xfffffdd6 1902 | 0xfffffdc2 1903 | 0xfffffdb4 1904 | 0xfffffdab 1905 | 0xfffffda8 1906 | 0xfffffdab 1907 | 0xfffffdb4 1908 | 0xfffffdc2 1909 | 0xfffffdd6 1910 | 0xfffffdef 1911 | 0xfffffe0e 1912 | 0xfffffe31 1913 | 0xfffffe58 1914 | 0xfffffe84 1915 | 0xfffffeb3 1916 | 0xfffffee6 1917 | 0xffffff1b 1918 | 0xffffff52 1919 | 0xffffff8b 1920 | 0xffffffc6 1921 | 0x00000000 1922 | 0x0000003a 1923 | 0x00000075 1924 | 0x000000ae 1925 | 0x000000e5 1926 | 0x0000011a 1927 | 0x0000014d 1928 | 0x0000017c 1929 | 0x000001a8 1930 | 0x000001cf 1931 | 0x000001f2 1932 | 0x00000211 1933 | 0x0000022a 1934 | 0x0000023e 1935 | 0x0000024c 1936 | 0x00000255 1937 | 0x00000258 1938 | 0x00000255 1939 | 0x0000024c 1940 | 0x0000023e 1941 | 0x0000022a 1942 | 0x00000211 1943 | 0x000001f2 1944 | 0x000001cf 1945 | 0x000001a8 1946 | 0x0000017c 1947 | 0x0000014d 1948 | 0x0000011a 1949 | 0x000000e5 1950 | 0x000000ae 1951 | 0x00000075 1952 | 0x0000003a 1953 | 0x00000000 1954 | 0xffffffc6 1955 | 0xffffff8b 1956 | 0xffffff52 1957 | 0xffffff1b 1958 | 0xfffffee6 1959 | 0xfffffeb3 1960 | 0xfffffe84 1961 | 0xfffffe58 1962 | 0xfffffe31 1963 | 0xfffffe0e 1964 | 0xfffffdef 1965 | 0xfffffdd6 1966 | 0xfffffdc2 1967 | 0xfffffdb4 1968 | 0xfffffdab 1969 | 0xfffffda8 1970 | 0xfffffdab 1971 | 0xfffffdb4 1972 | 0xfffffdc2 1973 | 0xfffffdd6 1974 | 0xfffffdef 1975 | 0xfffffe0e 1976 | 0xfffffe31 1977 | 0xfffffe58 1978 | 0xfffffe84 1979 | 0xfffffeb3 1980 | 0xfffffee6 1981 | 0xffffff1b 1982 | 0xffffff52 1983 | 0xffffff8b 1984 | 0xffffffc6 1985 | 0x00000000 1986 | 0x0000003a 1987 | 0x00000075 1988 | 0x000000ae 1989 | 0x000000e5 1990 | 0x0000011a 1991 | 0x0000014d 1992 | 0x0000017c 1993 | 0x000001a8 1994 | 0x000001cf 1995 | 0x000001f2 1996 | 0x00000211 1997 | 0x0000022a 1998 | 0x0000023e 1999 | 0x0000024c 2000 | 0x00000255 2001 | --------------------------------------------------------------------------------