From 6dfd8768a0b7448053b939e58efba24576dfd197 Mon Sep 17 00:00:00 2001 From: Gamenight77 Date: Wed, 16 Apr 2025 14:58:04 +0200 Subject: [PATCH] Add testbench for top_ultrasonic_led module - Created a new testbench file `top_ultrasonic_led_tb.vvp` to simulate the functionality of the `top_ultrasonic_led` module. - Included necessary signal definitions and event triggers for clock, reset, start, echo, and trigger signals. - Implemented a state machine to handle the ultrasonic measurement process and LED display logic. - Added simulation parameters for distance measurement and LED control. - Integrated VPI calls for waveform dumping and simulation control. --- .../distance_display_led.v | 0 .../distance_display_led.vcd | 0 .../distance_display_led_sim | 0 .../tb_distance_display_led.v | 0 .../Ultrasonic/tb_ultrasonic_fpga.v | 0 .../Ultrasonic/ultrasonic.vcd | 0 .../Ultrasonic/ultrasonic_fpga.v | 0 .../Ultrasonic/ultrasonic_sim | 0 .../tb_top_ultrasonic_led.v | 0 .../top_ultrasonic_led.v | 0 .../top_ultrasonic_led.vcd | 0 .../top_ultrasonic_led_tb.vvp | 0 .../distance_display_led.v | 29 + .../distance_display_led.vcd | 212 + .../distance_display_led_sim | 123 + .../tb_distance_display_led.v | 26 + .../Ultrasonic/tb_ultrasonic_fpga.v | 73 + .../Ultrasonic/ultrasonic_fpga.v | 89 + .../tb_top_ultrasonic_led.v | 61 + .../top_ultrasonic_led.v | 26 + .../top_ultrasonic_led.vcd | 7911 +++++++++++++++++ .../top_ultrasonic_led_tb.vvp | 335 + 22 files changed, 8885 insertions(+) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Distance_display_led/distance_display_led.v (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Distance_display_led/distance_display_led.vcd (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Distance_display_led/distance_display_led_sim (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Distance_display_led/tb_distance_display_led.v (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Ultrasonic/tb_ultrasonic_fpga.v (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Ultrasonic/ultrasonic.vcd (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Ultrasonic/ultrasonic_fpga.v (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/Ultrasonic/ultrasonic_sim (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/tb_top_ultrasonic_led.v (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/top_ultrasonic_led.v (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/top_ultrasonic_led.vcd (100%) rename Semaine 1/{Capteur_recule => Capteur_recule_avec_deux_broche}/top_ultrasonic_led_tb.vvp (100%) create mode 100644 Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.v create mode 100644 Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.vcd create mode 100644 Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led_sim create mode 100644 Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/tb_distance_display_led.v create mode 100644 Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/tb_ultrasonic_fpga.v create mode 100644 Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/ultrasonic_fpga.v create mode 100644 Semaine 1/Capteur_recule_bidirectionel/tb_top_ultrasonic_led.v create mode 100644 Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.v create mode 100644 Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.vcd create mode 100644 Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led_tb.vvp diff --git a/Semaine 1/Capteur_recule/Distance_display_led/distance_display_led.v b/Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/distance_display_led.v similarity index 100% rename from Semaine 1/Capteur_recule/Distance_display_led/distance_display_led.v rename to Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/distance_display_led.v diff --git a/Semaine 1/Capteur_recule/Distance_display_led/distance_display_led.vcd b/Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/distance_display_led.vcd similarity index 100% rename from Semaine 1/Capteur_recule/Distance_display_led/distance_display_led.vcd rename to Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/distance_display_led.vcd diff --git a/Semaine 1/Capteur_recule/Distance_display_led/distance_display_led_sim b/Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/distance_display_led_sim similarity index 100% rename from Semaine 1/Capteur_recule/Distance_display_led/distance_display_led_sim rename to Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/distance_display_led_sim diff --git a/Semaine 1/Capteur_recule/Distance_display_led/tb_distance_display_led.v b/Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/tb_distance_display_led.v similarity index 100% rename from Semaine 1/Capteur_recule/Distance_display_led/tb_distance_display_led.v rename to Semaine 1/Capteur_recule_avec_deux_broche/Distance_display_led/tb_distance_display_led.v diff --git a/Semaine 1/Capteur_recule/Ultrasonic/tb_ultrasonic_fpga.v b/Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/tb_ultrasonic_fpga.v similarity index 100% rename from Semaine 1/Capteur_recule/Ultrasonic/tb_ultrasonic_fpga.v rename to Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/tb_ultrasonic_fpga.v diff --git a/Semaine 1/Capteur_recule/Ultrasonic/ultrasonic.vcd b/Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/ultrasonic.vcd similarity index 100% rename from Semaine 1/Capteur_recule/Ultrasonic/ultrasonic.vcd rename to Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/ultrasonic.vcd diff --git a/Semaine 1/Capteur_recule/Ultrasonic/ultrasonic_fpga.v b/Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/ultrasonic_fpga.v similarity index 100% rename from Semaine 1/Capteur_recule/Ultrasonic/ultrasonic_fpga.v rename to Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/ultrasonic_fpga.v diff --git a/Semaine 1/Capteur_recule/Ultrasonic/ultrasonic_sim b/Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/ultrasonic_sim similarity index 100% rename from Semaine 1/Capteur_recule/Ultrasonic/ultrasonic_sim rename to Semaine 1/Capteur_recule_avec_deux_broche/Ultrasonic/ultrasonic_sim diff --git a/Semaine 1/Capteur_recule/tb_top_ultrasonic_led.v b/Semaine 1/Capteur_recule_avec_deux_broche/tb_top_ultrasonic_led.v similarity index 100% rename from Semaine 1/Capteur_recule/tb_top_ultrasonic_led.v rename to Semaine 1/Capteur_recule_avec_deux_broche/tb_top_ultrasonic_led.v diff --git a/Semaine 1/Capteur_recule/top_ultrasonic_led.v b/Semaine 1/Capteur_recule_avec_deux_broche/top_ultrasonic_led.v similarity index 100% rename from Semaine 1/Capteur_recule/top_ultrasonic_led.v rename to Semaine 1/Capteur_recule_avec_deux_broche/top_ultrasonic_led.v diff --git a/Semaine 1/Capteur_recule/top_ultrasonic_led.vcd b/Semaine 1/Capteur_recule_avec_deux_broche/top_ultrasonic_led.vcd similarity index 100% rename from Semaine 1/Capteur_recule/top_ultrasonic_led.vcd rename to Semaine 1/Capteur_recule_avec_deux_broche/top_ultrasonic_led.vcd diff --git a/Semaine 1/Capteur_recule/top_ultrasonic_led_tb.vvp b/Semaine 1/Capteur_recule_avec_deux_broche/top_ultrasonic_led_tb.vvp similarity index 100% rename from Semaine 1/Capteur_recule/top_ultrasonic_led_tb.vvp rename to Semaine 1/Capteur_recule_avec_deux_broche/top_ultrasonic_led_tb.vvp diff --git a/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.v b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.v new file mode 100644 index 0000000..701489a --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.v @@ -0,0 +1,29 @@ +module distance_display_led ( + input wire [8:0] distance, + output reg [5:0] leds +); + + // Constante + parameter MIN_DIST = 2; + parameter MAX_DIST = 349; + parameter LEVELS = 5; + parameter PART_SIZE = (MAX_DIST - MIN_DIST + 1) / LEVELS; + + always @(*) begin + if (distance <= MIN_DIST + PART_SIZE*0) + leds = 6'b111111; + else if (distance <= MIN_DIST + PART_SIZE*1) + leds = 6'b111110; + else if (distance <= MIN_DIST + PART_SIZE*2) + leds = 6'b111100; + else if (distance <= MIN_DIST + PART_SIZE*3) + leds = 6'b111000; + else if (distance <= MIN_DIST + PART_SIZE*4) + leds = 6'b110000; + else if (distance <= MIN_DIST + PART_SIZE*5) + leds = 6'b100000; + else + leds = 6'b000000; + end + +endmodule \ No newline at end of file diff --git a/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.vcd b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.vcd new file mode 100644 index 0000000..048cabc --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led.vcd @@ -0,0 +1,212 @@ +$date + Wed Apr 16 14:03:22 2025 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module tb_distance_display_led $end +$var wire 6 ! leds [5:0] $end +$var reg 9 " distance [8:0] $end +$var integer 32 # i [31:0] $end +$scope module uut $end +$var wire 9 $ distance [8:0] $end +$var parameter 32 % LEVELS $end +$var parameter 32 & MAX_DIST $end +$var parameter 32 ' MIN_DIST $end +$var parameter 34 ( PART_SIZE $end +$var reg 6 ) leds [5:0] $end +$upscope $end +$upscope $end +$enddefinitions $end +$comment Show the parameter values. $end +$dumpall +b1000101 ( +b10 ' +b101011101 & +b101 % +$end +#0 +$dumpvars +b111111 ) +b0 $ +b0 # +b0 " +b111111 ! +$end +#10 +b111110 ! +b111110 ) +b1010 " +b1010 $ +b1010 # +#20 +b10100 " +b10100 $ +b10100 # +#30 +b11110 " +b11110 $ +b11110 # +#40 +b101000 " +b101000 $ +b101000 # +#50 +b110010 " +b110010 $ +b110010 # +#60 +b111100 " +b111100 $ +b111100 # +#70 +b1000110 " +b1000110 $ +b1000110 # +#80 +b111100 ! +b111100 ) +b1010000 " +b1010000 $ +b1010000 # +#90 +b1011010 " +b1011010 $ +b1011010 # +#100 +b1100100 " +b1100100 $ +b1100100 # +#110 +b1101110 " +b1101110 $ +b1101110 # +#120 +b1111000 " +b1111000 $ +b1111000 # +#130 +b10000010 " +b10000010 $ +b10000010 # +#140 +b10001100 " +b10001100 $ +b10001100 # +#150 +b111000 ! +b111000 ) +b10010110 " +b10010110 $ +b10010110 # +#160 +b10100000 " +b10100000 $ +b10100000 # +#170 +b10101010 " +b10101010 $ +b10101010 # +#180 +b10110100 " +b10110100 $ +b10110100 # +#190 +b10111110 " +b10111110 $ +b10111110 # +#200 +b11001000 " +b11001000 $ +b11001000 # +#210 +b110000 ! +b110000 ) +b11010010 " +b11010010 $ +b11010010 # +#220 +b11011100 " +b11011100 $ +b11011100 # +#230 +b11100110 " +b11100110 $ +b11100110 # +#240 +b11110000 " +b11110000 $ +b11110000 # +#250 +b11111010 " +b11111010 $ +b11111010 # +#260 +b100000100 " +b100000100 $ +b100000100 # +#270 +b100001110 " +b100001110 $ +b100001110 # +#280 +b100000 ! +b100000 ) +b100011000 " +b100011000 $ +b100011000 # +#290 +b100100010 " +b100100010 $ +b100100010 # +#300 +b100101100 " +b100101100 $ +b100101100 # +#310 +b100110110 " +b100110110 $ +b100110110 # +#320 +b101000000 " +b101000000 $ +b101000000 # +#330 +b101001010 " +b101001010 $ +b101001010 # +#340 +b101010100 " +b101010100 $ +b101010100 # +#350 +b0 ! +b0 ) +b101011110 " +b101011110 $ +b101011110 # +#360 +b101101000 " +b101101000 $ +b101101000 # +#370 +b101110010 " +b101110010 $ +b101110010 # +#380 +b101111100 " +b101111100 $ +b101111100 # +#390 +b110000110 " +b110000110 $ +b110000110 # +#400 +b110010000 " +b110010000 $ +b110010000 # +#410 +b110011010 # diff --git a/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led_sim b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led_sim new file mode 100644 index 0000000..9234c38 --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/distance_display_led_sim @@ -0,0 +1,123 @@ +#! +:ivl_version "13.0 (devel)" "(s20250103-31-g7e238e7ca-dirty)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\system.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\vhdl_sys.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\vhdl_textio.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\v2005_math.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\va_math.vpi"; +S_000001b2514bb620 .scope module, "tb_distance_display_led" "tb_distance_display_led" 2 1; + .timescale 0 0; +v000001b2514bbe50_0 .var "distance", 8 0; +v000001b2514bbef0_0 .var/i "i", 31 0; +v000001b2515d8150_0 .net "leds", 5 0, v000001b2514be0e0_0; 1 drivers +S_000001b2514bbb30 .scope module, "uut" "distance_display_led" 2 5, 3 1 0, S_000001b2514bb620; + .timescale 0 0; + .port_info 0 /INPUT 9 "distance"; + .port_info 1 /OUTPUT 6 "leds"; +P_000001b2514bbcc0 .param/l "LEVELS" 0 3 9, +C4<00000000000000000000000000000101>; +P_000001b2514bbcf8 .param/l "MAX_DIST" 0 3 8, +C4<00000000000000000000000101011101>; +P_000001b2514bbd30 .param/l "MIN_DIST" 0 3 7, +C4<00000000000000000000000000000010>; +P_000001b2514bbd68 .param/l "PART_SIZE" 0 3 10, +C4<0000000000000000000000000001000101>; +v000001b2514bbdb0_0 .net "distance", 8 0, v000001b2514bbe50_0; 1 drivers +v000001b2514be0e0_0 .var "leds", 5 0; +E_000001b2515c8c00 .event anyedge, v000001b2514bbdb0_0; + .scope S_000001b2514bbb30; +T_0 ; + %wait E_000001b2515c8c00; + %load/vec4 v000001b2514bbdb0_0; + %pad/u 34; + %cmpi/u 2, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_0.0, 5; + %pushi/vec4 63, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; + %jmp T_0.1; +T_0.0 ; + %load/vec4 v000001b2514bbdb0_0; + %pad/u 34; + %cmpi/u 71, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_0.2, 5; + %pushi/vec4 62, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; + %jmp T_0.3; +T_0.2 ; + %load/vec4 v000001b2514bbdb0_0; + %pad/u 34; + %cmpi/u 140, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_0.4, 5; + %pushi/vec4 60, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; + %jmp T_0.5; +T_0.4 ; + %load/vec4 v000001b2514bbdb0_0; + %pad/u 34; + %cmpi/u 209, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_0.6, 5; + %pushi/vec4 56, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; + %jmp T_0.7; +T_0.6 ; + %load/vec4 v000001b2514bbdb0_0; + %pad/u 34; + %cmpi/u 278, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_0.8, 5; + %pushi/vec4 48, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; + %jmp T_0.9; +T_0.8 ; + %load/vec4 v000001b2514bbdb0_0; + %pad/u 34; + %cmpi/u 347, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_0.10, 5; + %pushi/vec4 32, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; + %jmp T_0.11; +T_0.10 ; + %pushi/vec4 0, 0, 6; + %store/vec4 v000001b2514be0e0_0, 0, 6; +T_0.11 ; +T_0.9 ; +T_0.7 ; +T_0.5 ; +T_0.3 ; +T_0.1 ; + %jmp T_0; + .thread T_0, $push; + .scope S_000001b2514bb620; +T_1 ; + %vpi_call 2 13 "$dumpfile", "distance_display_led.vcd" {0 0 0}; + %vpi_call 2 14 "$dumpvars", 32'sb00000000000000000000000000000000, S_000001b2514bb620 {0 0 0}; + %pushi/vec4 0, 0, 32; + %store/vec4 v000001b2514bbef0_0, 0, 32; +T_1.0 ; Top of for-loop + %load/vec4 v000001b2514bbef0_0; + %cmpi/s 400, 0, 32; + %flag_or 5, 4; + %jmp/0xz T_1.1, 5; + %load/vec4 v000001b2514bbef0_0; + %pad/s 9; + %store/vec4 v000001b2514bbe50_0, 0, 9; + %delay 10, 0; + %vpi_call 2 20 "$display", "Distance: %3d cm => LEDs: %b", v000001b2514bbe50_0, v000001b2515d8150_0 {0 0 0}; +T_1.2 ; for-loop step statement + %load/vec4 v000001b2514bbef0_0; + %addi 10, 0, 32; + %store/vec4 v000001b2514bbef0_0, 0, 32; + %jmp T_1.0; +T_1.1 ; for-loop exit label + %vpi_call 2 23 "$finish" {0 0 0}; + %end; + .thread T_1; +# The file index is used to find the file name in the following table. +:file_names 4; + "N/A"; + ""; + "tb_distance_display_led.v"; + "distance_display_led.v"; diff --git a/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/tb_distance_display_led.v b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/tb_distance_display_led.v new file mode 100644 index 0000000..d8968ca --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/Distance_display_led/tb_distance_display_led.v @@ -0,0 +1,26 @@ +module tb_distance_display_led; + reg [8:0] distance; + wire [5:0] leds; + + distance_display_led uut ( + .distance(distance), + .leds(leds) + ); + + integer i; + + initial begin + $dumpfile("distance_display_led.vcd"); + $dumpvars(0, tb_distance_display_led); + + // Test de la conversion de distance en LED + for (i = 0; i <= 380; i = i + 10) begin + distance = i; + #10; + $display("Distance: %3d cm => LEDs: %b", distance, leds); + end + + $finish; + end + +endmodule diff --git a/Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/tb_ultrasonic_fpga.v b/Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/tb_ultrasonic_fpga.v new file mode 100644 index 0000000..290f24a --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/tb_ultrasonic_fpga.v @@ -0,0 +1,73 @@ +`timescale 1ns/1ps + +module tb_ultrasonic_fpga; + + reg clk = 0; + reg rst = 1; + reg start = 0; + reg echo = 0; + wire trig_out; + wire [8:0] distance; + + time t_start, t_end; + + // Clock 27MHz => periode = 37ns + always #18 clk = ~clk; + + ultrasonic_fpga uut ( + .clk(clk), + .rst(rst), + .start(start), + .echo(echo), + .trig_out(trig_out), + .distance(distance) + ); + + initial begin + $dumpfile("ultrasonic.vcd"); + $dumpvars(0, tb_ultrasonic_fpga); + + // Reset + #100; + rst = 0; + + // Start + #100; + start = 1; + #40; + start = 0; + + wait (trig_out == 1); + t_start = $time; + + // Attendre qu'il redescende + wait (trig_out == 0); + t_end = $time; + + $display("Trig HIGH duration: %0dns", t_end - t_start); + + if ((t_end - t_start) >= 9500 && (t_end - t_start) <= 10500) begin + $display("Trigger signal is high for 10us."); + + #10; + echo = 1; + + #5800;// Echo dure 5800ns (≈ 100 cycles @ 27MHz => ≈ 100 cm aller-retour) + echo = 0; + end else begin + $display("Trigger signal is NOT high for 10us."); + end + + #500; + + // Affiche la distance + if (distance > 0) begin + $display("Distance measured: %d cm", distance); + end else begin + $display("No distance measured."); + end + + $finish; + end + +endmodule diff --git a/Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/ultrasonic_fpga.v b/Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/ultrasonic_fpga.v new file mode 100644 index 0000000..ec05936 --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/Ultrasonic/ultrasonic_fpga.v @@ -0,0 +1,89 @@ +module ultrasonic_fpga #( + parameter integer CLK_FREQ = 27_000_000 // Fréquence d'horloge en Hz +)( + input wire clk, + input wire rst, + input wire start, + inout wire sig, // Broche bidirectionnelle vers le capteur + output reg [15:0] distance_cm // Distance mesurée en cm +); + + reg [2:0] state; + reg [15:0] trig_counter; + reg [31:0] echo_counter; + reg sig_out; + reg sig_dir; // 1: output, 0: input + + assign sig = sig_dir ? sig_out : 1'bz; + wire sig_in = sig; + + localparam IDLE = 3'd0, + TRIG_HIGH = 3'd1, + TRIG_LOW = 3'd2, + WAIT_ECHO = 3'd3, + MEASURE_ECHO = 3'd4, + DONE = 3'd5; + + localparam integer TRIG_PULSE_CYCLES = CLK_FREQ / 100_000; // 10us pulse + localparam integer DIST_DIVISOR = (58 * CLK_FREQ) / 1_000_000; // pour conversion us -> cm + + always @(posedge clk or posedge rst) begin + if (rst) begin + state <= IDLE; + trig_counter <= 0; + echo_counter <= 0; + sig_out <= 0; + sig_dir <= 0; + distance_cm <= 0; + end else begin + case (state) + IDLE: begin + sig_out <= 0; + sig_dir <= 1; + if (start) begin + state <= TRIG_HIGH; + trig_counter <= 0; + end + end + + TRIG_HIGH: begin + sig_out <= 1; + sig_dir <= 1; + if (trig_counter < TRIG_PULSE_CYCLES) begin + trig_counter <= trig_counter + 1; + end else begin + trig_counter <= 0; + state <= TRIG_LOW; + end + end + + TRIG_LOW: begin + sig_out <= 0; + sig_dir <= 0; // Mettre en entrée + state <= WAIT_ECHO; + end + + WAIT_ECHO: begin + if (sig_in) begin + echo_counter <= 0; + state <= MEASURE_ECHO; + end + end + + MEASURE_ECHO: begin + if (sig_in) begin + echo_counter <= echo_counter + 1; + end else begin + distance_cm <= (echo_counter * 1000) / DIST_DIVISOR; + state <= DONE; + end + end + + DONE: begin + state <= IDLE; + end + endcase + end + end + +endmodule \ No newline at end of file diff --git a/Semaine 1/Capteur_recule_bidirectionel/tb_top_ultrasonic_led.v b/Semaine 1/Capteur_recule_bidirectionel/tb_top_ultrasonic_led.v new file mode 100644 index 0000000..75dd7db --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/tb_top_ultrasonic_led.v @@ -0,0 +1,61 @@ +`timescale 1ns/1ps + +module tb_top_ultrasonic_led; + + reg clk; + reg rst; + reg start; + reg echo; + wire trig; + wire [5:0] leds; + + // Instance du module top + top_ultrasonic_led uut ( + .clk(clk), + .rst(rst), + .start(start), + .echo(echo), + .trig(trig), + .leds(leds) + ); + + always #18.5 clk = ~clk; + + initial begin + // Initialisation + $dumpfile("top_ultrasonic_led.vcd"); + $dumpvars(0, tb_top_ultrasonic_led); + + clk = 0; + rst = 1; + start = 0; + echo = 0; + + #100; + rst = 0; + + #50; + start = 1; + #20; + start = 0; + + // Attente du signal trig + wait (trig == 1); + $display("TRIG HIGH at %t", $time); + wait (trig == 0); + $display("TRIG LOW at %t", $time); + + repeat (500) @(posedge clk); + echo = 1; + #12000 + + echo = 0; + + repeat (500) @(posedge clk); + + $display("Leds allumer : %b", leds); + + $finish; + end + +endmodule diff --git a/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.v b/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.v new file mode 100644 index 0000000..6e64591 --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.v @@ -0,0 +1,26 @@ +module top_ultrasonic_led ( + input wire clk, + input wire rst, + input wire start, // bouton de déclenchement + inout wire sig, // broche unique pour trigger + echo + output wire [5:0] leds // LEDs pour affichage distance +); + + wire [8:0] distance; + + // Module de mesure (version bidirectionnelle du capteur) + ultrasonic_fpga_onewire ultrasonic_inst ( + .clk(clk), + .rst(rst), + .start(start), + .sig(sig), + .distance(distance) + ); + + // Module d'affichage LEDs + distance_display_led led_display_inst ( + .distance(distance), + .leds(leds) + ); + +endmodule diff --git a/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.vcd b/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.vcd new file mode 100644 index 0000000..612e878 --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led.vcd @@ -0,0 +1,7911 @@ +$date + Wed Apr 16 14:21:54 2025 +$end +$version + Icarus Verilog +$end +$timescale + 1ps +$end +$scope module tb_top_ultrasonic_led $end +$var wire 1 ! trig $end +$var wire 6 " leds [5:0] $end +$var reg 1 # clk $end +$var reg 1 $ echo $end +$var reg 1 % rst $end +$var reg 1 & start $end +$scope module uut $end +$var wire 1 # clk $end +$var wire 1 $ echo $end +$var wire 1 % rst $end +$var wire 1 & start $end +$var wire 1 ! trig $end +$var wire 6 ' leds [5:0] $end +$var wire 9 ( distance [8:0] $end +$scope module led_display_inst $end +$var wire 9 ) distance [8:0] $end +$var parameter 32 * LEVELS $end +$var parameter 32 + MAX_DIST $end +$var parameter 32 , MIN_DIST $end +$var parameter 34 - PART_SIZE $end +$var reg 6 . leds [5:0] $end +$upscope $end +$scope module ultrasonic_inst $end +$var wire 1 # clk $end +$var wire 1 $ echo $end +$var wire 1 % rst $end +$var wire 1 & start $end +$var parameter 32 / CLK_FREQ $end +$var parameter 32 0 DIST_DIVISOR $end +$var parameter 32 1 DONE $end +$var parameter 32 2 IDLE $end +$var parameter 32 3 MEASURE_ECHO $end +$var parameter 32 4 TRIG $end +$var parameter 32 5 TRIG_DURATION_CYCLES $end +$var parameter 32 6 WAIT_ECHO $end +$var reg 9 7 distance [8:0] $end +$var reg 16 8 echo_counter [15:0] $end +$var reg 3 9 state [2:0] $end +$var reg 9 : trig_counter [8:0] $end +$var reg 1 ! trig_out $end +$upscope $end +$upscope $end +$upscope $end +$enddefinitions $end +$comment Show the parameter values. $end +$dumpall +b10 6 +b100001110 5 +b1 4 +b11 3 +b0 2 +b100 1 +b11000011110 0 +b1100110111111110011000000 / +b1000101 - +b10 , +b101011101 + +b101 * +$end +#0 +$dumpvars +b0 : +b0 9 +b0 8 +b0 7 +b111111 . +b0 ) +b0 ( +b111111 ' +0& +1% +0$ +0# +b111111 " +0! +$end +#18500 +1# +#37000 +0# +#55500 +1# +#74000 +0# +#92500 +1# +#100000 +0% +#111000 +0# +#129500 +1# +#148000 +0# +#150000 +1& +#166500 +b1 9 +1# +#170000 +0& +#185000 +0# +#203500 +b1 : +1! +1# +#222000 +0# +#240500 +b10 : +1# +#259000 +0# +#277500 +b11 : +1# +#296000 +0# +#314500 +b100 : +1# +#333000 +0# +#351500 +b101 : +1# +#370000 +0# +#388500 +b110 : +1# +#407000 +0# +#425500 +b111 : +1# +#444000 +0# +#462500 +b1000 : +1# +#481000 +0# +#499500 +b1001 : +1# +#518000 +0# +#536500 +b1010 : +1# +#555000 +0# +#573500 +b1011 : +1# +#592000 +0# +#610500 +b1100 : +1# +#629000 +0# +#647500 +b1101 : +1# +#666000 +0# +#684500 +b1110 : +1# +#703000 +0# +#721500 +b1111 : +1# +#740000 +0# +#758500 +b10000 : +1# +#777000 +0# +#795500 +b10001 : +1# +#814000 +0# +#832500 +b10010 : +1# +#851000 +0# +#869500 +b10011 : +1# +#888000 +0# +#906500 +b10100 : +1# +#925000 +0# +#943500 +b10101 : +1# +#962000 +0# +#980500 +b10110 : +1# +#999000 +0# +#1017500 +b10111 : +1# +#1036000 +0# +#1054500 +b11000 : +1# +#1073000 +0# +#1091500 +b11001 : +1# +#1110000 +0# +#1128500 +b11010 : +1# +#1147000 +0# +#1165500 +b11011 : +1# +#1184000 +0# +#1202500 +b11100 : +1# +#1221000 +0# +#1239500 +b11101 : +1# +#1258000 +0# +#1276500 +b11110 : +1# +#1295000 +0# +#1313500 +b11111 : +1# +#1332000 +0# +#1350500 +b100000 : +1# +#1369000 +0# +#1387500 +b100001 : +1# +#1406000 +0# +#1424500 +b100010 : +1# +#1443000 +0# +#1461500 +b100011 : +1# +#1480000 +0# +#1498500 +b100100 : +1# +#1517000 +0# +#1535500 +b100101 : +1# +#1554000 +0# +#1572500 +b100110 : +1# +#1591000 +0# +#1609500 +b100111 : +1# +#1628000 +0# +#1646500 +b101000 : +1# +#1665000 +0# +#1683500 +b101001 : +1# +#1702000 +0# +#1720500 +b101010 : +1# +#1739000 +0# +#1757500 +b101011 : +1# +#1776000 +0# +#1794500 +b101100 : +1# +#1813000 +0# +#1831500 +b101101 : +1# +#1850000 +0# +#1868500 +b101110 : +1# +#1887000 +0# +#1905500 +b101111 : +1# +#1924000 +0# +#1942500 +b110000 : +1# +#1961000 +0# +#1979500 +b110001 : +1# +#1998000 +0# +#2016500 +b110010 : +1# +#2035000 +0# +#2053500 +b110011 : +1# +#2072000 +0# +#2090500 +b110100 : +1# +#2109000 +0# +#2127500 +b110101 : +1# +#2146000 +0# +#2164500 +b110110 : +1# +#2183000 +0# +#2201500 +b110111 : +1# +#2220000 +0# +#2238500 +b111000 : +1# +#2257000 +0# +#2275500 +b111001 : +1# +#2294000 +0# +#2312500 +b111010 : +1# +#2331000 +0# +#2349500 +b111011 : +1# +#2368000 +0# +#2386500 +b111100 : +1# +#2405000 +0# +#2423500 +b111101 : +1# +#2442000 +0# +#2460500 +b111110 : +1# +#2479000 +0# +#2497500 +b111111 : +1# +#2516000 +0# +#2534500 +b1000000 : +1# +#2553000 +0# +#2571500 +b1000001 : +1# +#2590000 +0# +#2608500 +b1000010 : +1# +#2627000 +0# +#2645500 +b1000011 : +1# +#2664000 +0# +#2682500 +b1000100 : +1# +#2701000 +0# +#2719500 +b1000101 : +1# +#2738000 +0# +#2756500 +b1000110 : +1# +#2775000 +0# +#2793500 +b1000111 : +1# +#2812000 +0# +#2830500 +b1001000 : +1# +#2849000 +0# +#2867500 +b1001001 : +1# +#2886000 +0# +#2904500 +b1001010 : +1# +#2923000 +0# +#2941500 +b1001011 : +1# +#2960000 +0# +#2978500 +b1001100 : +1# +#2997000 +0# +#3015500 +b1001101 : +1# +#3034000 +0# +#3052500 +b1001110 : +1# +#3071000 +0# +#3089500 +b1001111 : +1# +#3108000 +0# +#3126500 +b1010000 : +1# +#3145000 +0# +#3163500 +b1010001 : +1# +#3182000 +0# +#3200500 +b1010010 : +1# +#3219000 +0# +#3237500 +b1010011 : +1# +#3256000 +0# +#3274500 +b1010100 : +1# +#3293000 +0# +#3311500 +b1010101 : +1# +#3330000 +0# +#3348500 +b1010110 : +1# +#3367000 +0# +#3385500 +b1010111 : +1# +#3404000 +0# +#3422500 +b1011000 : +1# +#3441000 +0# +#3459500 +b1011001 : +1# +#3478000 +0# +#3496500 +b1011010 : +1# +#3515000 +0# +#3533500 +b1011011 : +1# +#3552000 +0# +#3570500 +b1011100 : +1# +#3589000 +0# +#3607500 +b1011101 : +1# +#3626000 +0# +#3644500 +b1011110 : +1# +#3663000 +0# +#3681500 +b1011111 : +1# +#3700000 +0# +#3718500 +b1100000 : +1# +#3737000 +0# +#3755500 +b1100001 : +1# +#3774000 +0# +#3792500 +b1100010 : +1# +#3811000 +0# +#3829500 +b1100011 : +1# +#3848000 +0# +#3866500 +b1100100 : +1# +#3885000 +0# +#3903500 +b1100101 : +1# +#3922000 +0# +#3940500 +b1100110 : +1# +#3959000 +0# +#3977500 +b1100111 : +1# +#3996000 +0# +#4014500 +b1101000 : +1# +#4033000 +0# +#4051500 +b1101001 : +1# +#4070000 +0# +#4088500 +b1101010 : +1# +#4107000 +0# +#4125500 +b1101011 : +1# +#4144000 +0# +#4162500 +b1101100 : +1# +#4181000 +0# +#4199500 +b1101101 : +1# +#4218000 +0# +#4236500 +b1101110 : +1# +#4255000 +0# +#4273500 +b1101111 : +1# +#4292000 +0# +#4310500 +b1110000 : +1# +#4329000 +0# +#4347500 +b1110001 : +1# +#4366000 +0# +#4384500 +b1110010 : +1# +#4403000 +0# +#4421500 +b1110011 : +1# +#4440000 +0# +#4458500 +b1110100 : +1# +#4477000 +0# +#4495500 +b1110101 : +1# +#4514000 +0# +#4532500 +b1110110 : +1# +#4551000 +0# +#4569500 +b1110111 : +1# +#4588000 +0# +#4606500 +b1111000 : +1# +#4625000 +0# +#4643500 +b1111001 : +1# +#4662000 +0# +#4680500 +b1111010 : +1# +#4699000 +0# +#4717500 +b1111011 : +1# +#4736000 +0# +#4754500 +b1111100 : +1# +#4773000 +0# +#4791500 +b1111101 : +1# +#4810000 +0# +#4828500 +b1111110 : +1# +#4847000 +0# +#4865500 +b1111111 : +1# +#4884000 +0# +#4902500 +b10000000 : +1# +#4921000 +0# +#4939500 +b10000001 : +1# +#4958000 +0# +#4976500 +b10000010 : +1# +#4995000 +0# +#5013500 +b10000011 : +1# +#5032000 +0# +#5050500 +b10000100 : +1# +#5069000 +0# +#5087500 +b10000101 : +1# +#5106000 +0# +#5124500 +b10000110 : +1# +#5143000 +0# +#5161500 +b10000111 : +1# +#5180000 +0# +#5198500 +b10001000 : +1# +#5217000 +0# +#5235500 +b10001001 : +1# +#5254000 +0# +#5272500 +b10001010 : +1# +#5291000 +0# +#5309500 +b10001011 : +1# +#5328000 +0# +#5346500 +b10001100 : +1# +#5365000 +0# +#5383500 +b10001101 : +1# +#5402000 +0# +#5420500 +b10001110 : +1# +#5439000 +0# +#5457500 +b10001111 : +1# +#5476000 +0# +#5494500 +b10010000 : +1# +#5513000 +0# +#5531500 +b10010001 : +1# +#5550000 +0# +#5568500 +b10010010 : +1# +#5587000 +0# +#5605500 +b10010011 : +1# +#5624000 +0# +#5642500 +b10010100 : +1# +#5661000 +0# +#5679500 +b10010101 : +1# +#5698000 +0# +#5716500 +b10010110 : +1# +#5735000 +0# +#5753500 +b10010111 : +1# +#5772000 +0# +#5790500 +b10011000 : +1# +#5809000 +0# +#5827500 +b10011001 : +1# +#5846000 +0# +#5864500 +b10011010 : +1# +#5883000 +0# +#5901500 +b10011011 : +1# +#5920000 +0# +#5938500 +b10011100 : +1# +#5957000 +0# +#5975500 +b10011101 : +1# +#5994000 +0# +#6012500 +b10011110 : +1# +#6031000 +0# +#6049500 +b10011111 : +1# +#6068000 +0# +#6086500 +b10100000 : +1# +#6105000 +0# +#6123500 +b10100001 : +1# +#6142000 +0# +#6160500 +b10100010 : +1# +#6179000 +0# +#6197500 +b10100011 : +1# +#6216000 +0# +#6234500 +b10100100 : +1# +#6253000 +0# +#6271500 +b10100101 : +1# +#6290000 +0# +#6308500 +b10100110 : +1# +#6327000 +0# +#6345500 +b10100111 : +1# +#6364000 +0# +#6382500 +b10101000 : +1# +#6401000 +0# +#6419500 +b10101001 : +1# +#6438000 +0# +#6456500 +b10101010 : +1# +#6475000 +0# +#6493500 +b10101011 : +1# +#6512000 +0# +#6530500 +b10101100 : +1# +#6549000 +0# +#6567500 +b10101101 : +1# +#6586000 +0# +#6604500 +b10101110 : +1# +#6623000 +0# +#6641500 +b10101111 : +1# +#6660000 +0# +#6678500 +b10110000 : +1# +#6697000 +0# +#6715500 +b10110001 : +1# +#6734000 +0# +#6752500 +b10110010 : +1# +#6771000 +0# +#6789500 +b10110011 : +1# +#6808000 +0# +#6826500 +b10110100 : +1# +#6845000 +0# +#6863500 +b10110101 : +1# +#6882000 +0# +#6900500 +b10110110 : +1# +#6919000 +0# +#6937500 +b10110111 : +1# +#6956000 +0# +#6974500 +b10111000 : +1# +#6993000 +0# +#7011500 +b10111001 : +1# +#7030000 +0# +#7048500 +b10111010 : +1# +#7067000 +0# +#7085500 +b10111011 : +1# +#7104000 +0# +#7122500 +b10111100 : +1# +#7141000 +0# +#7159500 +b10111101 : +1# +#7178000 +0# +#7196500 +b10111110 : +1# +#7215000 +0# +#7233500 +b10111111 : +1# +#7252000 +0# +#7270500 +b11000000 : +1# +#7289000 +0# +#7307500 +b11000001 : +1# +#7326000 +0# +#7344500 +b11000010 : +1# +#7363000 +0# +#7381500 +b11000011 : +1# +#7400000 +0# +#7418500 +b11000100 : +1# +#7437000 +0# +#7455500 +b11000101 : +1# +#7474000 +0# +#7492500 +b11000110 : +1# +#7511000 +0# +#7529500 +b11000111 : +1# +#7548000 +0# +#7566500 +b11001000 : +1# +#7585000 +0# +#7603500 +b11001001 : +1# +#7622000 +0# +#7640500 +b11001010 : +1# +#7659000 +0# +#7677500 +b11001011 : +1# +#7696000 +0# +#7714500 +b11001100 : +1# +#7733000 +0# +#7751500 +b11001101 : +1# +#7770000 +0# +#7788500 +b11001110 : +1# +#7807000 +0# +#7825500 +b11001111 : +1# +#7844000 +0# +#7862500 +b11010000 : +1# +#7881000 +0# +#7899500 +b11010001 : +1# +#7918000 +0# +#7936500 +b11010010 : +1# +#7955000 +0# +#7973500 +b11010011 : +1# +#7992000 +0# +#8010500 +b11010100 : +1# +#8029000 +0# +#8047500 +b11010101 : +1# +#8066000 +0# +#8084500 +b11010110 : +1# +#8103000 +0# +#8121500 +b11010111 : +1# +#8140000 +0# +#8158500 +b11011000 : +1# +#8177000 +0# +#8195500 +b11011001 : +1# +#8214000 +0# +#8232500 +b11011010 : +1# +#8251000 +0# +#8269500 +b11011011 : +1# +#8288000 +0# +#8306500 +b11011100 : +1# +#8325000 +0# +#8343500 +b11011101 : +1# +#8362000 +0# +#8380500 +b11011110 : +1# +#8399000 +0# +#8417500 +b11011111 : +1# +#8436000 +0# +#8454500 +b11100000 : +1# +#8473000 +0# +#8491500 +b11100001 : +1# +#8510000 +0# +#8528500 +b11100010 : +1# +#8547000 +0# +#8565500 +b11100011 : +1# +#8584000 +0# +#8602500 +b11100100 : +1# +#8621000 +0# +#8639500 +b11100101 : +1# +#8658000 +0# +#8676500 +b11100110 : +1# +#8695000 +0# +#8713500 +b11100111 : +1# +#8732000 +0# +#8750500 +b11101000 : +1# +#8769000 +0# +#8787500 +b11101001 : +1# +#8806000 +0# +#8824500 +b11101010 : +1# +#8843000 +0# +#8861500 +b11101011 : +1# +#8880000 +0# +#8898500 +b11101100 : +1# +#8917000 +0# +#8935500 +b11101101 : +1# +#8954000 +0# +#8972500 +b11101110 : +1# +#8991000 +0# +#9009500 +b11101111 : +1# +#9028000 +0# +#9046500 +b11110000 : +1# +#9065000 +0# +#9083500 +b11110001 : +1# +#9102000 +0# +#9120500 +b11110010 : +1# +#9139000 +0# +#9157500 +b11110011 : +1# +#9176000 +0# +#9194500 +b11110100 : +1# +#9213000 +0# +#9231500 +b11110101 : +1# +#9250000 +0# +#9268500 +b11110110 : +1# +#9287000 +0# +#9305500 +b11110111 : +1# +#9324000 +0# +#9342500 +b11111000 : +1# +#9361000 +0# +#9379500 +b11111001 : +1# +#9398000 +0# +#9416500 +b11111010 : +1# +#9435000 +0# +#9453500 +b11111011 : +1# +#9472000 +0# +#9490500 +b11111100 : +1# +#9509000 +0# +#9527500 +b11111101 : +1# +#9546000 +0# +#9564500 +b11111110 : +1# +#9583000 +0# +#9601500 +b11111111 : +1# +#9620000 +0# +#9638500 +b100000000 : +1# +#9657000 +0# +#9675500 +b100000001 : +1# +#9694000 +0# +#9712500 +b100000010 : +1# +#9731000 +0# +#9749500 +b100000011 : +1# +#9768000 +0# +#9786500 +b100000100 : +1# +#9805000 +0# +#9823500 +b100000101 : +1# +#9842000 +0# +#9860500 +b100000110 : +1# +#9879000 +0# +#9897500 +b100000111 : +1# +#9916000 +0# +#9934500 +b100001000 : +1# +#9953000 +0# +#9971500 +b100001001 : +1# +#9990000 +0# +#10008500 +b100001010 : +1# +#10027000 +0# +#10045500 +b100001011 : +1# +#10064000 +0# +#10082500 +b100001100 : +1# +#10101000 +0# +#10119500 +b100001101 : +1# +#10138000 +0# +#10156500 +b100001110 : +1# +#10175000 +0# +#10193500 +b10 9 +b0 : +0! +1# +#10212000 +0# +#10230500 +1# +#10249000 +0# +#10267500 +1# +#10286000 +0# +#10304500 +1# +#10323000 +0# +#10341500 +1# +#10360000 +0# +#10378500 +1# +#10397000 +0# +#10415500 +1# +#10434000 +0# +#10452500 +1# +#10471000 +0# +#10489500 +1# +#10508000 +0# +#10526500 +1# +#10545000 +0# +#10563500 +1# +#10582000 +0# +#10600500 +1# +#10619000 +0# +#10637500 +1# +#10656000 +0# +#10674500 +1# +#10693000 +0# +#10711500 +1# +#10730000 +0# +#10748500 +1# +#10767000 +0# +#10785500 +1# +#10804000 +0# +#10822500 +1# +#10841000 +0# +#10859500 +1# +#10878000 +0# +#10896500 +1# +#10915000 +0# +#10933500 +1# +#10952000 +0# +#10970500 +1# +#10989000 +0# +#11007500 +1# +#11026000 +0# +#11044500 +1# +#11063000 +0# +#11081500 +1# +#11100000 +0# +#11118500 +1# +#11137000 +0# +#11155500 +1# +#11174000 +0# +#11192500 +1# +#11211000 +0# +#11229500 +1# +#11248000 +0# +#11266500 +1# +#11285000 +0# +#11303500 +1# +#11322000 +0# +#11340500 +1# +#11359000 +0# +#11377500 +1# +#11396000 +0# +#11414500 +1# +#11433000 +0# +#11451500 +1# +#11470000 +0# +#11488500 +1# +#11507000 +0# +#11525500 +1# +#11544000 +0# +#11562500 +1# +#11581000 +0# +#11599500 +1# +#11618000 +0# +#11636500 +1# +#11655000 +0# +#11673500 +1# +#11692000 +0# +#11710500 +1# +#11729000 +0# +#11747500 +1# +#11766000 +0# +#11784500 +1# +#11803000 +0# +#11821500 +1# +#11840000 +0# +#11858500 +1# +#11877000 +0# +#11895500 +1# +#11914000 +0# +#11932500 +1# +#11951000 +0# +#11969500 +1# +#11988000 +0# +#12006500 +1# +#12025000 +0# +#12043500 +1# +#12062000 +0# +#12080500 +1# +#12099000 +0# +#12117500 +1# +#12136000 +0# +#12154500 +1# +#12173000 +0# +#12191500 +1# +#12210000 +0# +#12228500 +1# +#12247000 +0# +#12265500 +1# +#12284000 +0# +#12302500 +1# +#12321000 +0# +#12339500 +1# +#12358000 +0# +#12376500 +1# +#12395000 +0# +#12413500 +1# +#12432000 +0# +#12450500 +1# +#12469000 +0# +#12487500 +1# +#12506000 +0# +#12524500 +1# +#12543000 +0# +#12561500 +1# +#12580000 +0# +#12598500 +1# +#12617000 +0# +#12635500 +1# +#12654000 +0# +#12672500 +1# +#12691000 +0# +#12709500 +1# +#12728000 +0# +#12746500 +1# +#12765000 +0# +#12783500 +1# +#12802000 +0# +#12820500 +1# +#12839000 +0# +#12857500 +1# +#12876000 +0# +#12894500 +1# +#12913000 +0# +#12931500 +1# +#12950000 +0# +#12968500 +1# +#12987000 +0# +#13005500 +1# +#13024000 +0# +#13042500 +1# +#13061000 +0# +#13079500 +1# +#13098000 +0# +#13116500 +1# +#13135000 +0# +#13153500 +1# +#13172000 +0# +#13190500 +1# +#13209000 +0# +#13227500 +1# +#13246000 +0# +#13264500 +1# +#13283000 +0# +#13301500 +1# +#13320000 +0# +#13338500 +1# +#13357000 +0# +#13375500 +1# +#13394000 +0# +#13412500 +1# +#13431000 +0# +#13449500 +1# +#13468000 +0# +#13486500 +1# +#13505000 +0# +#13523500 +1# +#13542000 +0# +#13560500 +1# +#13579000 +0# +#13597500 +1# +#13616000 +0# +#13634500 +1# +#13653000 +0# +#13671500 +1# +#13690000 +0# +#13708500 +1# +#13727000 +0# +#13745500 +1# +#13764000 +0# +#13782500 +1# +#13801000 +0# +#13819500 +1# +#13838000 +0# +#13856500 +1# +#13875000 +0# +#13893500 +1# +#13912000 +0# +#13930500 +1# +#13949000 +0# +#13967500 +1# +#13986000 +0# +#14004500 +1# +#14023000 +0# +#14041500 +1# +#14060000 +0# +#14078500 +1# +#14097000 +0# +#14115500 +1# +#14134000 +0# +#14152500 +1# +#14171000 +0# +#14189500 +1# +#14208000 +0# +#14226500 +1# +#14245000 +0# +#14263500 +1# +#14282000 +0# +#14300500 +1# +#14319000 +0# +#14337500 +1# +#14356000 +0# +#14374500 +1# +#14393000 +0# +#14411500 +1# +#14430000 +0# +#14448500 +1# +#14467000 +0# +#14485500 +1# +#14504000 +0# +#14522500 +1# +#14541000 +0# +#14559500 +1# +#14578000 +0# +#14596500 +1# +#14615000 +0# +#14633500 +1# +#14652000 +0# +#14670500 +1# +#14689000 +0# +#14707500 +1# +#14726000 +0# +#14744500 +1# +#14763000 +0# +#14781500 +1# +#14800000 +0# +#14818500 +1# +#14837000 +0# +#14855500 +1# +#14874000 +0# +#14892500 +1# +#14911000 +0# +#14929500 +1# +#14948000 +0# +#14966500 +1# +#14985000 +0# +#15003500 +1# +#15022000 +0# +#15040500 +1# +#15059000 +0# +#15077500 +1# +#15096000 +0# +#15114500 +1# +#15133000 +0# +#15151500 +1# +#15170000 +0# +#15188500 +1# +#15207000 +0# +#15225500 +1# +#15244000 +0# +#15262500 +1# +#15281000 +0# +#15299500 +1# +#15318000 +0# +#15336500 +1# +#15355000 +0# +#15373500 +1# +#15392000 +0# +#15410500 +1# +#15429000 +0# +#15447500 +1# +#15466000 +0# +#15484500 +1# +#15503000 +0# +#15521500 +1# +#15540000 +0# +#15558500 +1# +#15577000 +0# +#15595500 +1# +#15614000 +0# +#15632500 +1# +#15651000 +0# +#15669500 +1# +#15688000 +0# +#15706500 +1# +#15725000 +0# +#15743500 +1# +#15762000 +0# +#15780500 +1# +#15799000 +0# +#15817500 +1# +#15836000 +0# +#15854500 +1# +#15873000 +0# +#15891500 +1# +#15910000 +0# +#15928500 +1# +#15947000 +0# +#15965500 +1# +#15984000 +0# +#16002500 +1# +#16021000 +0# +#16039500 +1# +#16058000 +0# +#16076500 +1# +#16095000 +0# +#16113500 +1# +#16132000 +0# +#16150500 +1# +#16169000 +0# +#16187500 +1# +#16206000 +0# +#16224500 +1# +#16243000 +0# +#16261500 +1# +#16280000 +0# +#16298500 +1# +#16317000 +0# +#16335500 +1# +#16354000 +0# +#16372500 +1# +#16391000 +0# +#16409500 +1# +#16428000 +0# +#16446500 +1# +#16465000 +0# +#16483500 +1# +#16502000 +0# +#16520500 +1# +#16539000 +0# +#16557500 +1# +#16576000 +0# +#16594500 +1# +#16613000 +0# +#16631500 +1# +#16650000 +0# +#16668500 +1# +#16687000 +0# +#16705500 +1# +#16724000 +0# +#16742500 +1# +#16761000 +0# +#16779500 +1# +#16798000 +0# +#16816500 +1# +#16835000 +0# +#16853500 +1# +#16872000 +0# +#16890500 +1# +#16909000 +0# +#16927500 +1# +#16946000 +0# +#16964500 +1# +#16983000 +0# +#17001500 +1# +#17020000 +0# +#17038500 +1# +#17057000 +0# +#17075500 +1# +#17094000 +0# +#17112500 +1# +#17131000 +0# +#17149500 +1# +#17168000 +0# +#17186500 +1# +#17205000 +0# +#17223500 +1# +#17242000 +0# +#17260500 +1# +#17279000 +0# +#17297500 +1# +#17316000 +0# +#17334500 +1# +#17353000 +0# +#17371500 +1# +#17390000 +0# +#17408500 +1# +#17427000 +0# +#17445500 +1# +#17464000 +0# +#17482500 +1# +#17501000 +0# +#17519500 +1# +#17538000 +0# +#17556500 +1# +#17575000 +0# +#17593500 +1# +#17612000 +0# +#17630500 +1# +#17649000 +0# +#17667500 +1# +#17686000 +0# +#17704500 +1# +#17723000 +0# +#17741500 +1# +#17760000 +0# +#17778500 +1# +#17797000 +0# +#17815500 +1# +#17834000 +0# +#17852500 +1# +#17871000 +0# +#17889500 +1# +#17908000 +0# +#17926500 +1# +#17945000 +0# +#17963500 +1# +#17982000 +0# +#18000500 +1# +#18019000 +0# +#18037500 +1# +#18056000 +0# +#18074500 +1# +#18093000 +0# +#18111500 +1# +#18130000 +0# +#18148500 +1# +#18167000 +0# +#18185500 +1# +#18204000 +0# +#18222500 +1# +#18241000 +0# +#18259500 +1# +#18278000 +0# +#18296500 +1# +#18315000 +0# +#18333500 +1# +#18352000 +0# +#18370500 +1# +#18389000 +0# +#18407500 +1# +#18426000 +0# +#18444500 +1# +#18463000 +0# +#18481500 +1# +#18500000 +0# +#18518500 +1# +#18537000 +0# +#18555500 +1# +#18574000 +0# +#18592500 +1# +#18611000 +0# +#18629500 +1# +#18648000 +0# +#18666500 +1# +#18685000 +0# +#18703500 +1# +#18722000 +0# +#18740500 +1# +#18759000 +0# +#18777500 +1# +#18796000 +0# +#18814500 +1# +#18833000 +0# +#18851500 +1# +#18870000 +0# +#18888500 +1# +#18907000 +0# +#18925500 +1# +#18944000 +0# +#18962500 +1# +#18981000 +0# +#18999500 +1# +#19018000 +0# +#19036500 +1# +#19055000 +0# +#19073500 +1# +#19092000 +0# +#19110500 +1# +#19129000 +0# +#19147500 +1# +#19166000 +0# +#19184500 +1# +#19203000 +0# +#19221500 +1# +#19240000 +0# +#19258500 +1# +#19277000 +0# +#19295500 +1# +#19314000 +0# +#19332500 +1# +#19351000 +0# +#19369500 +1# +#19388000 +0# +#19406500 +1# +#19425000 +0# +#19443500 +1# +#19462000 +0# +#19480500 +1# +#19499000 +0# +#19517500 +1# +#19536000 +0# +#19554500 +1# +#19573000 +0# +#19591500 +1# +#19610000 +0# +#19628500 +1# +#19647000 +0# +#19665500 +1# +#19684000 +0# +#19702500 +1# +#19721000 +0# +#19739500 +1# +#19758000 +0# +#19776500 +1# +#19795000 +0# +#19813500 +1# +#19832000 +0# +#19850500 +1# +#19869000 +0# +#19887500 +1# +#19906000 +0# +#19924500 +1# +#19943000 +0# +#19961500 +1# +#19980000 +0# +#19998500 +1# +#20017000 +0# +#20035500 +1# +#20054000 +0# +#20072500 +1# +#20091000 +0# +#20109500 +1# +#20128000 +0# +#20146500 +1# +#20165000 +0# +#20183500 +1# +#20202000 +0# +#20220500 +1# +#20239000 +0# +#20257500 +1# +#20276000 +0# +#20294500 +1# +#20313000 +0# +#20331500 +1# +#20350000 +0# +#20368500 +1# +#20387000 +0# +#20405500 +1# +#20424000 +0# +#20442500 +1# +#20461000 +0# +#20479500 +1# +#20498000 +0# +#20516500 +1# +#20535000 +0# +#20553500 +1# +#20572000 +0# +#20590500 +1# +#20609000 +0# +#20627500 +1# +#20646000 +0# +#20664500 +1# +#20683000 +0# +#20701500 +1# +#20720000 +0# +#20738500 +1# +#20757000 +0# +#20775500 +1# +#20794000 +0# +#20812500 +1# +#20831000 +0# +#20849500 +1# +#20868000 +0# +#20886500 +1# +#20905000 +0# +#20923500 +1# +#20942000 +0# +#20960500 +1# +#20979000 +0# +#20997500 +1# +#21016000 +0# +#21034500 +1# +#21053000 +0# +#21071500 +1# +#21090000 +0# +#21108500 +1# +#21127000 +0# +#21145500 +1# +#21164000 +0# +#21182500 +1# +#21201000 +0# +#21219500 +1# +#21238000 +0# +#21256500 +1# +#21275000 +0# +#21293500 +1# +#21312000 +0# +#21330500 +1# +#21349000 +0# +#21367500 +1# +#21386000 +0# +#21404500 +1# +#21423000 +0# +#21441500 +1# +#21460000 +0# +#21478500 +1# +#21497000 +0# +#21515500 +1# +#21534000 +0# +#21552500 +1# +#21571000 +0# +#21589500 +1# +#21608000 +0# +#21626500 +1# +#21645000 +0# +#21663500 +1# +#21682000 +0# +#21700500 +1# +#21719000 +0# +#21737500 +1# +#21756000 +0# +#21774500 +1# +#21793000 +0# +#21811500 +1# +#21830000 +0# +#21848500 +1# +#21867000 +0# +#21885500 +1# +#21904000 +0# +#21922500 +1# +#21941000 +0# +#21959500 +1# +#21978000 +0# +#21996500 +1# +#22015000 +0# +#22033500 +1# +#22052000 +0# +#22070500 +1# +#22089000 +0# +#22107500 +1# +#22126000 +0# +#22144500 +1# +#22163000 +0# +#22181500 +1# +#22200000 +0# +#22218500 +1# +#22237000 +0# +#22255500 +1# +#22274000 +0# +#22292500 +1# +#22311000 +0# +#22329500 +1# +#22348000 +0# +#22366500 +1# +#22385000 +0# +#22403500 +1# +#22422000 +0# +#22440500 +1# +#22459000 +0# +#22477500 +1# +#22496000 +0# +#22514500 +1# +#22533000 +0# +#22551500 +1# +#22570000 +0# +#22588500 +1# +#22607000 +0# +#22625500 +1# +#22644000 +0# +#22662500 +1# +#22681000 +0# +#22699500 +1# +#22718000 +0# +#22736500 +1# +#22755000 +0# +#22773500 +1# +#22792000 +0# +#22810500 +1# +#22829000 +0# +#22847500 +1# +#22866000 +0# +#22884500 +1# +#22903000 +0# +#22921500 +1# +#22940000 +0# +#22958500 +1# +#22977000 +0# +#22995500 +1# +#23014000 +0# +#23032500 +1# +#23051000 +0# +#23069500 +1# +#23088000 +0# +#23106500 +1# +#23125000 +0# +#23143500 +1# +#23162000 +0# +#23180500 +1# +#23199000 +0# +#23217500 +1# +#23236000 +0# +#23254500 +1# +#23273000 +0# +#23291500 +1# +#23310000 +0# +#23328500 +1# +#23347000 +0# +#23365500 +1# +#23384000 +0# +#23402500 +1# +#23421000 +0# +#23439500 +1# +#23458000 +0# +#23476500 +1# +#23495000 +0# +#23513500 +1# +#23532000 +0# +#23550500 +1# +#23569000 +0# +#23587500 +1# +#23606000 +0# +#23624500 +1# +#23643000 +0# +#23661500 +1# +#23680000 +0# +#23698500 +1# +#23717000 +0# +#23735500 +1# +#23754000 +0# +#23772500 +1# +#23791000 +0# +#23809500 +1# +#23828000 +0# +#23846500 +1# +#23865000 +0# +#23883500 +1# +#23902000 +0# +#23920500 +1# +#23939000 +0# +#23957500 +1# +#23976000 +0# +#23994500 +1# +#24013000 +0# +#24031500 +1# +#24050000 +0# +#24068500 +1# +#24087000 +0# +#24105500 +1# +#24124000 +0# +#24142500 +1# +#24161000 +0# +#24179500 +1# +#24198000 +0# +#24216500 +1# +#24235000 +0# +#24253500 +1# +#24272000 +0# +#24290500 +1# +#24309000 +0# +#24327500 +1# +#24346000 +0# +#24364500 +1# +#24383000 +0# +#24401500 +1# +#24420000 +0# +#24438500 +1# +#24457000 +0# +#24475500 +1# +#24494000 +0# +#24512500 +1# +#24531000 +0# +#24549500 +1# +#24568000 +0# +#24586500 +1# +#24605000 +0# +#24623500 +1# +#24642000 +0# +#24660500 +1# +#24679000 +0# +#24697500 +1# +#24716000 +0# +#24734500 +1# +#24753000 +0# +#24771500 +1# +#24790000 +0# +#24808500 +1# +#24827000 +0# +#24845500 +1# +#24864000 +0# +#24882500 +1# +#24901000 +0# +#24919500 +1# +#24938000 +0# +#24956500 +1# +#24975000 +0# +#24993500 +1# +#25012000 +0# +#25030500 +1# +#25049000 +0# +#25067500 +1# +#25086000 +0# +#25104500 +1# +#25123000 +0# +#25141500 +1# +#25160000 +0# +#25178500 +1# +#25197000 +0# +#25215500 +1# +#25234000 +0# +#25252500 +1# +#25271000 +0# +#25289500 +1# +#25308000 +0# +#25326500 +1# +#25345000 +0# +#25363500 +1# +#25382000 +0# +#25400500 +1# +#25419000 +0# +#25437500 +1# +#25456000 +0# +#25474500 +1# +#25493000 +0# +#25511500 +1# +#25530000 +0# +#25548500 +1# +#25567000 +0# +#25585500 +1# +#25604000 +0# +#25622500 +1# +#25641000 +0# +#25659500 +1# +#25678000 +0# +#25696500 +1# +#25715000 +0# +#25733500 +1# +#25752000 +0# +#25770500 +1# +#25789000 +0# +#25807500 +1# +#25826000 +0# +#25844500 +1# +#25863000 +0# +#25881500 +1# +#25900000 +0# +#25918500 +1# +#25937000 +0# +#25955500 +1# +#25974000 +0# +#25992500 +1# +#26011000 +0# +#26029500 +1# +#26048000 +0# +#26066500 +1# +#26085000 +0# +#26103500 +1# +#26122000 +0# +#26140500 +1# +#26159000 +0# +#26177500 +1# +#26196000 +0# +#26214500 +1# +#26233000 +0# +#26251500 +1# +#26270000 +0# +#26288500 +1# +#26307000 +0# +#26325500 +1# +#26344000 +0# +#26362500 +1# +#26381000 +0# +#26399500 +1# +#26418000 +0# +#26436500 +1# +#26455000 +0# +#26473500 +1# +#26492000 +0# +#26510500 +1# +#26529000 +0# +#26547500 +1# +#26566000 +0# +#26584500 +1# +#26603000 +0# +#26621500 +1# +#26640000 +0# +#26658500 +1# +#26677000 +0# +#26695500 +1# +#26714000 +0# +#26732500 +1# +#26751000 +0# +#26769500 +1# +#26788000 +0# +#26806500 +1# +#26825000 +0# +#26843500 +1# +#26862000 +0# +#26880500 +1# +#26899000 +0# +#26917500 +1# +#26936000 +0# +#26954500 +1# +#26973000 +0# +#26991500 +1# +#27010000 +0# +#27028500 +1# +#27047000 +0# +#27065500 +1# +#27084000 +0# +#27102500 +1# +#27121000 +0# +#27139500 +1# +#27158000 +0# +#27176500 +1# +#27195000 +0# +#27213500 +1# +#27232000 +0# +#27250500 +1# +#27269000 +0# +#27287500 +1# +#27306000 +0# +#27324500 +1# +#27343000 +0# +#27361500 +1# +#27380000 +0# +#27398500 +1# +#27417000 +0# +#27435500 +1# +#27454000 +0# +#27472500 +1# +#27491000 +0# +#27509500 +1# +#27528000 +0# +#27546500 +1# +#27565000 +0# +#27583500 +1# +#27602000 +0# +#27620500 +1# +#27639000 +0# +#27657500 +1# +#27676000 +0# +#27694500 +1# +#27713000 +0# +#27731500 +1# +#27750000 +0# +#27768500 +1# +#27787000 +0# +#27805500 +1# +#27824000 +0# +#27842500 +1# +#27861000 +0# +#27879500 +1# +#27898000 +0# +#27916500 +1# +#27935000 +0# +#27953500 +1# +#27972000 +0# +#27990500 +1# +#28009000 +0# +#28027500 +1# +#28046000 +0# +#28064500 +1# +#28083000 +0# +#28101500 +1# +#28120000 +0# +#28138500 +1# +#28157000 +0# +#28175500 +1# +#28194000 +0# +#28212500 +1# +#28231000 +0# +#28249500 +1# +#28268000 +0# +#28286500 +1# +#28305000 +0# +#28323500 +1# +#28342000 +0# +#28360500 +1# +#28379000 +0# +#28397500 +1# +#28416000 +0# +#28434500 +1# +#28453000 +0# +#28471500 +1# +#28490000 +0# +#28508500 +1# +#28527000 +0# +#28545500 +1# +#28564000 +0# +#28582500 +1# +#28601000 +0# +#28619500 +1# +#28638000 +0# +#28656500 +1# +#28675000 +0# +#28693500 +b11 9 +1$ +1# +#28712000 +0# +#28730500 +b1 8 +1# +#28749000 +0# +#28767500 +b10 8 +1# +#28786000 +0# +#28804500 +b11 8 +1# +#28823000 +0# +#28841500 +b100 8 +1# +#28860000 +0# +#28878500 +b101 8 +1# +#28897000 +0# +#28915500 +b110 8 +1# +#28934000 +0# +#28952500 +b111 8 +1# +#28971000 +0# +#28989500 +b1000 8 +1# +#29008000 +0# +#29026500 +b1001 8 +1# +#29045000 +0# +#29063500 +b1010 8 +1# +#29082000 +0# +#29100500 +b1011 8 +1# +#29119000 +0# +#29137500 +b1100 8 +1# +#29156000 +0# +#29174500 +b1101 8 +1# +#29193000 +0# +#29211500 +b1110 8 +1# +#29230000 +0# +#29248500 +b1111 8 +1# +#29267000 +0# +#29285500 +b10000 8 +1# +#29304000 +0# +#29322500 +b10001 8 +1# +#29341000 +0# +#29359500 +b10010 8 +1# +#29378000 +0# +#29396500 +b10011 8 +1# +#29415000 +0# +#29433500 +b10100 8 +1# +#29452000 +0# +#29470500 +b10101 8 +1# +#29489000 +0# +#29507500 +b10110 8 +1# +#29526000 +0# +#29544500 +b10111 8 +1# +#29563000 +0# +#29581500 +b11000 8 +1# +#29600000 +0# +#29618500 +b11001 8 +1# +#29637000 +0# +#29655500 +b11010 8 +1# +#29674000 +0# +#29692500 +b11011 8 +1# +#29711000 +0# +#29729500 +b11100 8 +1# +#29748000 +0# +#29766500 +b11101 8 +1# +#29785000 +0# +#29803500 +b11110 8 +1# +#29822000 +0# +#29840500 +b11111 8 +1# +#29859000 +0# +#29877500 +b100000 8 +1# +#29896000 +0# +#29914500 +b100001 8 +1# +#29933000 +0# +#29951500 +b100010 8 +1# +#29970000 +0# +#29988500 +b100011 8 +1# +#30007000 +0# +#30025500 +b100100 8 +1# +#30044000 +0# +#30062500 +b100101 8 +1# +#30081000 +0# +#30099500 +b100110 8 +1# +#30118000 +0# +#30136500 +b100111 8 +1# +#30155000 +0# +#30173500 +b101000 8 +1# +#30192000 +0# +#30210500 +b101001 8 +1# +#30229000 +0# +#30247500 +b101010 8 +1# +#30266000 +0# +#30284500 +b101011 8 +1# +#30303000 +0# +#30321500 +b101100 8 +1# +#30340000 +0# +#30358500 +b101101 8 +1# +#30377000 +0# +#30395500 +b101110 8 +1# +#30414000 +0# +#30432500 +b101111 8 +1# +#30451000 +0# +#30469500 +b110000 8 +1# +#30488000 +0# +#30506500 +b110001 8 +1# +#30525000 +0# +#30543500 +b110010 8 +1# +#30562000 +0# +#30580500 +b110011 8 +1# +#30599000 +0# +#30617500 +b110100 8 +1# +#30636000 +0# +#30654500 +b110101 8 +1# +#30673000 +0# +#30691500 +b110110 8 +1# +#30710000 +0# +#30728500 +b110111 8 +1# +#30747000 +0# +#30765500 +b111000 8 +1# +#30784000 +0# +#30802500 +b111001 8 +1# +#30821000 +0# +#30839500 +b111010 8 +1# +#30858000 +0# +#30876500 +b111011 8 +1# +#30895000 +0# +#30913500 +b111100 8 +1# +#30932000 +0# +#30950500 +b111101 8 +1# +#30969000 +0# +#30987500 +b111110 8 +1# +#31006000 +0# +#31024500 +b111111 8 +1# +#31043000 +0# +#31061500 +b1000000 8 +1# +#31080000 +0# +#31098500 +b1000001 8 +1# +#31117000 +0# +#31135500 +b1000010 8 +1# +#31154000 +0# +#31172500 +b1000011 8 +1# +#31191000 +0# +#31209500 +b1000100 8 +1# +#31228000 +0# +#31246500 +b1000101 8 +1# +#31265000 +0# +#31283500 +b1000110 8 +1# +#31302000 +0# +#31320500 +b1000111 8 +1# +#31339000 +0# +#31357500 +b1001000 8 +1# +#31376000 +0# +#31394500 +b1001001 8 +1# +#31413000 +0# +#31431500 +b1001010 8 +1# +#31450000 +0# +#31468500 +b1001011 8 +1# +#31487000 +0# +#31505500 +b1001100 8 +1# +#31524000 +0# +#31542500 +b1001101 8 +1# +#31561000 +0# +#31579500 +b1001110 8 +1# +#31598000 +0# +#31616500 +b1001111 8 +1# +#31635000 +0# +#31653500 +b1010000 8 +1# +#31672000 +0# +#31690500 +b1010001 8 +1# +#31709000 +0# +#31727500 +b1010010 8 +1# +#31746000 +0# +#31764500 +b1010011 8 +1# +#31783000 +0# +#31801500 +b1010100 8 +1# +#31820000 +0# +#31838500 +b1010101 8 +1# +#31857000 +0# +#31875500 +b1010110 8 +1# +#31894000 +0# +#31912500 +b1010111 8 +1# +#31931000 +0# +#31949500 +b1011000 8 +1# +#31968000 +0# +#31986500 +b1011001 8 +1# +#32005000 +0# +#32023500 +b1011010 8 +1# +#32042000 +0# +#32060500 +b1011011 8 +1# +#32079000 +0# +#32097500 +b1011100 8 +1# +#32116000 +0# +#32134500 +b1011101 8 +1# +#32153000 +0# +#32171500 +b1011110 8 +1# +#32190000 +0# +#32208500 +b1011111 8 +1# +#32227000 +0# +#32245500 +b1100000 8 +1# +#32264000 +0# +#32282500 +b1100001 8 +1# +#32301000 +0# +#32319500 +b1100010 8 +1# +#32338000 +0# +#32356500 +b1100011 8 +1# +#32375000 +0# +#32393500 +b1100100 8 +1# +#32412000 +0# +#32430500 +b1100101 8 +1# +#32449000 +0# +#32467500 +b1100110 8 +1# +#32486000 +0# +#32504500 +b1100111 8 +1# +#32523000 +0# +#32541500 +b1101000 8 +1# +#32560000 +0# +#32578500 +b1101001 8 +1# +#32597000 +0# +#32615500 +b1101010 8 +1# +#32634000 +0# +#32652500 +b1101011 8 +1# +#32671000 +0# +#32689500 +b1101100 8 +1# +#32708000 +0# +#32726500 +b1101101 8 +1# +#32745000 +0# +#32763500 +b1101110 8 +1# +#32782000 +0# +#32800500 +b1101111 8 +1# +#32819000 +0# +#32837500 +b1110000 8 +1# +#32856000 +0# +#32874500 +b1110001 8 +1# +#32893000 +0# +#32911500 +b1110010 8 +1# +#32930000 +0# +#32948500 +b1110011 8 +1# +#32967000 +0# +#32985500 +b1110100 8 +1# +#33004000 +0# +#33022500 +b1110101 8 +1# +#33041000 +0# +#33059500 +b1110110 8 +1# +#33078000 +0# +#33096500 +b1110111 8 +1# +#33115000 +0# +#33133500 +b1111000 8 +1# +#33152000 +0# +#33170500 +b1111001 8 +1# +#33189000 +0# +#33207500 +b1111010 8 +1# +#33226000 +0# +#33244500 +b1111011 8 +1# +#33263000 +0# +#33281500 +b1111100 8 +1# +#33300000 +0# +#33318500 +b1111101 8 +1# +#33337000 +0# +#33355500 +b1111110 8 +1# +#33374000 +0# +#33392500 +b1111111 8 +1# +#33411000 +0# +#33429500 +b10000000 8 +1# +#33448000 +0# +#33466500 +b10000001 8 +1# +#33485000 +0# +#33503500 +b10000010 8 +1# +#33522000 +0# +#33540500 +b10000011 8 +1# +#33559000 +0# +#33577500 +b10000100 8 +1# +#33596000 +0# +#33614500 +b10000101 8 +1# +#33633000 +0# +#33651500 +b10000110 8 +1# +#33670000 +0# +#33688500 +b10000111 8 +1# +#33707000 +0# +#33725500 +b10001000 8 +1# +#33744000 +0# +#33762500 +b10001001 8 +1# +#33781000 +0# +#33799500 +b10001010 8 +1# +#33818000 +0# +#33836500 +b10001011 8 +1# +#33855000 +0# +#33873500 +b10001100 8 +1# +#33892000 +0# +#33910500 +b10001101 8 +1# +#33929000 +0# +#33947500 +b10001110 8 +1# +#33966000 +0# +#33984500 +b10001111 8 +1# +#34003000 +0# +#34021500 +b10010000 8 +1# +#34040000 +0# +#34058500 +b10010001 8 +1# +#34077000 +0# +#34095500 +b10010010 8 +1# +#34114000 +0# +#34132500 +b10010011 8 +1# +#34151000 +0# +#34169500 +b10010100 8 +1# +#34188000 +0# +#34206500 +b10010101 8 +1# +#34225000 +0# +#34243500 +b10010110 8 +1# +#34262000 +0# +#34280500 +b10010111 8 +1# +#34299000 +0# +#34317500 +b10011000 8 +1# +#34336000 +0# +#34354500 +b10011001 8 +1# +#34373000 +0# +#34391500 +b10011010 8 +1# +#34410000 +0# +#34428500 +b10011011 8 +1# +#34447000 +0# +#34465500 +b10011100 8 +1# +#34484000 +0# +#34502500 +b10011101 8 +1# +#34521000 +0# +#34539500 +b10011110 8 +1# +#34558000 +0# +#34576500 +b10011111 8 +1# +#34595000 +0# +#34613500 +b10100000 8 +1# +#34632000 +0# +#34650500 +b10100001 8 +1# +#34669000 +0# +#34687500 +b10100010 8 +1# +#34706000 +0# +#34724500 +b10100011 8 +1# +#34743000 +0# +#34761500 +b10100100 8 +1# +#34780000 +0# +#34798500 +b10100101 8 +1# +#34817000 +0# +#34835500 +b10100110 8 +1# +#34854000 +0# +#34872500 +b10100111 8 +1# +#34891000 +0# +#34909500 +b10101000 8 +1# +#34928000 +0# +#34946500 +b10101001 8 +1# +#34965000 +0# +#34983500 +b10101010 8 +1# +#35002000 +0# +#35020500 +b10101011 8 +1# +#35039000 +0# +#35057500 +b10101100 8 +1# +#35076000 +0# +#35094500 +b10101101 8 +1# +#35113000 +0# +#35131500 +b10101110 8 +1# +#35150000 +0# +#35168500 +b10101111 8 +1# +#35187000 +0# +#35205500 +b10110000 8 +1# +#35224000 +0# +#35242500 +b10110001 8 +1# +#35261000 +0# +#35279500 +b10110010 8 +1# +#35298000 +0# +#35316500 +b10110011 8 +1# +#35335000 +0# +#35353500 +b10110100 8 +1# +#35372000 +0# +#35390500 +b10110101 8 +1# +#35409000 +0# +#35427500 +b10110110 8 +1# +#35446000 +0# +#35464500 +b10110111 8 +1# +#35483000 +0# +#35501500 +b10111000 8 +1# +#35520000 +0# +#35538500 +b10111001 8 +1# +#35557000 +0# +#35575500 +b10111010 8 +1# +#35594000 +0# +#35612500 +b10111011 8 +1# +#35631000 +0# +#35649500 +b10111100 8 +1# +#35668000 +0# +#35686500 +b10111101 8 +1# +#35705000 +0# +#35723500 +b10111110 8 +1# +#35742000 +0# +#35760500 +b10111111 8 +1# +#35779000 +0# +#35797500 +b11000000 8 +1# +#35816000 +0# +#35834500 +b11000001 8 +1# +#35853000 +0# +#35871500 +b11000010 8 +1# +#35890000 +0# +#35908500 +b11000011 8 +1# +#35927000 +0# +#35945500 +b11000100 8 +1# +#35964000 +0# +#35982500 +b11000101 8 +1# +#36001000 +0# +#36019500 +b11000110 8 +1# +#36038000 +0# +#36056500 +b11000111 8 +1# +#36075000 +0# +#36093500 +b11001000 8 +1# +#36112000 +0# +#36130500 +b11001001 8 +1# +#36149000 +0# +#36167500 +b11001010 8 +1# +#36186000 +0# +#36204500 +b11001011 8 +1# +#36223000 +0# +#36241500 +b11001100 8 +1# +#36260000 +0# +#36278500 +b11001101 8 +1# +#36297000 +0# +#36315500 +b11001110 8 +1# +#36334000 +0# +#36352500 +b11001111 8 +1# +#36371000 +0# +#36389500 +b11010000 8 +1# +#36408000 +0# +#36426500 +b11010001 8 +1# +#36445000 +0# +#36463500 +b11010010 8 +1# +#36482000 +0# +#36500500 +b11010011 8 +1# +#36519000 +0# +#36537500 +b11010100 8 +1# +#36556000 +0# +#36574500 +b11010101 8 +1# +#36593000 +0# +#36611500 +b11010110 8 +1# +#36630000 +0# +#36648500 +b11010111 8 +1# +#36667000 +0# +#36685500 +b11011000 8 +1# +#36704000 +0# +#36722500 +b11011001 8 +1# +#36741000 +0# +#36759500 +b11011010 8 +1# +#36778000 +0# +#36796500 +b11011011 8 +1# +#36815000 +0# +#36833500 +b11011100 8 +1# +#36852000 +0# +#36870500 +b11011101 8 +1# +#36889000 +0# +#36907500 +b11011110 8 +1# +#36926000 +0# +#36944500 +b11011111 8 +1# +#36963000 +0# +#36981500 +b11100000 8 +1# +#37000000 +0# +#37018500 +b11100001 8 +1# +#37037000 +0# +#37055500 +b11100010 8 +1# +#37074000 +0# +#37092500 +b11100011 8 +1# +#37111000 +0# +#37129500 +b11100100 8 +1# +#37148000 +0# +#37166500 +b11100101 8 +1# +#37185000 +0# +#37203500 +b11100110 8 +1# +#37222000 +0# +#37240500 +b11100111 8 +1# +#37259000 +0# +#37277500 +b11101000 8 +1# +#37296000 +0# +#37314500 +b11101001 8 +1# +#37333000 +0# +#37351500 +b11101010 8 +1# +#37370000 +0# +#37388500 +b11101011 8 +1# +#37407000 +0# +#37425500 +b11101100 8 +1# +#37444000 +0# +#37462500 +b11101101 8 +1# +#37481000 +0# +#37499500 +b11101110 8 +1# +#37518000 +0# +#37536500 +b11101111 8 +1# +#37555000 +0# +#37573500 +b11110000 8 +1# +#37592000 +0# +#37610500 +b11110001 8 +1# +#37629000 +0# +#37647500 +b11110010 8 +1# +#37666000 +0# +#37684500 +b11110011 8 +1# +#37703000 +0# +#37721500 +b11110100 8 +1# +#37740000 +0# +#37758500 +b11110101 8 +1# +#37777000 +0# +#37795500 +b11110110 8 +1# +#37814000 +0# +#37832500 +b11110111 8 +1# +#37851000 +0# +#37869500 +b11111000 8 +1# +#37888000 +0# +#37906500 +b11111001 8 +1# +#37925000 +0# +#37943500 +b11111010 8 +1# +#37962000 +0# +#37980500 +b11111011 8 +1# +#37999000 +0# +#38017500 +b11111100 8 +1# +#38036000 +0# +#38054500 +b11111101 8 +1# +#38073000 +0# +#38091500 +b11111110 8 +1# +#38110000 +0# +#38128500 +b11111111 8 +1# +#38147000 +0# +#38165500 +b100000000 8 +1# +#38184000 +0# +#38202500 +b100000001 8 +1# +#38221000 +0# +#38239500 +b100000010 8 +1# +#38258000 +0# +#38276500 +b100000011 8 +1# +#38295000 +0# +#38313500 +b100000100 8 +1# +#38332000 +0# +#38350500 +b100000101 8 +1# +#38369000 +0# +#38387500 +b100000110 8 +1# +#38406000 +0# +#38424500 +b100000111 8 +1# +#38443000 +0# +#38461500 +b100001000 8 +1# +#38480000 +0# +#38498500 +b100001001 8 +1# +#38517000 +0# +#38535500 +b100001010 8 +1# +#38554000 +0# +#38572500 +b100001011 8 +1# +#38591000 +0# +#38609500 +b100001100 8 +1# +#38628000 +0# +#38646500 +b100001101 8 +1# +#38665000 +0# +#38683500 +b100001110 8 +1# +#38702000 +0# +#38720500 +b100001111 8 +1# +#38739000 +0# +#38757500 +b100010000 8 +1# +#38776000 +0# +#38794500 +b100010001 8 +1# +#38813000 +0# +#38831500 +b100010010 8 +1# +#38850000 +0# +#38868500 +b100010011 8 +1# +#38887000 +0# +#38905500 +b100010100 8 +1# +#38924000 +0# +#38942500 +b100010101 8 +1# +#38961000 +0# +#38979500 +b100010110 8 +1# +#38998000 +0# +#39016500 +b100010111 8 +1# +#39035000 +0# +#39053500 +b100011000 8 +1# +#39072000 +0# +#39090500 +b100011001 8 +1# +#39109000 +0# +#39127500 +b100011010 8 +1# +#39146000 +0# +#39164500 +b100011011 8 +1# +#39183000 +0# +#39201500 +b100011100 8 +1# +#39220000 +0# +#39238500 +b100011101 8 +1# +#39257000 +0# +#39275500 +b100011110 8 +1# +#39294000 +0# +#39312500 +b100011111 8 +1# +#39331000 +0# +#39349500 +b100100000 8 +1# +#39368000 +0# +#39386500 +b100100001 8 +1# +#39405000 +0# +#39423500 +b100100010 8 +1# +#39442000 +0# +#39460500 +b100100011 8 +1# +#39479000 +0# +#39497500 +b100100100 8 +1# +#39516000 +0# +#39534500 +b100100101 8 +1# +#39553000 +0# +#39571500 +b100100110 8 +1# +#39590000 +0# +#39608500 +b100100111 8 +1# +#39627000 +0# +#39645500 +b100101000 8 +1# +#39664000 +0# +#39682500 +b100101001 8 +1# +#39701000 +0# +#39719500 +b100101010 8 +1# +#39738000 +0# +#39756500 +b100101011 8 +1# +#39775000 +0# +#39793500 +b100101100 8 +1# +#39812000 +0# +#39830500 +b100101101 8 +1# +#39849000 +0# +#39867500 +b100101110 8 +1# +#39886000 +0# +#39904500 +b100101111 8 +1# +#39923000 +0# +#39941500 +b100110000 8 +1# +#39960000 +0# +#39978500 +b100110001 8 +1# +#39997000 +0# +#40015500 +b100110010 8 +1# +#40034000 +0# +#40052500 +b100110011 8 +1# +#40071000 +0# +#40089500 +b100110100 8 +1# +#40108000 +0# +#40126500 +b100110101 8 +1# +#40145000 +0# +#40163500 +b100110110 8 +1# +#40182000 +0# +#40200500 +b100110111 8 +1# +#40219000 +0# +#40237500 +b100111000 8 +1# +#40256000 +0# +#40274500 +b100111001 8 +1# +#40293000 +0# +#40311500 +b100111010 8 +1# +#40330000 +0# +#40348500 +b100111011 8 +1# +#40367000 +0# +#40385500 +b100111100 8 +1# +#40404000 +0# +#40422500 +b100111101 8 +1# +#40441000 +0# +#40459500 +b100111110 8 +1# +#40478000 +0# +#40496500 +b100111111 8 +1# +#40515000 +0# +#40533500 +b101000000 8 +1# +#40552000 +0# +#40570500 +b101000001 8 +1# +#40589000 +0# +#40607500 +b101000010 8 +1# +#40626000 +0# +#40644500 +b101000011 8 +1# +#40663000 +0# +#40681500 +b101000100 8 +1# +#40700000 +0# +#40718500 +b101000101 8 +1# +#40737000 +0# +#40755500 +b101000110 8 +1# +#40774000 +0# +#40792500 +b101000111 8 +1# +#40811000 +0# +#40829500 +b101001000 8 +1# +#40848000 +0# +#40866500 +b101001001 8 +1# +#40885000 +0# +#40903500 +b101001010 8 +1# +#40922000 +0# +#40940500 +b101001011 8 +1# +#40959000 +0# +#40977500 +b101001100 8 +1# +#40996000 +0# +#41014500 +b101001101 8 +1# +#41033000 +0# +#41051500 +b101001110 8 +1# +#41070000 +0# +#41088500 +b101001111 8 +1# +#41107000 +0# +#41125500 +b101010000 8 +1# +#41144000 +0# +#41162500 +b101010001 8 +1# +#41181000 +0# +#41199500 +b101010010 8 +1# +#41218000 +0# +#41236500 +b101010011 8 +1# +#41255000 +0# +#41273500 +b101010100 8 +1# +#41292000 +0# +#41310500 +b101010101 8 +1# +#41329000 +0# +#41347500 +b101010110 8 +1# +#41366000 +0# +#41384500 +b101010111 8 +1# +#41403000 +0# +#41421500 +b101011000 8 +1# +#41440000 +0# +#41458500 +b101011001 8 +1# +#41477000 +0# +#41495500 +b101011010 8 +1# +#41514000 +0# +#41532500 +b101011011 8 +1# +#41551000 +0# +#41569500 +b101011100 8 +1# +#41588000 +0# +#41606500 +b101011101 8 +1# +#41625000 +0# +#41643500 +b101011110 8 +1# +#41662000 +0# +#41680500 +b101011111 8 +1# +#41699000 +0# +#41717500 +b101100000 8 +1# +#41736000 +0# +#41754500 +b101100001 8 +1# +#41773000 +0# +#41791500 +b101100010 8 +1# +#41810000 +0# +#41828500 +b101100011 8 +1# +#41847000 +0# +#41865500 +b101100100 8 +1# +#41884000 +0# +#41902500 +b101100101 8 +1# +#41921000 +0# +#41939500 +b101100110 8 +1# +#41958000 +0# +#41976500 +b101100111 8 +1# +#41995000 +0# +#42013500 +b101101000 8 +1# +#42032000 +0# +#42050500 +b101101001 8 +1# +#42069000 +0# +#42087500 +b101101010 8 +1# +#42106000 +0# +#42124500 +b101101011 8 +1# +#42143000 +0# +#42161500 +b101101100 8 +1# +#42180000 +0# +#42198500 +b101101101 8 +1# +#42217000 +0# +#42235500 +b101101110 8 +1# +#42254000 +0# +#42272500 +b101101111 8 +1# +#42291000 +0# +#42309500 +b101110000 8 +1# +#42328000 +0# +#42346500 +b101110001 8 +1# +#42365000 +0# +#42383500 +b101110010 8 +1# +#42402000 +0# +#42420500 +b101110011 8 +1# +#42439000 +0# +#42457500 +b101110100 8 +1# +#42476000 +0# +#42494500 +b101110101 8 +1# +#42513000 +0# +#42531500 +b101110110 8 +1# +#42550000 +0# +#42568500 +b101110111 8 +1# +#42587000 +0# +#42605500 +b101111000 8 +1# +#42624000 +0# +#42642500 +b101111001 8 +1# +#42661000 +0# +#42679500 +b101111010 8 +1# +#42698000 +0# +#42716500 +b101111011 8 +1# +#42735000 +0# +#42753500 +b101111100 8 +1# +#42772000 +0# +#42790500 +b101111101 8 +1# +#42809000 +0# +#42827500 +b101111110 8 +1# +#42846000 +0# +#42864500 +b101111111 8 +1# +#42883000 +0# +#42901500 +b110000000 8 +1# +#42920000 +0# +#42938500 +b110000001 8 +1# +#42957000 +0# +#42975500 +b110000010 8 +1# +#42994000 +0# +#43012500 +b110000011 8 +1# +#43031000 +0# +#43049500 +b110000100 8 +1# +#43068000 +0# +#43086500 +b110000101 8 +1# +#43105000 +0# +#43123500 +b110000110 8 +1# +#43142000 +0# +#43160500 +b110000111 8 +1# +#43179000 +0# +#43197500 +b110001000 8 +1# +#43216000 +0# +#43234500 +b110001001 8 +1# +#43253000 +0# +#43271500 +b110001010 8 +1# +#43290000 +0# +#43308500 +b110001011 8 +1# +#43327000 +0# +#43345500 +b110001100 8 +1# +#43364000 +0# +#43382500 +b110001101 8 +1# +#43401000 +0# +#43419500 +b110001110 8 +1# +#43438000 +0# +#43456500 +b110001111 8 +1# +#43475000 +0# +#43493500 +b110010000 8 +1# +#43512000 +0# +#43530500 +b110010001 8 +1# +#43549000 +0# +#43567500 +b110010010 8 +1# +#43586000 +0# +#43604500 +b110010011 8 +1# +#43623000 +0# +#43641500 +b110010100 8 +1# +#43660000 +0# +#43678500 +b110010101 8 +1# +#43697000 +0# +#43715500 +b110010110 8 +1# +#43734000 +0# +#43752500 +b110010111 8 +1# +#43771000 +0# +#43789500 +b110011000 8 +1# +#43808000 +0# +#43826500 +b110011001 8 +1# +#43845000 +0# +#43863500 +b110011010 8 +1# +#43882000 +0# +#43900500 +b110011011 8 +1# +#43919000 +0# +#43937500 +b110011100 8 +1# +#43956000 +0# +#43974500 +b110011101 8 +1# +#43993000 +0# +#44011500 +b110011110 8 +1# +#44030000 +0# +#44048500 +b110011111 8 +1# +#44067000 +0# +#44085500 +b110100000 8 +1# +#44104000 +0# +#44122500 +b110100001 8 +1# +#44141000 +0# +#44159500 +b110100010 8 +1# +#44178000 +0# +#44196500 +b110100011 8 +1# +#44215000 +0# +#44233500 +b110100100 8 +1# +#44252000 +0# +#44270500 +b110100101 8 +1# +#44289000 +0# +#44307500 +b110100110 8 +1# +#44326000 +0# +#44344500 +b110100111 8 +1# +#44363000 +0# +#44381500 +b110101000 8 +1# +#44400000 +0# +#44418500 +b110101001 8 +1# +#44437000 +0# +#44455500 +b110101010 8 +1# +#44474000 +0# +#44492500 +b110101011 8 +1# +#44511000 +0# +#44529500 +b110101100 8 +1# +#44548000 +0# +#44566500 +b110101101 8 +1# +#44585000 +0# +#44603500 +b110101110 8 +1# +#44622000 +0# +#44640500 +b110101111 8 +1# +#44659000 +0# +#44677500 +b110110000 8 +1# +#44696000 +0# +#44714500 +b110110001 8 +1# +#44733000 +0# +#44751500 +b110110010 8 +1# +#44770000 +0# +#44788500 +b110110011 8 +1# +#44807000 +0# +#44825500 +b110110100 8 +1# +#44844000 +0# +#44862500 +b110110101 8 +1# +#44881000 +0# +#44899500 +b110110110 8 +1# +#44918000 +0# +#44936500 +b110110111 8 +1# +#44955000 +0# +#44973500 +b110111000 8 +1# +#44992000 +0# +#45010500 +b110111001 8 +1# +#45029000 +0# +#45047500 +b110111010 8 +1# +#45066000 +0# +#45084500 +b110111011 8 +1# +#45103000 +0# +#45121500 +b110111100 8 +1# +#45140000 +0# +#45158500 +b110111101 8 +1# +#45177000 +0# +#45195500 +b110111110 8 +1# +#45214000 +0# +#45232500 +b110111111 8 +1# +#45251000 +0# +#45269500 +b111000000 8 +1# +#45288000 +0# +#45306500 +b111000001 8 +1# +#45325000 +0# +#45343500 +b111000010 8 +1# +#45362000 +0# +#45380500 +b111000011 8 +1# +#45399000 +0# +#45417500 +b111000100 8 +1# +#45436000 +0# +#45454500 +b111000101 8 +1# +#45473000 +0# +#45491500 +b111000110 8 +1# +#45510000 +0# +#45528500 +b111000111 8 +1# +#45547000 +0# +#45565500 +b111001000 8 +1# +#45584000 +0# +#45602500 +b111001001 8 +1# +#45621000 +0# +#45639500 +b111001010 8 +1# +#45658000 +0# +#45676500 +b111001011 8 +1# +#45695000 +0# +#45713500 +b111001100 8 +1# +#45732000 +0# +#45750500 +b111001101 8 +1# +#45769000 +0# +#45787500 +b111001110 8 +1# +#45806000 +0# +#45824500 +b111001111 8 +1# +#45843000 +0# +#45861500 +b111010000 8 +1# +#45880000 +0# +#45898500 +b111010001 8 +1# +#45917000 +0# +#45935500 +b111010010 8 +1# +#45954000 +0# +#45972500 +b111010011 8 +1# +#45991000 +0# +#46009500 +b111010100 8 +1# +#46028000 +0# +#46046500 +b111010101 8 +1# +#46065000 +0# +#46083500 +b111010110 8 +1# +#46102000 +0# +#46120500 +b111010111 8 +1# +#46139000 +0# +#46157500 +b111011000 8 +1# +#46176000 +0# +#46194500 +b111011001 8 +1# +#46213000 +0# +#46231500 +b111011010 8 +1# +#46250000 +0# +#46268500 +b111011011 8 +1# +#46287000 +0# +#46305500 +b111011100 8 +1# +#46324000 +0# +#46342500 +b111011101 8 +1# +#46361000 +0# +#46379500 +b111011110 8 +1# +#46398000 +0# +#46416500 +b111011111 8 +1# +#46435000 +0# +#46453500 +b111100000 8 +1# +#46472000 +0# +#46490500 +b111100001 8 +1# +#46509000 +0# +#46527500 +b111100010 8 +1# +#46546000 +0# +#46564500 +b111100011 8 +1# +#46583000 +0# +#46601500 +b111100100 8 +1# +#46620000 +0# +#46638500 +b111100101 8 +1# +#46657000 +0# +#46675500 +b111100110 8 +1# +#46693500 +0$ +#46694000 +0# +#46712500 +b100000 " +b100000 ' +b100000 . +b100 9 +b100110110 ( +b100110110 ) +b100110110 7 +1# +#46731000 +0# +#46749500 +b0 9 +1# +#46768000 +0# +#46786500 +1# +#46805000 +0# +#46823500 +1# +#46842000 +0# +#46860500 +1# +#46879000 +0# +#46897500 +1# +#46916000 +0# +#46934500 +1# +#46953000 +0# +#46971500 +1# +#46990000 +0# +#47008500 +1# +#47027000 +0# +#47045500 +1# +#47064000 +0# +#47082500 +1# +#47101000 +0# +#47119500 +1# +#47138000 +0# +#47156500 +1# +#47175000 +0# +#47193500 +1# +#47212000 +0# +#47230500 +1# +#47249000 +0# +#47267500 +1# +#47286000 +0# +#47304500 +1# +#47323000 +0# +#47341500 +1# +#47360000 +0# +#47378500 +1# +#47397000 +0# +#47415500 +1# +#47434000 +0# +#47452500 +1# +#47471000 +0# +#47489500 +1# +#47508000 +0# +#47526500 +1# +#47545000 +0# +#47563500 +1# +#47582000 +0# +#47600500 +1# +#47619000 +0# +#47637500 +1# +#47656000 +0# +#47674500 +1# +#47693000 +0# +#47711500 +1# +#47730000 +0# +#47748500 +1# +#47767000 +0# +#47785500 +1# +#47804000 +0# +#47822500 +1# +#47841000 +0# +#47859500 +1# +#47878000 +0# +#47896500 +1# +#47915000 +0# +#47933500 +1# +#47952000 +0# +#47970500 +1# +#47989000 +0# +#48007500 +1# +#48026000 +0# +#48044500 +1# +#48063000 +0# +#48081500 +1# +#48100000 +0# +#48118500 +1# +#48137000 +0# +#48155500 +1# +#48174000 +0# +#48192500 +1# +#48211000 +0# +#48229500 +1# +#48248000 +0# +#48266500 +1# +#48285000 +0# +#48303500 +1# +#48322000 +0# +#48340500 +1# +#48359000 +0# +#48377500 +1# +#48396000 +0# +#48414500 +1# +#48433000 +0# +#48451500 +1# +#48470000 +0# +#48488500 +1# +#48507000 +0# +#48525500 +1# +#48544000 +0# +#48562500 +1# +#48581000 +0# +#48599500 +1# +#48618000 +0# +#48636500 +1# +#48655000 +0# +#48673500 +1# +#48692000 +0# +#48710500 +1# +#48729000 +0# +#48747500 +1# +#48766000 +0# +#48784500 +1# +#48803000 +0# +#48821500 +1# +#48840000 +0# +#48858500 +1# +#48877000 +0# +#48895500 +1# +#48914000 +0# +#48932500 +1# +#48951000 +0# +#48969500 +1# +#48988000 +0# +#49006500 +1# +#49025000 +0# +#49043500 +1# +#49062000 +0# +#49080500 +1# +#49099000 +0# +#49117500 +1# +#49136000 +0# +#49154500 +1# +#49173000 +0# +#49191500 +1# +#49210000 +0# +#49228500 +1# +#49247000 +0# +#49265500 +1# +#49284000 +0# +#49302500 +1# +#49321000 +0# +#49339500 +1# +#49358000 +0# +#49376500 +1# +#49395000 +0# +#49413500 +1# +#49432000 +0# +#49450500 +1# +#49469000 +0# +#49487500 +1# +#49506000 +0# +#49524500 +1# +#49543000 +0# +#49561500 +1# +#49580000 +0# +#49598500 +1# +#49617000 +0# +#49635500 +1# +#49654000 +0# +#49672500 +1# +#49691000 +0# +#49709500 +1# +#49728000 +0# +#49746500 +1# +#49765000 +0# +#49783500 +1# +#49802000 +0# +#49820500 +1# +#49839000 +0# +#49857500 +1# +#49876000 +0# +#49894500 +1# +#49913000 +0# +#49931500 +1# +#49950000 +0# +#49968500 +1# +#49987000 +0# +#50005500 +1# +#50024000 +0# +#50042500 +1# +#50061000 +0# +#50079500 +1# +#50098000 +0# +#50116500 +1# +#50135000 +0# +#50153500 +1# +#50172000 +0# +#50190500 +1# +#50209000 +0# +#50227500 +1# +#50246000 +0# +#50264500 +1# +#50283000 +0# +#50301500 +1# +#50320000 +0# +#50338500 +1# +#50357000 +0# +#50375500 +1# +#50394000 +0# +#50412500 +1# +#50431000 +0# +#50449500 +1# +#50468000 +0# +#50486500 +1# +#50505000 +0# +#50523500 +1# +#50542000 +0# +#50560500 +1# +#50579000 +0# +#50597500 +1# +#50616000 +0# +#50634500 +1# +#50653000 +0# +#50671500 +1# +#50690000 +0# +#50708500 +1# +#50727000 +0# +#50745500 +1# +#50764000 +0# +#50782500 +1# +#50801000 +0# +#50819500 +1# +#50838000 +0# +#50856500 +1# +#50875000 +0# +#50893500 +1# +#50912000 +0# +#50930500 +1# +#50949000 +0# +#50967500 +1# +#50986000 +0# +#51004500 +1# +#51023000 +0# +#51041500 +1# +#51060000 +0# +#51078500 +1# +#51097000 +0# +#51115500 +1# +#51134000 +0# +#51152500 +1# +#51171000 +0# +#51189500 +1# +#51208000 +0# +#51226500 +1# +#51245000 +0# +#51263500 +1# +#51282000 +0# +#51300500 +1# +#51319000 +0# +#51337500 +1# +#51356000 +0# +#51374500 +1# +#51393000 +0# +#51411500 +1# +#51430000 +0# +#51448500 +1# +#51467000 +0# +#51485500 +1# +#51504000 +0# +#51522500 +1# +#51541000 +0# +#51559500 +1# +#51578000 +0# +#51596500 +1# +#51615000 +0# +#51633500 +1# +#51652000 +0# +#51670500 +1# +#51689000 +0# +#51707500 +1# +#51726000 +0# +#51744500 +1# +#51763000 +0# +#51781500 +1# +#51800000 +0# +#51818500 +1# +#51837000 +0# +#51855500 +1# +#51874000 +0# +#51892500 +1# +#51911000 +0# +#51929500 +1# +#51948000 +0# +#51966500 +1# +#51985000 +0# +#52003500 +1# +#52022000 +0# +#52040500 +1# +#52059000 +0# +#52077500 +1# +#52096000 +0# +#52114500 +1# +#52133000 +0# +#52151500 +1# +#52170000 +0# +#52188500 +1# +#52207000 +0# +#52225500 +1# +#52244000 +0# +#52262500 +1# +#52281000 +0# +#52299500 +1# +#52318000 +0# +#52336500 +1# +#52355000 +0# +#52373500 +1# +#52392000 +0# +#52410500 +1# +#52429000 +0# +#52447500 +1# +#52466000 +0# +#52484500 +1# +#52503000 +0# +#52521500 +1# +#52540000 +0# +#52558500 +1# +#52577000 +0# +#52595500 +1# +#52614000 +0# +#52632500 +1# +#52651000 +0# +#52669500 +1# +#52688000 +0# +#52706500 +1# +#52725000 +0# +#52743500 +1# +#52762000 +0# +#52780500 +1# +#52799000 +0# +#52817500 +1# +#52836000 +0# +#52854500 +1# +#52873000 +0# +#52891500 +1# +#52910000 +0# +#52928500 +1# +#52947000 +0# +#52965500 +1# +#52984000 +0# +#53002500 +1# +#53021000 +0# +#53039500 +1# +#53058000 +0# +#53076500 +1# +#53095000 +0# +#53113500 +1# +#53132000 +0# +#53150500 +1# +#53169000 +0# +#53187500 +1# +#53206000 +0# +#53224500 +1# +#53243000 +0# +#53261500 +1# +#53280000 +0# +#53298500 +1# +#53317000 +0# +#53335500 +1# +#53354000 +0# +#53372500 +1# +#53391000 +0# +#53409500 +1# +#53428000 +0# +#53446500 +1# +#53465000 +0# +#53483500 +1# +#53502000 +0# +#53520500 +1# +#53539000 +0# +#53557500 +1# +#53576000 +0# +#53594500 +1# +#53613000 +0# +#53631500 +1# +#53650000 +0# +#53668500 +1# +#53687000 +0# +#53705500 +1# +#53724000 +0# +#53742500 +1# +#53761000 +0# +#53779500 +1# +#53798000 +0# +#53816500 +1# +#53835000 +0# +#53853500 +1# +#53872000 +0# +#53890500 +1# +#53909000 +0# +#53927500 +1# +#53946000 +0# +#53964500 +1# +#53983000 +0# +#54001500 +1# +#54020000 +0# +#54038500 +1# +#54057000 +0# +#54075500 +1# +#54094000 +0# +#54112500 +1# +#54131000 +0# +#54149500 +1# +#54168000 +0# +#54186500 +1# +#54205000 +0# +#54223500 +1# +#54242000 +0# +#54260500 +1# +#54279000 +0# +#54297500 +1# +#54316000 +0# +#54334500 +1# +#54353000 +0# +#54371500 +1# +#54390000 +0# +#54408500 +1# +#54427000 +0# +#54445500 +1# +#54464000 +0# +#54482500 +1# +#54501000 +0# +#54519500 +1# +#54538000 +0# +#54556500 +1# +#54575000 +0# +#54593500 +1# +#54612000 +0# +#54630500 +1# +#54649000 +0# +#54667500 +1# +#54686000 +0# +#54704500 +1# +#54723000 +0# +#54741500 +1# +#54760000 +0# +#54778500 +1# +#54797000 +0# +#54815500 +1# +#54834000 +0# +#54852500 +1# +#54871000 +0# +#54889500 +1# +#54908000 +0# +#54926500 +1# +#54945000 +0# +#54963500 +1# +#54982000 +0# +#55000500 +1# +#55019000 +0# +#55037500 +1# +#55056000 +0# +#55074500 +1# +#55093000 +0# +#55111500 +1# +#55130000 +0# +#55148500 +1# +#55167000 +0# +#55185500 +1# +#55204000 +0# +#55222500 +1# +#55241000 +0# +#55259500 +1# +#55278000 +0# +#55296500 +1# +#55315000 +0# +#55333500 +1# +#55352000 +0# +#55370500 +1# +#55389000 +0# +#55407500 +1# +#55426000 +0# +#55444500 +1# +#55463000 +0# +#55481500 +1# +#55500000 +0# +#55518500 +1# +#55537000 +0# +#55555500 +1# +#55574000 +0# +#55592500 +1# +#55611000 +0# +#55629500 +1# +#55648000 +0# +#55666500 +1# +#55685000 +0# +#55703500 +1# +#55722000 +0# +#55740500 +1# +#55759000 +0# +#55777500 +1# +#55796000 +0# +#55814500 +1# +#55833000 +0# +#55851500 +1# +#55870000 +0# +#55888500 +1# +#55907000 +0# +#55925500 +1# +#55944000 +0# +#55962500 +1# +#55981000 +0# +#55999500 +1# +#56018000 +0# +#56036500 +1# +#56055000 +0# +#56073500 +1# +#56092000 +0# +#56110500 +1# +#56129000 +0# +#56147500 +1# +#56166000 +0# +#56184500 +1# +#56203000 +0# +#56221500 +1# +#56240000 +0# +#56258500 +1# +#56277000 +0# +#56295500 +1# +#56314000 +0# +#56332500 +1# +#56351000 +0# +#56369500 +1# +#56388000 +0# +#56406500 +1# +#56425000 +0# +#56443500 +1# +#56462000 +0# +#56480500 +1# +#56499000 +0# +#56517500 +1# +#56536000 +0# +#56554500 +1# +#56573000 +0# +#56591500 +1# +#56610000 +0# +#56628500 +1# +#56647000 +0# +#56665500 +1# +#56684000 +0# +#56702500 +1# +#56721000 +0# +#56739500 +1# +#56758000 +0# +#56776500 +1# +#56795000 +0# +#56813500 +1# +#56832000 +0# +#56850500 +1# +#56869000 +0# +#56887500 +1# +#56906000 +0# +#56924500 +1# +#56943000 +0# +#56961500 +1# +#56980000 +0# +#56998500 +1# +#57017000 +0# +#57035500 +1# +#57054000 +0# +#57072500 +1# +#57091000 +0# +#57109500 +1# +#57128000 +0# +#57146500 +1# +#57165000 +0# +#57183500 +1# +#57202000 +0# +#57220500 +1# +#57239000 +0# +#57257500 +1# +#57276000 +0# +#57294500 +1# +#57313000 +0# +#57331500 +1# +#57350000 +0# +#57368500 +1# +#57387000 +0# +#57405500 +1# +#57424000 +0# +#57442500 +1# +#57461000 +0# +#57479500 +1# +#57498000 +0# +#57516500 +1# +#57535000 +0# +#57553500 +1# +#57572000 +0# +#57590500 +1# +#57609000 +0# +#57627500 +1# +#57646000 +0# +#57664500 +1# +#57683000 +0# +#57701500 +1# +#57720000 +0# +#57738500 +1# +#57757000 +0# +#57775500 +1# +#57794000 +0# +#57812500 +1# +#57831000 +0# +#57849500 +1# +#57868000 +0# +#57886500 +1# +#57905000 +0# +#57923500 +1# +#57942000 +0# +#57960500 +1# +#57979000 +0# +#57997500 +1# +#58016000 +0# +#58034500 +1# +#58053000 +0# +#58071500 +1# +#58090000 +0# +#58108500 +1# +#58127000 +0# +#58145500 +1# +#58164000 +0# +#58182500 +1# +#58201000 +0# +#58219500 +1# +#58238000 +0# +#58256500 +1# +#58275000 +0# +#58293500 +1# +#58312000 +0# +#58330500 +1# +#58349000 +0# +#58367500 +1# +#58386000 +0# +#58404500 +1# +#58423000 +0# +#58441500 +1# +#58460000 +0# +#58478500 +1# +#58497000 +0# +#58515500 +1# +#58534000 +0# +#58552500 +1# +#58571000 +0# +#58589500 +1# +#58608000 +0# +#58626500 +1# +#58645000 +0# +#58663500 +1# +#58682000 +0# +#58700500 +1# +#58719000 +0# +#58737500 +1# +#58756000 +0# +#58774500 +1# +#58793000 +0# +#58811500 +1# +#58830000 +0# +#58848500 +1# +#58867000 +0# +#58885500 +1# +#58904000 +0# +#58922500 +1# +#58941000 +0# +#58959500 +1# +#58978000 +0# +#58996500 +1# +#59015000 +0# +#59033500 +1# +#59052000 +0# +#59070500 +1# +#59089000 +0# +#59107500 +1# +#59126000 +0# +#59144500 +1# +#59163000 +0# +#59181500 +1# +#59200000 +0# +#59218500 +1# +#59237000 +0# +#59255500 +1# +#59274000 +0# +#59292500 +1# +#59311000 +0# +#59329500 +1# +#59348000 +0# +#59366500 +1# +#59385000 +0# +#59403500 +1# +#59422000 +0# +#59440500 +1# +#59459000 +0# +#59477500 +1# +#59496000 +0# +#59514500 +1# +#59533000 +0# +#59551500 +1# +#59570000 +0# +#59588500 +1# +#59607000 +0# +#59625500 +1# +#59644000 +0# +#59662500 +1# +#59681000 +0# +#59699500 +1# +#59718000 +0# +#59736500 +1# +#59755000 +0# +#59773500 +1# +#59792000 +0# +#59810500 +1# +#59829000 +0# +#59847500 +1# +#59866000 +0# +#59884500 +1# +#59903000 +0# +#59921500 +1# +#59940000 +0# +#59958500 +1# +#59977000 +0# +#59995500 +1# +#60014000 +0# +#60032500 +1# +#60051000 +0# +#60069500 +1# +#60088000 +0# +#60106500 +1# +#60125000 +0# +#60143500 +1# +#60162000 +0# +#60180500 +1# +#60199000 +0# +#60217500 +1# +#60236000 +0# +#60254500 +1# +#60273000 +0# +#60291500 +1# +#60310000 +0# +#60328500 +1# +#60347000 +0# +#60365500 +1# +#60384000 +0# +#60402500 +1# +#60421000 +0# +#60439500 +1# +#60458000 +0# +#60476500 +1# +#60495000 +0# +#60513500 +1# +#60532000 +0# +#60550500 +1# +#60569000 +0# +#60587500 +1# +#60606000 +0# +#60624500 +1# +#60643000 +0# +#60661500 +1# +#60680000 +0# +#60698500 +1# +#60717000 +0# +#60735500 +1# +#60754000 +0# +#60772500 +1# +#60791000 +0# +#60809500 +1# +#60828000 +0# +#60846500 +1# +#60865000 +0# +#60883500 +1# +#60902000 +0# +#60920500 +1# +#60939000 +0# +#60957500 +1# +#60976000 +0# +#60994500 +1# +#61013000 +0# +#61031500 +1# +#61050000 +0# +#61068500 +1# +#61087000 +0# +#61105500 +1# +#61124000 +0# +#61142500 +1# +#61161000 +0# +#61179500 +1# +#61198000 +0# +#61216500 +1# +#61235000 +0# +#61253500 +1# +#61272000 +0# +#61290500 +1# +#61309000 +0# +#61327500 +1# +#61346000 +0# +#61364500 +1# +#61383000 +0# +#61401500 +1# +#61420000 +0# +#61438500 +1# +#61457000 +0# +#61475500 +1# +#61494000 +0# +#61512500 +1# +#61531000 +0# +#61549500 +1# +#61568000 +0# +#61586500 +1# +#61605000 +0# +#61623500 +1# +#61642000 +0# +#61660500 +1# +#61679000 +0# +#61697500 +1# +#61716000 +0# +#61734500 +1# +#61753000 +0# +#61771500 +1# +#61790000 +0# +#61808500 +1# +#61827000 +0# +#61845500 +1# +#61864000 +0# +#61882500 +1# +#61901000 +0# +#61919500 +1# +#61938000 +0# +#61956500 +1# +#61975000 +0# +#61993500 +1# +#62012000 +0# +#62030500 +1# +#62049000 +0# +#62067500 +1# +#62086000 +0# +#62104500 +1# +#62123000 +0# +#62141500 +1# +#62160000 +0# +#62178500 +1# +#62197000 +0# +#62215500 +1# +#62234000 +0# +#62252500 +1# +#62271000 +0# +#62289500 +1# +#62308000 +0# +#62326500 +1# +#62345000 +0# +#62363500 +1# +#62382000 +0# +#62400500 +1# +#62419000 +0# +#62437500 +1# +#62456000 +0# +#62474500 +1# +#62493000 +0# +#62511500 +1# +#62530000 +0# +#62548500 +1# +#62567000 +0# +#62585500 +1# +#62604000 +0# +#62622500 +1# +#62641000 +0# +#62659500 +1# +#62678000 +0# +#62696500 +1# +#62715000 +0# +#62733500 +1# +#62752000 +0# +#62770500 +1# +#62789000 +0# +#62807500 +1# +#62826000 +0# +#62844500 +1# +#62863000 +0# +#62881500 +1# +#62900000 +0# +#62918500 +1# +#62937000 +0# +#62955500 +1# +#62974000 +0# +#62992500 +1# +#63011000 +0# +#63029500 +1# +#63048000 +0# +#63066500 +1# +#63085000 +0# +#63103500 +1# +#63122000 +0# +#63140500 +1# +#63159000 +0# +#63177500 +1# +#63196000 +0# +#63214500 +1# +#63233000 +0# +#63251500 +1# +#63270000 +0# +#63288500 +1# +#63307000 +0# +#63325500 +1# +#63344000 +0# +#63362500 +1# +#63381000 +0# +#63399500 +1# +#63418000 +0# +#63436500 +1# +#63455000 +0# +#63473500 +1# +#63492000 +0# +#63510500 +1# +#63529000 +0# +#63547500 +1# +#63566000 +0# +#63584500 +1# +#63603000 +0# +#63621500 +1# +#63640000 +0# +#63658500 +1# +#63677000 +0# +#63695500 +1# +#63714000 +0# +#63732500 +1# +#63751000 +0# +#63769500 +1# +#63788000 +0# +#63806500 +1# +#63825000 +0# +#63843500 +1# +#63862000 +0# +#63880500 +1# +#63899000 +0# +#63917500 +1# +#63936000 +0# +#63954500 +1# +#63973000 +0# +#63991500 +1# +#64010000 +0# +#64028500 +1# +#64047000 +0# +#64065500 +1# +#64084000 +0# +#64102500 +1# +#64121000 +0# +#64139500 +1# +#64158000 +0# +#64176500 +1# +#64195000 +0# +#64213500 +1# +#64232000 +0# +#64250500 +1# +#64269000 +0# +#64287500 +1# +#64306000 +0# +#64324500 +1# +#64343000 +0# +#64361500 +1# +#64380000 +0# +#64398500 +1# +#64417000 +0# +#64435500 +1# +#64454000 +0# +#64472500 +1# +#64491000 +0# +#64509500 +1# +#64528000 +0# +#64546500 +1# +#64565000 +0# +#64583500 +1# +#64602000 +0# +#64620500 +1# +#64639000 +0# +#64657500 +1# +#64676000 +0# +#64694500 +1# +#64713000 +0# +#64731500 +1# +#64750000 +0# +#64768500 +1# +#64787000 +0# +#64805500 +1# +#64824000 +0# +#64842500 +1# +#64861000 +0# +#64879500 +1# +#64898000 +0# +#64916500 +1# +#64935000 +0# +#64953500 +1# +#64972000 +0# +#64990500 +1# +#65009000 +0# +#65027500 +1# +#65046000 +0# +#65064500 +1# +#65083000 +0# +#65101500 +1# +#65120000 +0# +#65138500 +1# +#65157000 +0# +#65175500 +1# diff --git a/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led_tb.vvp b/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led_tb.vvp new file mode 100644 index 0000000..b0099e8 --- /dev/null +++ b/Semaine 1/Capteur_recule_bidirectionel/top_ultrasonic_led_tb.vvp @@ -0,0 +1,335 @@ +#! +:ivl_version "13.0 (devel)" "(s20250103-31-g7e238e7ca-dirty)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision - 12; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\system.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\vhdl_sys.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\vhdl_textio.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\v2005_math.vpi"; +:vpi_module "C:\Users\louis\BUT2\Verilog\OSS-CA~1\lib\ivl\va_math.vpi"; +S_0000016babb102e0 .scope module, "tb_top_ultrasonic_led" "tb_top_ultrasonic_led" 2 3; + .timescale -9 -12; +v0000016babb7abc0_0 .var "clk", 0 0; +v0000016babb7ada0_0 .var "echo", 0 0; +v0000016babb7a580_0 .net "leds", 5 0, v0000016babb0e8e0_0; 1 drivers +v0000016babb7a260_0 .var "rst", 0 0; +v0000016babb7a620_0 .var "start", 0 0; +v0000016babb7a760_0 .net "trig", 0 0, v0000016babb7a120_0; 1 drivers +E_0000016babb0c2a0 .event posedge, v0000016babb7a4e0_0; +E_0000016babb0c320 .event anyedge, v0000016babb7a120_0; +S_0000016babae6610 .scope module, "uut" "top_ultrasonic_led" 2 13, 3 1 0, S_0000016babb102e0; + .timescale 0 0; + .port_info 0 /INPUT 1 "clk"; + .port_info 1 /INPUT 1 "rst"; + .port_info 2 /INPUT 1 "start"; + .port_info 3 /INPUT 1 "echo"; + .port_info 4 /OUTPUT 1 "trig"; + .port_info 5 /OUTPUT 6 "leds"; +v0000016babb7ab20_0 .net "clk", 0 0, v0000016babb7abc0_0; 1 drivers +v0000016babb7af80_0 .net "distance", 8 0, v0000016babb7a440_0; 1 drivers +v0000016babb7a6c0_0 .net "echo", 0 0, v0000016babb7ada0_0; 1 drivers +v0000016babb7a800_0 .net "leds", 5 0, v0000016babb0e8e0_0; alias, 1 drivers +v0000016babb7ac60_0 .net "rst", 0 0, v0000016babb7a260_0; 1 drivers +v0000016babb7a9e0_0 .net "start", 0 0, v0000016babb7a620_0; 1 drivers +v0000016babb7aa80_0 .net "trig", 0 0, v0000016babb7a120_0; alias, 1 drivers +S_0000016babae67a0 .scope module, "led_display_inst" "distance_display_led" 3 23, 4 1 0, S_0000016babae6610; + .timescale 0 0; + .port_info 0 /INPUT 9 "distance"; + .port_info 1 /OUTPUT 6 "leds"; +P_0000016babae6930 .param/l "LEVELS" 0 4 9, +C4<00000000000000000000000000000101>; +P_0000016babae6968 .param/l "MAX_DIST" 0 4 8, +C4<00000000000000000000000101011101>; +P_0000016babae69a0 .param/l "MIN_DIST" 0 4 7, +C4<00000000000000000000000000000010>; +P_0000016babae69d8 .param/l "PART_SIZE" 0 4 10, +C4<0000000000000000000000000001000101>; +v0000016babb0e7a0_0 .net "distance", 8 0, v0000016babb7a440_0; alias, 1 drivers +v0000016babb0e8e0_0 .var "leds", 5 0; +E_0000016babb1a860 .event anyedge, v0000016babb0e7a0_0; +S_0000016babb23200 .scope module, "ultrasonic_inst" "ultrasonic_fpga" 3 13, 5 1 0, S_0000016babae6610; + .timescale 0 0; + .port_info 0 /INPUT 1 "clk"; + .port_info 1 /INPUT 1 "rst"; + .port_info 2 /INPUT 1 "start"; + .port_info 3 /INPUT 1 "echo"; + .port_info 4 /OUTPUT 1 "trig_out"; + .port_info 5 /OUTPUT 9 "distance"; +P_0000016babb23390 .param/l "CLK_FREQ" 0 5 2, +C4<00000001100110111111110011000000>; +P_0000016babb233c8 .param/l "DIST_DIVISOR" 1 5 20, +C4<00000000000000000000011000011110>; +P_0000016babb23400 .param/l "DONE" 1 5 16, +C4<00000000000000000000000000000100>; +P_0000016babb23438 .param/l "IDLE" 1 5 16, +C4<00000000000000000000000000000000>; +P_0000016babb23470 .param/l "MEASURE_ECHO" 1 5 16, +C4<00000000000000000000000000000011>; +P_0000016babb234a8 .param/l "TRIG" 1 5 16, +C4<00000000000000000000000000000001>; +P_0000016babb234e0 .param/l "TRIG_DURATION_CYCLES" 1 5 19, +C4<00000000000000000000000100001110>; +P_0000016babb23518 .param/l "WAIT_ECHO" 1 5 16, +C4<00000000000000000000000000000010>; +v0000016babb7a4e0_0 .net "clk", 0 0, v0000016babb7abc0_0; alias, 1 drivers +v0000016babb7a440_0 .var "distance", 8 0; +v0000016babb7a080_0 .net "echo", 0 0, v0000016babb7ada0_0; alias, 1 drivers +v0000016babb7aee0_0 .var "echo_counter", 15 0; +v0000016babb7a940_0 .net "rst", 0 0, v0000016babb7a260_0; alias, 1 drivers +v0000016babb7a8a0_0 .net "start", 0 0, v0000016babb7a620_0; alias, 1 drivers +v0000016babb7a1c0_0 .var "state", 2 0; +v0000016babb7a3a0_0 .var "trig_counter", 8 0; +v0000016babb7a120_0 .var "trig_out", 0 0; +E_0000016babb1a8e0 .event posedge, v0000016babb7a940_0, v0000016babb7a4e0_0; + .scope S_0000016babb23200; +T_0 ; + %wait E_0000016babb1a8e0; + %load/vec4 v0000016babb7a940_0; + %flag_set/vec4 8; + %jmp/0xz T_0.0, 8; + %pushi/vec4 0, 0, 3; + %assign/vec4 v0000016babb7a1c0_0, 0; + %pushi/vec4 0, 0, 1; + %assign/vec4 v0000016babb7a120_0, 0; + %pushi/vec4 0, 0, 9; + %assign/vec4 v0000016babb7a3a0_0, 0; + %pushi/vec4 0, 0, 16; + %assign/vec4 v0000016babb7aee0_0, 0; + %pushi/vec4 0, 0, 9; + %assign/vec4 v0000016babb7a440_0, 0; + %jmp T_0.1; +T_0.0 ; + %load/vec4 v0000016babb7a1c0_0; + %dup/vec4; + %pushi/vec4 0, 0, 3; + %cmp/u; + %jmp/1 T_0.2, 6; + %dup/vec4; + %pushi/vec4 1, 0, 3; + %cmp/u; + %jmp/1 T_0.3, 6; + %dup/vec4; + %pushi/vec4 2, 0, 3; + %cmp/u; + %jmp/1 T_0.4, 6; + %dup/vec4; + %pushi/vec4 3, 0, 3; + %cmp/u; + %jmp/1 T_0.5, 6; + %dup/vec4; + %pushi/vec4 4, 0, 3; + %cmp/u; + %jmp/1 T_0.6, 6; + %jmp T_0.7; +T_0.2 ; + %load/vec4 v0000016babb7a8a0_0; + %flag_set/vec4 8; + %jmp/0xz T_0.8, 8; + %pushi/vec4 1, 0, 3; + %assign/vec4 v0000016babb7a1c0_0, 0; +T_0.8 ; + %jmp T_0.7; +T_0.3 ; + %load/vec4 v0000016babb7a3a0_0; + %pad/u 32; + %cmpi/u 270, 0, 32; + %jmp/0xz T_0.10, 5; + %pushi/vec4 1, 0, 1; + %assign/vec4 v0000016babb7a120_0, 0; + %load/vec4 v0000016babb7a3a0_0; + %addi 1, 0, 9; + %assign/vec4 v0000016babb7a3a0_0, 0; + %jmp T_0.11; +T_0.10 ; + %pushi/vec4 0, 0, 1; + %assign/vec4 v0000016babb7a120_0, 0; + %pushi/vec4 0, 0, 9; + %assign/vec4 v0000016babb7a3a0_0, 0; + %pushi/vec4 2, 0, 3; + %assign/vec4 v0000016babb7a1c0_0, 0; +T_0.11 ; + %jmp T_0.7; +T_0.4 ; + %load/vec4 v0000016babb7a080_0; + %flag_set/vec4 8; + %jmp/0xz T_0.12, 8; + %pushi/vec4 0, 0, 16; + %assign/vec4 v0000016babb7aee0_0, 0; + %pushi/vec4 3, 0, 3; + %assign/vec4 v0000016babb7a1c0_0, 0; +T_0.12 ; + %jmp T_0.7; +T_0.5 ; + %load/vec4 v0000016babb7a080_0; + %flag_set/vec4 8; + %jmp/0xz T_0.14, 8; + %load/vec4 v0000016babb7aee0_0; + %addi 1, 0, 16; + %assign/vec4 v0000016babb7aee0_0, 0; + %jmp T_0.15; +T_0.14 ; + %load/vec4 v0000016babb7aee0_0; + %pad/u 32; + %muli 1000, 0, 32; + %pushi/vec4 1566, 0, 32; + %div; + %pad/u 9; + %assign/vec4 v0000016babb7a440_0, 0; + %pushi/vec4 4, 0, 3; + %assign/vec4 v0000016babb7a1c0_0, 0; +T_0.15 ; + %jmp T_0.7; +T_0.6 ; + %pushi/vec4 0, 0, 3; + %assign/vec4 v0000016babb7a1c0_0, 0; + %jmp T_0.7; +T_0.7 ; + %pop/vec4 1; +T_0.1 ; + %jmp T_0; + .thread T_0; + .scope S_0000016babae67a0; +T_1 ; + %wait E_0000016babb1a860; + %load/vec4 v0000016babb0e7a0_0; + %pad/u 34; + %cmpi/u 2, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_1.0, 5; + %pushi/vec4 63, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; + %jmp T_1.1; +T_1.0 ; + %load/vec4 v0000016babb0e7a0_0; + %pad/u 34; + %cmpi/u 71, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_1.2, 5; + %pushi/vec4 62, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; + %jmp T_1.3; +T_1.2 ; + %load/vec4 v0000016babb0e7a0_0; + %pad/u 34; + %cmpi/u 140, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_1.4, 5; + %pushi/vec4 60, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; + %jmp T_1.5; +T_1.4 ; + %load/vec4 v0000016babb0e7a0_0; + %pad/u 34; + %cmpi/u 209, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_1.6, 5; + %pushi/vec4 56, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; + %jmp T_1.7; +T_1.6 ; + %load/vec4 v0000016babb0e7a0_0; + %pad/u 34; + %cmpi/u 278, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_1.8, 5; + %pushi/vec4 48, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; + %jmp T_1.9; +T_1.8 ; + %load/vec4 v0000016babb0e7a0_0; + %pad/u 34; + %cmpi/u 347, 0, 34; + %flag_or 5, 4; + %jmp/0xz T_1.10, 5; + %pushi/vec4 32, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; + %jmp T_1.11; +T_1.10 ; + %pushi/vec4 0, 0, 6; + %store/vec4 v0000016babb0e8e0_0, 0, 6; +T_1.11 ; +T_1.9 ; +T_1.7 ; +T_1.5 ; +T_1.3 ; +T_1.1 ; + %jmp T_1; + .thread T_1, $push; + .scope S_0000016babb102e0; +T_2 ; + %delay 18500, 0; + %load/vec4 v0000016babb7abc0_0; + %inv; + %store/vec4 v0000016babb7abc0_0, 0, 1; + %jmp T_2; + .thread T_2; + .scope S_0000016babb102e0; +T_3 ; + %vpi_call 2 26 "$dumpfile", "top_ultrasonic_led.vcd" {0 0 0}; + %vpi_call 2 27 "$dumpvars", 32'sb00000000000000000000000000000000, S_0000016babb102e0 {0 0 0}; + %pushi/vec4 0, 0, 1; + %store/vec4 v0000016babb7abc0_0, 0, 1; + %pushi/vec4 1, 0, 1; + %store/vec4 v0000016babb7a260_0, 0, 1; + %pushi/vec4 0, 0, 1; + %store/vec4 v0000016babb7a620_0, 0, 1; + %pushi/vec4 0, 0, 1; + %store/vec4 v0000016babb7ada0_0, 0, 1; + %delay 100000, 0; + %pushi/vec4 0, 0, 1; + %store/vec4 v0000016babb7a260_0, 0, 1; + %delay 50000, 0; + %pushi/vec4 1, 0, 1; + %store/vec4 v0000016babb7a620_0, 0, 1; + %delay 20000, 0; + %pushi/vec4 0, 0, 1; + %store/vec4 v0000016babb7a620_0, 0, 1; +T_3.0 ; + %load/vec4 v0000016babb7a760_0; + %pad/u 32; + %pushi/vec4 1, 0, 32; + %cmp/e; + %flag_get/vec4 4; + %cmpi/ne 1, 0, 1; + %jmp/0xz T_3.1, 6; + %wait E_0000016babb0c320; + %jmp T_3.0; +T_3.1 ; + %vpi_call 2 44 "$display", "TRIG HIGH at %t", $time {0 0 0}; +T_3.2 ; + %load/vec4 v0000016babb7a760_0; + %pad/u 32; + %pushi/vec4 0, 0, 32; + %cmp/e; + %flag_get/vec4 4; + %cmpi/ne 1, 0, 1; + %jmp/0xz T_3.3, 6; + %wait E_0000016babb0c320; + %jmp T_3.2; +T_3.3 ; + %vpi_call 2 46 "$display", "TRIG LOW at %t", $time {0 0 0}; + %pushi/vec4 500, 0, 32; +T_3.4 %dup/vec4; + %cmpi/s 0, 0, 32; + %jmp/1xz T_3.5, 5; + %jmp/1 T_3.5, 4; + %subi 1, 0, 32; + %wait E_0000016babb0c2a0; + %jmp T_3.4; +T_3.5 ; + %pop/vec4 1; + %pushi/vec4 1, 0, 1; + %store/vec4 v0000016babb7ada0_0, 0, 1; + %delay 18000000, 0; + %pushi/vec4 0, 0, 1; + %store/vec4 v0000016babb7ada0_0, 0, 1; + %pushi/vec4 500, 0, 32; +T_3.6 %dup/vec4; + %cmpi/s 0, 0, 32; + %jmp/1xz T_3.7, 5; + %jmp/1 T_3.7, 4; + %subi 1, 0, 32; + %wait E_0000016babb0c2a0; + %jmp T_3.6; +T_3.7 ; + %pop/vec4 1; + %vpi_call 2 56 "$display", "LEDs allumer : %b", v0000016babb7a580_0 {0 0 0}; + %vpi_call 2 58 "$finish" {0 0 0}; + %end; + .thread T_3; +# The file index is used to find the file name in the following table. +:file_names 6; + "N/A"; + ""; + "tb_top_ultrasonic_led.v"; + "top_ultrasonic_led.v"; + "Distance_display_led/distance_display_led.v"; + "Ultrasonic/ultrasonic_fpga.v";