von
Tom (Gast)
01.08.2014 14:00
Hallo zusammen,
ich habe folgendes Problem: ich möchte in VHDL in Kombination mit einem
De0-Nano-Board einen Signalgenerator bauen. Dafür habe ich mir zunächst
die DDS-Lösungen von Lothar Miller angeguckt, dann aber doch etwas
umgebaut, da mir bei der DDS fehlt, dass man die Schrittauflösung nicht
einstellen kann.
Zunächst der Code:
1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3 use ieee . numeric_std . all ;
4
5
6 entity Generator_1 is
7 Generic ( Systemclock : integer : = 50000000 -- Hertz
8 );
9 port (
10 clk : in std_logic ; -- Systemclock (50 MHz)
11 microsteps : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- Anzahl der Schritte, in die die Wellenform unterteilt wird
12 cnt_check : in unsigned ( 31 downto 0 ) : = ( others => '0' );
13 run : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- 0 = steht, 1 = links, 2 = rechts
14
15 rechteck : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
16 saegezahn : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
17 sinus : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' )
18
19 );
20 end Generator_1 ;
21
22 architecture bhv of Generator_1 is
23 type sinus_array_t is array ( 0 to 4095 ) of integer range 0 to 4095 ;
24 constant sinus_array_c : sinus_array_t : =
25 ( 2048 , 2051 , 2054 , 2057 , 2060 , 2063 , 2066 , 2069 , 2073 , 2076 , 2079 , 2082 , 2085 , 2088 , 2091 , 2095 , 2098 , 2101 , 2104 , 2107 , 2110 , 2113 , 2117 , 2120 , 2123 , 2126 , 2129 , 2132 , 2135 , 2139 , 2142 , 2145 , 2148 , 2151 , 2154 , 2157 , 2161 , 2164 , 2167 , 2170 , 2173 , 2176 , 2179 , 2182 , 2186 , 2189 , 2192 , 2195 , 2198 , 2201 , 2204 , 2208 , 2211 , 2214 , 2217 , 2220 , 2223 , 2226 , 2229 , 2233 , 2236 , 2239 , 2242 , 2245 , 2248 , 2251 , 2254 , 2258 , 2261 , 2264 , 2267 , 2270 , 2273 , 2276 , 2279 , 2283 , 2286 , 2289 , 2292 , 2295 , 2298 , 2301 , 2304 , 2308 , 2311 , 2314 , 2317 , 2320 , 2323 , 2326 , 2329 , 2332 , 2336 , 2339 , 2342 , 2345 , 2348 , 2351 , 2354 , 2357 , 2360 , 2364 , 2367 , 2370 , 2373 , 2376 , 2379 , 2382 , 2385 , 2388 , 2391 , 2395 , 2398 , 2401 , 2404 , 2407 , 2410 , 2413 , 2416 , 2419 , 2422 , 2425 , 2429 , 2432 , 2435 , 2438 , 2441 , 2444 , 2447 , 2450 , 2453 , 2456 , 2459 , 2462 , 2466 , 2469 , 2472 , 2475 , 2478 , 2481 , 2484 , 2487 , 2490 , 2493 , 2496 , 2499 , 2502 , 2505 , 2508 , 2512 , 2515 , 2518 , 2521 , 2524 , 2527 , 2530 , 2533 , 2536 , 2539 , 2542 , 2545 , 2548 , 2551 , 2554 , 2557 , 2560 , 2563 , 2566 , 2569 , 2572 , 2576 , 2579 , 2582 , 2585 , 2588 , 2591 , 2594 , 2597 , 2600 , 2603 , 2606 , 2609 , 2612 , 2615 , 2618 , 2621 , 2624 , 2627 , 2630 , 2633 , 2636 , 2639 , 2642 , 2645 , 2648 , 2651 , 2654 , 2657 , 2660 , 2663 , 2666 , 2669 , 2672 , 2675 , 2678 , 2681 , 2684 , 2687 , 2690 , 2693 , 2696 , 2699 , 2702 , 2705 , 2708 , 2711 , 2714 , 2717 , 2720 , 2723 , 2726 , 2729 , 2732 , 2734 , 2737 , 2740 , 2743 , 2746 , 2749 , 2752 , 2755 , 2758 , 2761 , 2764 , 2767 , 2770 , 2773 , 2776 , 2779 , 2782 , 2785 , 2787 , 2790 , 2793 , 2796 , 2799 , 2802 , 2805 , 2808 , 2811 , 2814 , 2817 , 2820 , 2823 , 2825 , 2828 , 2831 , 2834 , 2837 , 2840 , 2843 , 2846 , 2849 , 2851 , 2854 , 2857 , 2860 , 2863 , 2866 , 2869 , 2872 , 2875 , 2877 , 2880 , 2883 , 2886 , 2889 , 2892 , 2895 , 2897 , 2900 , 2903 , 2906 , 2909 , 2912 , 2915 , 2917 , 2920 , 2923 , 2926 , 2929 , 2932 , 2934 , 2937 , 2940 , 2943 , 2946 , 2949 , 2951 , 2954 ,
26 2957 , 2960 , 2963 , 2965 , 2968 , 2971 , 2974 , 2977 , 2979 , 2982 , 2985 , 2988 , 2991 , 2993 , 2996 , 2999 , 3002 , 3005 , 3007 , 3010 , 3013 , 3016 , 3018 , 3021 , 3024 , 3027 , 3029 , 3032 , 3035 , 3038 , 3040 , 3043 , 3046 , 3049 , 3051 , 3054 , 3057 , 3060 , 3062 , 3065 , 3068 , 3071 , 3073 , 3076 , 3079 , 3081 , 3084 , 3087 , 3090 , 3092 , 3095 , 3098 , 3100 , 3103 , 3106 , 3108 , 3111 , 3114 , 3116 , 3119 , 3122 , 3125 , 3127 , 3130 , 3133 , 3135 , 3138 , 3140 , 3143 , 3146 , 3148 , 3151 , 3154 , 3156 , 3159 , 3162 , 3164 , 3167 , 3170 , 3172 , 3175 , 3177 , 3180 , 3183 , 3185 , 3188 , 3190 , 3193 , 3196 , 3198 , 3201 , 3203 , 3206 , 3209 , 3211 , 3214 , 3216 , 3219 , 3222 , 3224 , 3227 , 3229 , 3232 , 3234 , 3237 , 3240 , 3242 , 3245 , 3247 , 3250 , 3252 , 3255 , 3257 , 3260 , 3262 , 3265 , 3267 , 3270 , 3272 , 3275 , 3278 , 3280 , 3283 , 3285 , 3288 , 3290 , 3293 , 3295 , 3298 , 3300 , 3302 , 3305 , 3307 , 3310 , 3312 , 3315 , 3317 , 3320 , 3322 , 3325 , 3327 , 3330 , 3332 , 3335 , 3337 , 3339 , 3342 , 3344 , 3347 , 3349 , 3352 , 3354 , 3356 , 3359 , 3361 , 3364 , 3366 , 3368 , 3371 , 3373 , 3376 , 3378 , 3380 , 3383 , 3385 , 3388 , 3390 , 3392 , 3395 , 3397 , 3399 , 3402 , 3404 , 3406 , 3409 , 3411 , 3413 , 3416 , 3418 , 3420 , 3423 , 3425 , 3427 , 3430 , 3432 , 3434 , 3437 , 3439 , 3441 , 3444 , 3446 , 3448 , 3450 , 3453 , 3455 , 3457 , 3460 , 3462 , 3464 , 3466 , 3469 , 3471 , 3473 , 3475 , 3478 , 3480 , 3482 , 3484 , 3487 , 3489 , 3491 , 3493 , 3496 , 3498 , 3500 , 3502 , 3504 , 3507 , 3509 , 3511 , 3513 , 3515 , 3518 , 3520 , 3522 , 3524 , 3526 , 3529 , 3531 , 3533 , 3535 , 3537 , 3539 , 3541 , 3544 , 3546 , 3548 , 3550 , 3552 , 3554 , 3556 , 3559 , 3561 , 3563 , 3565 , 3567 , 3569 , 3571 , 3573 , 3575 , 3577 , 3580 , 3582 , 3584 , 3586 , 3588 , 3590 , 3592 , 3594 , 3596 , 3598 , 3600 , 3602 , 3604 , 3606 , 3608 , 3610 , 3612 , 3614 , 3616 , 3618 , 3621 , 3623 , 3625 , 3627 , 3629 , 3631 , 3633 , 3634 , 3636 , 3638 , 3640 , 3642 , 3644 , 3646 , 3648 , 3650 , 3652 , 3654 , 3656 , 3658 , 3660 , 3662 , 3664 , 3666 , 3668 , 3670 , 3672 , 3673 , 3675 ,
27 3677 , 3679 , 3681 , 3683 , 3685 , 3687 , 3689 , 3690 , 3692 , 3694 , 3696 , 3698 , 3700 , 3702 , 3704 , 3705 , 3707 , 3709 , 3711 , 3713 , 3715 , 3716 , 3718 , 3720 , 3722 , 3724 , 3725 , 3727 , 3729 , 3731 , 3733 , 3734 , 3736 , 3738 , 3740 , 3741 , 3743 , 3745 , 3747 , 3748 , 3750 , 3752 , 3754 , 3755 , 3757 , 3759 , 3761 , 3762 , 3764 , 3766 , 3767 , 3769 , 3771 , 3773 , 3774 , 3776 , 3778 , 3779 , 3781 , 3783 , 3784 , 3786 , 3788 , 3789 , 3791 , 3793 , 3794 , 3796 , 3797 , 3799 , 3801 , 3802 , 3804 , 3806 , 3807 , 3809 , 3810 , 3812 , 3814 , 3815 , 3817 , 3818 , 3820 , 3821 , 3823 , 3825 , 3826 , 3828 , 3829 , 3831 , 3832 , 3834 , 3835 , 3837 , 3838 , 3840 , 3842 , 3843 , 3845 , 3846 , 3848 , 3849 , 3851 , 3852 , 3853 , 3855 , 3856 , 3858 , 3859 , 3861 , 3862 , 3864 , 3865 , 3867 , 3868 , 3870 , 3871 , 3872 , 3874 , 3875 , 3877 , 3878 , 3879 , 3881 , 3882 , 3884 , 3885 , 3886 , 3888 , 3889 , 3891 , 3892 , 3893 , 3895 , 3896 , 3897 , 3899 , 3900 , 3901 , 3903 , 3904 , 3905 , 3907 , 3908 , 3909 , 3911 , 3912 , 3913 , 3914 , 3916 , 3917 , 3918 , 3920 , 3921 , 3922 , 3923 , 3925 , 3926 , 3927 , 3928 , 3930 , 3931 , 3932 , 3933 , 3935 , 3936 , 3937 , 3938 , 3939 , 3941 , 3942 , 3943 , 3944 , 3945 , 3946 , 3948 , 3949 , 3950 , 3951 , 3952 , 3953 , 3955 , 3956 , 3957 , 3958 , 3959 , 3960 , 3961 , 3963 , 3964 , 3965 , 3966 , 3967 , 3968 , 3969 , 3970 , 3971 , 3972 , 3973 , 3974 , 3976 , 3977 , 3978 , 3979 , 3980 , 3981 , 3982 , 3983 , 3984 , 3985 , 3986 , 3987 , 3988 , 3989 , 3990 , 3991 , 3992 , 3993 , 3994 , 3995 , 3996 , 3997 , 3998 , 3999 , 4000 , 4001 , 4001 , 4002 , 4003 , 4004 , 4005 , 4006 , 4007 , 4008 , 4009 , 4010 , 4011 , 4012 , 4012 , 4013 , 4014 , 4015 , 4016 , 4017 , 4018 , 4018 , 4019 , 4020 , 4021 , 4022 , 4023 , 4023 , 4024 , 4025 , 4026 , 4027 , 4028 , 4028 , 4029 , 4030 , 4031 , 4031 , 4032 , 4033 , 4034 , 4035 , 4035 , 4036 , 4037 , 4038 , 4038 , 4039 , 4040 , 4040 , 4041 , 4042 , 4043 , 4043 , 4044 , 4045 , 4045 , 4046 , 4047 , 4047 , 4048 , 4049 , 4049 , 4050 , 4051 , 4051 , 4052 , 4053 , 4053 , 4054 , 4055 , 4055 , 4056 , 4056 , 4057 , 4058 ,
28 4058 , 4059 , 4059 , 4060 , 4061 , 4061 , 4062 , 4062 , 4063 , 4063 , 4064 , 4064 , 4065 , 4066 , 4066 , 4067 , 4067 , 4068 , 4068 , 4069 , 4069 , 4070 , 4070 , 4071 , 4071 , 4072 , 4072 , 4072 , 4073 , 4073 , 4074 , 4074 , 4075 , 4075 , 4076 , 4076 , 4076 , 4077 , 4077 , 4078 , 4078 , 4079 , 4079 , 4079 , 4080 , 4080 , 4080 , 4081 , 4081 , 4082 , 4082 , 4082 , 4083 , 4083 , 4083 , 4084 , 4084 , 4084 , 4085 , 4085 , 4085 , 4086 , 4086 , 4086 , 4086 , 4087 , 4087 , 4087 , 4088 , 4088 , 4088 , 4088 , 4089 , 4089 , 4089 , 4089 , 4090 , 4090 , 4090 , 4090 , 4090 , 4091 , 4091 , 4091 , 4091 , 4091 , 4092 , 4092 , 4092 , 4092 , 4092 , 4092 , 4093 , 4093 , 4093 , 4093 , 4093 , 4093 , 4093 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4095 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4094 , 4093 , 4093 , 4093 , 4093 , 4093 , 4093 , 4093 , 4092 , 4092 , 4092 , 4092 , 4092 , 4092 , 4091 , 4091 , 4091 , 4091 , 4091 , 4090 , 4090 , 4090 , 4090 , 4090 , 4089 , 4089 , 4089 , 4089 , 4088 , 4088 , 4088 , 4088 , 4087 , 4087 , 4087 , 4087 , 4086 , 4086 , 4086 , 4085 , 4085 , 4085 , 4084 , 4084 , 4084 , 4083 , 4083 , 4083 , 4082 , 4082 , 4082 , 4081 , 4081 , 4081 , 4080 , 4080 , 4079 , 4079 , 4079 , 4078 , 4078 , 4078 , 4077 , 4077 , 4076 , 4076 , 4075 , 4075 , 4075 , 4074 , 4074 , 4073 , 4073 , 4072 , 4072 , 4071 , 4071 , 4070 , 4070 , 4069 , 4069 , 4068 , 4068 , 4067 , 4067 , 4066 , 4066 , 4065 , 4065 , 4064 , 4064 , 4063 , 4063 , 4062 , 4061 , 4061 , 4060 , 4060 , 4059 , 4058 , 4058 , 4057 , 4057 , 4056 , 4055 , 4055 , 4054 , 4054 , 4053 , 4052 , 4052 , 4051 , 4050 , 4050 , 4049 , 4048 , 4048 , 4047 , 4046 , 4046 , 4045 , 4044 , 4044 , 4043 , 4042 , 4042 , 4041 , 4040 , 4039 , 4039 , 4038 , 4037 , 4036 , 4036 , 4035 , 4034 , 4033 , 4033 , 4032 , 4031 , 4030 , 4030 , 4029 , 4028 , 4027 , 4026 , 4026 , 4025 , 4024 , 4023 , 4022 , 4021 ,
29 4021 , 4020 , 4019 , 4018 , 4017 , 4016 , 4015 , 4015 , 4014 , 4013 , 4012 , 4011 , 4010 , 4009 , 4008 , 4007 , 4007 , 4006 , 4005 , 4004 , 4003 , 4002 , 4001 , 4000 , 3999 , 3998 , 3997 , 3996 , 3995 , 3994 , 3993 , 3992 , 3991 , 3990 , 3989 , 3988 , 3987 , 3986 , 3985 , 3984 , 3983 , 3982 , 3981 , 3980 , 3979 , 3978 , 3977 , 3976 , 3975 , 3974 , 3973 , 3972 , 3971 , 3970 , 3969 , 3967 , 3966 , 3965 , 3964 , 3963 , 3962 , 3961 , 3960 , 3959 , 3957 , 3956 , 3955 , 3954 , 3953 , 3952 , 3951 , 3949 , 3948 , 3947 , 3946 , 3945 , 3944 , 3942 , 3941 , 3940 , 3939 , 3938 , 3936 , 3935 , 3934 , 3933 , 3931 , 3930 , 3929 , 3928 , 3927 , 3925 , 3924 , 3923 , 3921 , 3920 , 3919 , 3918 , 3916 , 3915 , 3914 , 3913 , 3911 , 3910 , 3909 , 3907 , 3906 , 3905 , 3903 , 3902 , 3901 , 3899 , 3898 , 3897 , 3895 , 3894 , 3893 , 3891 , 3890 , 3888 , 3887 , 3886 , 3884 , 3883 , 3882 , 3880 , 3879 , 3877 , 3876 , 3875 , 3873 , 3872 , 3870 , 3869 , 3867 , 3866 , 3864 , 3863 , 3862 , 3860 , 3859 , 3857 , 3856 , 3854 , 3853 , 3851 , 3850 , 3848 , 3847 , 3845 , 3844 , 3842 , 3841 , 3839 , 3838 , 3836 , 3835 , 3833 , 3832 , 3830 , 3828 , 3827 , 3825 , 3824 , 3822 , 3821 , 3819 , 3818 , 3816 , 3814 , 3813 , 3811 , 3810 , 3808 , 3806 , 3805 , 3803 , 3802 , 3800 , 3798 , 3797 , 3795 , 3793 , 3792 , 3790 , 3788 , 3787 , 3785 , 3783 , 3782 , 3780 , 3778 , 3777 , 3775 , 3773 , 3772 , 3770 , 3768 , 3767 , 3765 , 3763 , 3761 , 3760 , 3758 , 3756 , 3755 , 3753 , 3751 , 3749 , 3748 , 3746 , 3744 , 3742 , 3741 , 3739 , 3737 , 3735 , 3733 , 3732 , 3730 , 3728 , 3726 , 3724 , 3723 , 3721 , 3719 , 3717 , 3715 , 3714 , 3712 , 3710 , 3708 , 3706 , 3704 , 3703 , 3701 , 3699 , 3697 , 3695 , 3693 , 3691 , 3690 , 3688 , 3686 , 3684 , 3682 , 3680 , 3678 , 3676 , 3674 , 3672 , 3671 , 3669 , 3667 , 3665 , 3663 , 3661 , 3659 , 3657 , 3655 , 3653 , 3651 , 3649 , 3647 , 3645 , 3643 , 3641 , 3639 , 3637 , 3635 , 3634 , 3632 , 3630 , 3628 , 3626 , 3624 , 3622 , 3620 , 3617 , 3615 , 3613 , 3611 , 3609 , 3607 , 3605 , 3603 , 3601 , 3599 , 3597 , 3595 , 3593 , 3591 , 3589 , 3587 , 3585 , 3583 , 3581 , 3579 , 3576 , 3574 ,
30 3572 , 3570 , 3568 , 3566 , 3564 , 3562 , 3560 , 3557 , 3555 , 3553 , 3551 , 3549 , 3547 , 3545 , 3543 , 3540 , 3538 , 3536 , 3534 , 3532 , 3530 , 3527 , 3525 , 3523 , 3521 , 3519 , 3517 , 3514 , 3512 , 3510 , 3508 , 3506 , 3503 , 3501 , 3499 , 3497 , 3494 , 3492 , 3490 , 3488 , 3486 , 3483 , 3481 , 3479 , 3477 , 3474 , 3472 , 3470 , 3468 , 3465 , 3463 , 3461 , 3458 , 3456 , 3454 , 3452 , 3449 , 3447 , 3445 , 3442 , 3440 , 3438 , 3436 , 3433 , 3431 , 3429 , 3426 , 3424 , 3422 , 3419 , 3417 , 3415 , 3412 , 3410 , 3408 , 3405 , 3403 , 3401 , 3398 , 3396 , 3393 , 3391 , 3389 , 3386 , 3384 , 3382 , 3379 , 3377 , 3374 , 3372 , 3370 , 3367 , 3365 , 3362 , 3360 , 3358 , 3355 , 3353 , 3350 , 3348 , 3345 , 3343 , 3341 , 3338 , 3336 , 3333 , 3331 , 3328 , 3326 , 3323 , 3321 , 3319 , 3316 , 3314 , 3311 , 3309 , 3306 , 3304 , 3301 , 3299 , 3296 , 3294 , 3291 , 3289 , 3286 , 3284 , 3281 , 3279 , 3276 , 3274 , 3271 , 3269 , 3266 , 3264 , 3261 , 3259 , 3256 , 3254 , 3251 , 3248 , 3246 , 3243 , 3241 , 3238 , 3236 , 3233 , 3231 , 3228 , 3225 , 3223 , 3220 , 3218 , 3215 , 3213 , 3210 , 3207 , 3205 , 3202 , 3200 , 3197 , 3194 , 3192 , 3189 , 3187 , 3184 , 3181 , 3179 , 3176 , 3173 , 3171 , 3168 , 3166 , 3163 , 3160 , 3158 , 3155 , 3152 , 3150 , 3147 , 3144 , 3142 , 3139 , 3137 , 3134 , 3131 , 3129 , 3126 , 3123 , 3120 , 3118 , 3115 , 3112 , 3110 , 3107 , 3104 , 3102 , 3099 , 3096 , 3094 , 3091 , 3088 , 3086 , 3083 , 3080 , 3077 , 3075 , 3072 , 3069 , 3066 , 3064 , 3061 , 3058 , 3056 , 3053 , 3050 , 3047 , 3045 , 3042 , 3039 , 3036 , 3034 , 3031 , 3028 , 3025 , 3023 , 3020 , 3017 , 3014 , 3012 , 3009 , 3006 , 3003 , 3000 , 2998 , 2995 , 2992 , 2989 , 2986 , 2984 , 2981 , 2978 , 2975 , 2972 , 2970 , 2967 , 2964 , 2961 , 2958 , 2956 , 2953 , 2950 , 2947 , 2944 , 2942 , 2939 , 2936 , 2933 , 2930 , 2927 , 2925 , 2922 , 2919 , 2916 , 2913 , 2910 , 2907 , 2905 , 2902 , 2899 , 2896 , 2893 , 2890 , 2887 , 2885 , 2882 , 2879 , 2876 , 2873 , 2870 , 2867 , 2864 , 2862 , 2859 , 2856 , 2853 , 2850 , 2847 , 2844 , 2841 , 2838 , 2836 , 2833 , 2830 , 2827 , 2824 , 2821 , 2818 , 2815 , 2812 , 2809 ,
31 2806 , 2804 , 2801 , 2798 , 2795 , 2792 , 2789 , 2786 , 2783 , 2780 , 2777 , 2774 , 2771 , 2768 , 2765 , 2763 , 2760 , 2757 , 2754 , 2751 , 2748 , 2745 , 2742 , 2739 , 2736 , 2733 , 2730 , 2727 , 2724 , 2721 , 2718 , 2715 , 2712 , 2709 , 2706 , 2703 , 2700 , 2697 , 2694 , 2691 , 2688 , 2685 , 2682 , 2679 , 2676 , 2673 , 2670 , 2668 , 2665 , 2662 , 2659 , 2656 , 2653 , 2650 , 2647 , 2644 , 2640 , 2637 , 2634 , 2631 , 2628 , 2625 , 2622 , 2619 , 2616 , 2613 , 2610 , 2607 , 2604 , 2601 , 2598 , 2595 , 2592 , 2589 , 2586 , 2583 , 2580 , 2577 , 2574 , 2571 , 2568 , 2565 , 2562 , 2559 , 2556 , 2553 , 2550 , 2547 , 2544 , 2541 , 2537 , 2534 , 2531 , 2528 , 2525 , 2522 , 2519 , 2516 , 2513 , 2510 , 2507 , 2504 , 2501 , 2498 , 2495 , 2492 , 2489 , 2485 , 2482 , 2479 , 2476 , 2473 , 2470 , 2467 , 2464 , 2461 , 2458 , 2455 , 2452 , 2449 , 2446 , 2442 , 2439 , 2436 , 2433 , 2430 , 2427 , 2424 , 2421 , 2418 , 2415 , 2412 , 2408 , 2405 , 2402 , 2399 , 2396 , 2393 , 2390 , 2387 , 2384 , 2381 , 2377 , 2374 , 2371 , 2368 , 2365 , 2362 , 2359 , 2356 , 2353 , 2350 , 2346 , 2343 , 2340 , 2337 , 2334 , 2331 , 2328 , 2325 , 2322 , 2318 , 2315 , 2312 , 2309 , 2306 , 2303 , 2300 , 2297 , 2294 , 2290 , 2287 , 2284 , 2281 , 2278 , 2275 , 2272 , 2269 , 2265 , 2262 , 2259 , 2256 , 2253 , 2250 , 2247 , 2244 , 2240 , 2237 , 2234 , 2231 , 2228 , 2225 , 2222 , 2219 , 2215 , 2212 , 2209 , 2206 , 2203 , 2200 , 2197 , 2193 , 2190 , 2187 , 2184 , 2181 , 2178 , 2175 , 2172 , 2168 , 2165 , 2162 , 2159 , 2156 , 2153 , 2150 , 2146 , 2143 , 2140 , 2137 , 2134 , 2131 , 2128 , 2124 , 2121 , 2118 , 2115 , 2112 , 2109 , 2106 , 2102 , 2099 , 2096 , 2093 , 2090 , 2087 , 2084 , 2080 , 2077 , 2074 , 2071 , 2068 , 2065 , 2062 , 2058 , 2055 , 2052 , 2049 , 2046 , 2043 , 2040 , 2037 , 2033 , 2030 , 2027 , 2024 , 2021 , 2018 , 2015 , 2011 , 2008 , 2005 , 2002 , 1999 , 1996 , 1993 , 1989 , 1986 , 1983 , 1980 , 1977 , 1974 , 1971 , 1967 , 1964 , 1961 , 1958 , 1955 , 1952 , 1949 , 1945 , 1942 , 1939 , 1936 , 1933 , 1930 , 1927 , 1923 , 1920 , 1917 , 1914 , 1911 , 1908 , 1905 , 1902 , 1898 , 1895 , 1892 , 1889 , 1886 ,
32 1883 , 1880 , 1876 , 1873 , 1870 , 1867 , 1864 , 1861 , 1858 , 1855 , 1851 , 1848 , 1845 , 1842 , 1839 , 1836 , 1833 , 1830 , 1826 , 1823 , 1820 , 1817 , 1814 , 1811 , 1808 , 1805 , 1801 , 1798 , 1795 , 1792 , 1789 , 1786 , 1783 , 1780 , 1777 , 1773 , 1770 , 1767 , 1764 , 1761 , 1758 , 1755 , 1752 , 1749 , 1745 , 1742 , 1739 , 1736 , 1733 , 1730 , 1727 , 1724 , 1721 , 1718 , 1714 , 1711 , 1708 , 1705 , 1702 , 1699 , 1696 , 1693 , 1690 , 1687 , 1683 , 1680 , 1677 , 1674 , 1671 , 1668 , 1665 , 1662 , 1659 , 1656 , 1653 , 1649 , 1646 , 1643 , 1640 , 1637 , 1634 , 1631 , 1628 , 1625 , 1622 , 1619 , 1616 , 1613 , 1610 , 1606 , 1603 , 1600 , 1597 , 1594 , 1591 , 1588 , 1585 , 1582 , 1579 , 1576 , 1573 , 1570 , 1567 , 1564 , 1561 , 1558 , 1554 , 1551 , 1548 , 1545 , 1542 , 1539 , 1536 , 1533 , 1530 , 1527 , 1524 , 1521 , 1518 , 1515 , 1512 , 1509 , 1506 , 1503 , 1500 , 1497 , 1494 , 1491 , 1488 , 1485 , 1482 , 1479 , 1476 , 1473 , 1470 , 1467 , 1464 , 1461 , 1458 , 1455 , 1451 , 1448 , 1445 , 1442 , 1439 , 1436 , 1433 , 1430 , 1427 , 1425 , 1422 , 1419 , 1416 , 1413 , 1410 , 1407 , 1404 , 1401 , 1398 , 1395 , 1392 , 1389 , 1386 , 1383 , 1380 , 1377 , 1374 , 1371 , 1368 , 1365 , 1362 , 1359 , 1356 , 1353 , 1350 , 1347 , 1344 , 1341 , 1338 , 1335 , 1332 , 1330 , 1327 , 1324 , 1321 , 1318 , 1315 , 1312 , 1309 , 1306 , 1303 , 1300 , 1297 , 1294 , 1291 , 1289 , 1286 , 1283 , 1280 , 1277 , 1274 , 1271 , 1268 , 1265 , 1262 , 1259 , 1257 , 1254 , 1251 , 1248 , 1245 , 1242 , 1239 , 1236 , 1233 , 1231 , 1228 , 1225 , 1222 , 1219 , 1216 , 1213 , 1210 , 1208 , 1205 , 1202 , 1199 , 1196 , 1193 , 1190 , 1188 , 1185 , 1182 , 1179 , 1176 , 1173 , 1170 , 1168 , 1165 , 1162 , 1159 , 1156 , 1153 , 1151 , 1148 , 1145 , 1142 , 1139 , 1137 , 1134 , 1131 , 1128 , 1125 , 1123 , 1120 , 1117 , 1114 , 1111 , 1109 , 1106 , 1103 , 1100 , 1097 , 1095 , 1092 , 1089 , 1086 , 1083 , 1081 , 1078 , 1075 , 1072 , 1070 , 1067 , 1064 , 1061 , 1059 , 1056 , 1053 , 1050 , 1048 , 1045 , 1042 , 1039 , 1037 , 1034 , 1031 , 1029 , 1026 , 1023 , 1020 , 1018 , 1015 , 1012 , 1009 , 1007 , 1004 , 1001 , 999 , 996 ,
33 993 , 991 , 988 , 985 , 983 , 980 , 977 , 975 , 972 , 969 , 966 , 964 , 961 , 958 , 956 , 953 , 951 , 948 , 945 , 943 , 940 , 937 , 935 , 932 , 929 , 927 , 924 , 922 , 919 , 916 , 914 , 911 , 908 , 906 , 903 , 901 , 898 , 895 , 893 , 890 , 888 , 885 , 882 , 880 , 877 , 875 , 872 , 870 , 867 , 864 , 862 , 859 , 857 , 854 , 852 , 849 , 847 , 844 , 841 , 839 , 836 , 834 , 831 , 829 , 826 , 824 , 821 , 819 , 816 , 814 , 811 , 809 , 806 , 804 , 801 , 799 , 796 , 794 , 791 , 789 , 786 , 784 , 781 , 779 , 776 , 774 , 772 , 769 , 767 , 764 , 762 , 759 , 757 , 754 , 752 , 750 , 747 , 745 , 742 , 740 , 737 , 735 , 733 , 730 , 728 , 725 , 723 , 721 , 718 , 716 , 713 , 711 , 709 , 706 , 704 , 702 , 699 , 697 , 694 , 692 , 690 , 687 , 685 , 683 , 680 , 678 , 676 , 673 , 671 , 669 , 666 , 664 , 662 , 659 , 657 , 655 , 653 , 650 , 648 , 646 , 643 , 641 , 639 , 637 , 634 , 632 , 630 , 627 , 625 , 623 , 621 , 618 , 616 , 614 , 612 , 609 , 607 , 605 , 603 , 601 , 598 , 596 , 594 , 592 , 589 , 587 , 585 , 583 , 581 , 578 , 576 , 574 , 572 , 570 , 568 , 565 , 563 , 561 , 559 , 557 , 555 , 552 , 550 , 548 , 546 , 544 , 542 , 540 , 538 , 535 , 533 , 531 , 529 , 527 , 525 , 523 , 521 , 519 , 516 , 514 , 512 , 510 , 508 , 506 , 504 , 502 , 500 , 498 , 496 , 494 , 492 , 490 , 488 , 486 , 484 , 482 , 480 , 478 , 475 , 473 , 471 , 469 , 467 , 465 , 463 , 461 , 460 , 458 , 456 , 454 , 452 , 450 , 448 , 446 , 444 , 442 , 440 , 438 , 436 , 434 , 432 , 430 , 428 , 426 , 424 , 423 , 421 , 419 , 417 , 415 , 413 , 411 , 409 , 407 , 405 , 404 , 402 , 400 , 398 , 396 , 394 , 392 , 391 , 389 , 387 , 385 , 383 , 381 , 380 , 378 , 376 , 374 , 372 , 371 , 369 , 367 , 365 , 363 , 362 , 360 , 358 , 356 , 354 , 353 , 351 , 349 , 347 , 346 , 344 , 342 , 340 , 339 , 337 , 335 , 334 , 332 , 330 , 328 , 327 , 325 ,
34 323 , 322 , 320 , 318 , 317 , 315 , 313 , 312 , 310 , 308 , 307 , 305 , 303 , 302 , 300 , 298 , 297 , 295 , 293 , 292 , 290 , 289 , 287 , 285 , 284 , 282 , 281 , 279 , 277 , 276 , 274 , 273 , 271 , 270 , 268 , 267 , 265 , 263 , 262 , 260 , 259 , 257 , 256 , 254 , 253 , 251 , 250 , 248 , 247 , 245 , 244 , 242 , 241 , 239 , 238 , 236 , 235 , 233 , 232 , 231 , 229 , 228 , 226 , 225 , 223 , 222 , 220 , 219 , 218 , 216 , 215 , 213 , 212 , 211 , 209 , 208 , 207 , 205 , 204 , 202 , 201 , 200 , 198 , 197 , 196 , 194 , 193 , 192 , 190 , 189 , 188 , 186 , 185 , 184 , 182 , 181 , 180 , 179 , 177 , 176 , 175 , 174 , 172 , 171 , 170 , 168 , 167 , 166 , 165 , 164 , 162 , 161 , 160 , 159 , 157 , 156 , 155 , 154 , 153 , 151 , 150 , 149 , 148 , 147 , 146 , 144 , 143 , 142 , 141 , 140 , 139 , 138 , 136 , 135 , 134 , 133 , 132 , 131 , 130 , 129 , 128 , 126 , 125 , 124 , 123 , 122 , 121 , 120 , 119 , 118 , 117 , 116 , 115 , 114 , 113 , 112 , 111 , 110 , 109 , 108 , 107 , 106 , 105 , 104 , 103 , 102 , 101 , 100 , 99 , 98 , 97 , 96 , 95 , 94 , 93 , 92 , 91 , 90 , 89 , 88 , 88 , 87 , 86 , 85 , 84 , 83 , 82 , 81 , 80 , 80 , 79 , 78 , 77 , 76 , 75 , 74 , 74 , 73 , 72 , 71 , 70 , 69 , 69 , 68 , 67 , 66 , 65 , 65 , 64 , 63 , 62 , 62 , 61 , 60 , 59 , 59 , 58 , 57 , 56 , 56 , 55 , 54 , 53 , 53 , 52 , 51 , 51 , 50 , 49 , 49 , 48 , 47 , 47 , 46 , 45 , 45 , 44 , 43 , 43 , 42 , 41 , 41 , 40 , 40 , 39 , 38 , 38 , 37 , 37 , 36 , 35 , 35 , 34 , 34 , 33 , 32 , 32 , 31 , 31 , 30 , 30 , 29 , 29 , 28 , 28 , 27 , 27 , 26 , 26 , 25 , 25 , 24 , 24 , 23 , 23 , 22 , 22 , 21 , 21 , 20 , 20 , 20 , 19 , 19 , 18 , 18 , 17 , 17 , 17 , 16 , 16 , 16 , 15 , 15 , 14 , 14 , 14 , 13 , 13 , 13 ,
35 12 , 12 , 12 , 11 , 11 , 11 , 10 , 10 , 10 , 9 , 9 , 9 , 8 , 8 , 8 , 8 , 7 , 7 , 7 , 7 , 6 , 6 , 6 , 6 , 5 , 5 , 5 , 5 , 5 , 4 , 4 , 4 , 4 , 4 , 3 , 3 , 3 , 3 , 3 , 3 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 5 , 6 , 6 , 6 , 6 , 7 , 7 , 7 , 7 , 8 , 8 , 8 , 9 , 9 , 9 , 9 , 10 , 10 , 10 , 11 , 11 , 11 , 12 , 12 , 12 , 13 , 13 , 13 , 14 , 14 , 15 , 15 , 15 , 16 , 16 , 16 , 17 , 17 , 18 , 18 , 19 , 19 , 19 , 20 , 20 , 21 , 21 , 22 , 22 , 23 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 , 27 , 27 , 28 , 28 , 29 , 29 , 30 , 31 , 31 , 32 , 32 , 33 , 33 , 34 , 34 , 35 , 36 , 36 , 37 , 37 , 38 , 39 , 39 , 40 , 40 , 41 , 42 , 42 , 43 , 44 , 44 , 45 , 46 , 46 , 47 , 48 , 48 , 49 , 50 , 50 , 51 , 52 , 52 , 53 , 54 , 55 , 55 , 56 , 57 , 57 , 58 , 59 , 60 , 60 , 61 , 62 , 63 , 64 , 64 , 65 , 66 , 67 , 67 , 68 , 69 , 70 , 71 , 72 , 72 , 73 , 74 , 75 , 76 , 77 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 , 91 , 92 , 93 , 94 , 94 , 95 , 96 , 97 , 98 , 99 , 100 , 101 , 102 , 103 , 104 , 105 , 106 , 107 , 108 , 109 , 110 , 111 , 112 , 113 , 114 , 115 , 116 , 117 , 118 , 119 , 121 , 122 , 123 , 124 ,
36 125 , 126 , 127 , 128 , 129 , 130 , 131 , 132 , 134 , 135 , 136 , 137 , 138 , 139 , 140 , 142 , 143 , 144 , 145 , 146 , 147 , 149 , 150 , 151 , 152 , 153 , 154 , 156 , 157 , 158 , 159 , 160 , 162 , 163 , 164 , 165 , 167 , 168 , 169 , 170 , 172 , 173 , 174 , 175 , 177 , 178 , 179 , 181 , 182 , 183 , 184 , 186 , 187 , 188 , 190 , 191 , 192 , 194 , 195 , 196 , 198 , 199 , 200 , 202 , 203 , 204 , 206 , 207 , 209 , 210 , 211 , 213 , 214 , 216 , 217 , 218 , 220 , 221 , 223 , 224 , 225 , 227 , 228 , 230 , 231 , 233 , 234 , 236 , 237 , 239 , 240 , 242 , 243 , 244 , 246 , 247 , 249 , 250 , 252 , 253 , 255 , 257 , 258 , 260 , 261 , 263 , 264 , 266 , 267 , 269 , 270 , 272 , 274 , 275 , 277 , 278 , 280 , 281 , 283 , 285 , 286 , 288 , 289 , 291 , 293 , 294 , 296 , 298 , 299 , 301 , 302 , 304 , 306 , 307 , 309 , 311 , 312 , 314 , 316 , 317 , 319 , 321 , 322 , 324 , 326 , 328 , 329 , 331 , 333 , 334 , 336 , 338 , 340 , 341 , 343 , 345 , 347 , 348 , 350 , 352 , 354 , 355 , 357 , 359 , 361 , 362 , 364 , 366 , 368 , 370 , 371 , 373 , 375 , 377 , 379 , 380 , 382 , 384 , 386 , 388 , 390 , 391 , 393 , 395 , 397 , 399 , 401 , 403 , 405 , 406 , 408 , 410 , 412 , 414 , 416 , 418 , 420 , 422 , 423 , 425 , 427 , 429 , 431 , 433 , 435 , 437 , 439 , 441 , 443 , 445 , 447 , 449 , 451 , 453 , 455 , 457 , 459 , 461 , 462 , 464 , 466 , 468 , 470 , 472 , 474 , 477 , 479 , 481 , 483 , 485 , 487 , 489 , 491 , 493 , 495 , 497 , 499 , 501 , 503 , 505 , 507 , 509 , 511 , 513 , 515 , 518 , 520 , 522 , 524 , 526 , 528 , 530 , 532 , 534 , 536 , 539 , 541 , 543 , 545 , 547 , 549 , 551 , 554 , 556 , 558 , 560 , 562 , 564 , 566 , 569 , 571 , 573 , 575 , 577 , 580 , 582 , 584 , 586 , 588 , 591 , 593 , 595 , 597 , 599 , 602 , 604 , 606 , 608 , 611 , 613 , 615 , 617 , 620 , 622 , 624 , 626 , 629 , 631 , 633 , 635 ,
37 638 , 640 , 642 , 645 , 647 , 649 , 651 , 654 , 656 , 658 , 661 , 663 , 665 , 668 , 670 , 672 , 675 , 677 , 679 , 682 , 684 , 686 , 689 , 691 , 693 , 696 , 698 , 700 , 703 , 705 , 707 , 710 , 712 , 715 , 717 , 719 , 722 , 724 , 727 , 729 , 731 , 734 , 736 , 739 , 741 , 743 , 746 , 748 , 751 , 753 , 756 , 758 , 760 , 763 , 765 , 768 , 770 , 773 , 775 , 778 , 780 , 783 , 785 , 788 , 790 , 793 , 795 , 797 , 800 , 802 , 805 , 807 , 810 , 812 , 815 , 817 , 820 , 823 , 825 , 828 , 830 , 833 , 835 , 838 , 840 , 843 , 845 , 848 , 850 , 853 , 855 , 858 , 861 , 863 , 866 , 868 , 871 , 873 , 876 , 879 , 881 , 884 , 886 , 889 , 892 , 894 , 897 , 899 , 902 , 905 , 907 , 910 , 912 , 915 , 918 , 920 , 923 , 925 , 928 , 931 , 933 , 936 , 939 , 941 , 944 , 947 , 949 , 952 , 955 , 957 , 960 , 962 , 965 , 968 , 970 , 973 , 976 , 979 , 981 , 984 , 987 , 989 , 992 , 995 , 997 , 1000 , 1003 , 1005 , 1008 , 1011 , 1014 , 1016 , 1019 , 1022 , 1024 , 1027 , 1030 , 1033 , 1035 , 1038 , 1041 , 1044 , 1046 , 1049 , 1052 , 1055 , 1057 , 1060 , 1063 , 1066 , 1068 , 1071 , 1074 , 1077 , 1079 , 1082 , 1085 , 1088 , 1090 , 1093 , 1096 , 1099 , 1102 , 1104 , 1107 , 1110 , 1113 , 1116 , 1118 , 1121 , 1124 , 1127 , 1130 , 1132 , 1135 , 1138 , 1141 , 1144 , 1146 , 1149 , 1152 , 1155 , 1158 , 1161 , 1163 , 1166 , 1169 , 1172 , 1175 , 1178 , 1180 , 1183 , 1186 , 1189 , 1192 , 1195 , 1198 , 1200 , 1203 , 1206 , 1209 , 1212 , 1215 , 1218 , 1220 , 1223 , 1226 , 1229 , 1232 , 1235 , 1238 , 1241 , 1244 , 1246 , 1249 , 1252 , 1255 , 1258 , 1261 , 1264 , 1267 , 1270 , 1272 , 1275 , 1278 , 1281 , 1284 , 1287 , 1290 , 1293 , 1296 , 1299 , 1302 , 1305 , 1308 , 1310 , 1313 , 1316 , 1319 , 1322 , 1325 , 1328 , 1331 , 1334 , 1337 , 1340 , 1343 , 1346 , 1349 , 1352 , 1355 , 1358 , 1361 , 1363 , 1366 , 1369 , 1372 , 1375 , 1378 , 1381 , 1384 , 1387 , 1390 , 1393 , 1396 , 1399 , 1402 , 1405 , 1408 , 1411 , 1414 , 1417 , 1420 , 1423 , 1426 , 1429 , 1432 , 1435 , 1438 , 1441 ,
38 1444 , 1447 , 1450 , 1453 , 1456 , 1459 , 1462 , 1465 , 1468 , 1471 , 1474 , 1477 , 1480 , 1483 , 1486 , 1489 , 1492 , 1495 , 1498 , 1501 , 1504 , 1507 , 1510 , 1513 , 1516 , 1519 , 1523 , 1526 , 1529 , 1532 , 1535 , 1538 , 1541 , 1544 , 1547 , 1550 , 1553 , 1556 , 1559 , 1562 , 1565 , 1568 , 1571 , 1574 , 1577 , 1580 , 1583 , 1587 , 1590 , 1593 , 1596 , 1599 , 1602 , 1605 , 1608 , 1611 , 1614 , 1617 , 1620 , 1623 , 1626 , 1629 , 1633 , 1636 , 1639 , 1642 , 1645 , 1648 , 1651 , 1654 , 1657 , 1660 , 1663 , 1666 , 1670 , 1673 , 1676 , 1679 , 1682 , 1685 , 1688 , 1691 , 1694 , 1697 , 1700 , 1704 , 1707 , 1710 , 1713 , 1716 , 1719 , 1722 , 1725 , 1728 , 1731 , 1735 , 1738 , 1741 , 1744 , 1747 , 1750 , 1753 , 1756 , 1759 , 1763 , 1766 , 1769 , 1772 , 1775 , 1778 , 1781 , 1784 , 1787 , 1791 , 1794 , 1797 , 1800 , 1803 , 1806 , 1809 , 1812 , 1816 , 1819 , 1822 , 1825 , 1828 , 1831 , 1834 , 1837 , 1841 , 1844 , 1847 , 1850 , 1853 , 1856 , 1859 , 1862 , 1866 , 1869 , 1872 , 1875 , 1878 , 1881 , 1884 , 1887 , 1891 , 1894 , 1897 , 1900 , 1903 , 1906 , 1909 , 1913 , 1916 , 1919 , 1922 , 1925 , 1928 , 1931 , 1934 , 1938 , 1941 , 1944 , 1947 , 1950 , 1953 , 1956 , 1960 , 1963 , 1966 , 1969 , 1972 , 1975 , 1978 , 1982 , 1985 , 1988 , 1991 , 1994 , 1997 , 2000 , 2004 , 2007 , 2010 , 2013 , 2016 , 2019 , 2022 , 2026 , 2029 , 2032 , 2035 , 2038 , 2041 , 2044 , 2048 );
39
40 signal index : integer range 0 to 4095 ;
41 signal phase : unsigned ( 11 downto 0 ) : = ( others => '0' );
42 signal sinus_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
43 signal saegezahn_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
44 signal rechteck_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
45 signal cnt : unsigned ( 31 downto 0 ) : = ( others => '0' );
46
47 begin
48 process begin
49 wait until rising_edge ( clk );
50 if ( cnt = cnt_check ) and ( run = x"00000001" ) then
51 phase <= resize ( phase + microsteps , 12 );
52 cnt <= x"00000000" ;
53 elsif ( cnt = cnt_check ) and ( run = x"00000002" ) then
54 phase <= resize ( phase - microsteps , 12 );
55 cnt <= x"00000000" ;
56 else
57 if ( cnt < cnt_check ) then
58 cnt <= cnt + 1 ;
59 else
60 cnt <= x"00000000" ;
61 end if ;
62 end if ;
63 end process ;
64
65 index <= to_integer ( phase );
66
67 sinus_u <= to_unsigned ( sinus_array_c ( index ), sinus_u 'length );
68 saegezahn_u <= phase ;
69
70 process begin
71 wait until rising_edge ( clk );
72 if ( phase >= x"555" and phase <= x"DDD" ) then
73 rechteck_u <= x"FFF" ;
74 else
75 rechteck_u <= x"000" ;
76 end if ;
77 end process ;
78
79 -- convert output values
80 sinus <= ( '0' , '0' , '1' , '1' ) & std_logic_vector ( sinus_u );
81 saegezahn <= ( '0' , '0' , '1' , '1' ) & std_logic_vector ( saegezahn_u );
82 rechteck <= ( '0' , '0' , '1' , '1' ) & std_logic_vector ( rechteck_u );
83
84 end bhv ;
Ich übergebe der Funktion drei Werte:
-microsteps gibt die Auflösung der Wellenform an und sollte zwischen 1
(höchste Auflösung von 4096 Schritten) und 128 (32 Schritte) liegen.
-cnt_check gibt den Wert an, wie oft der Schritt mit Microstep
inkrementiert wird. Dieser Wert errechnet sich extern wie folgt:
cnt_check = (50000000/Wunschfrequenz)/(4096/Microsteps)
-run lässt die Wellenform links oder rechts laufen
Jetzt zum Problem: lasse ich dieses Programm durch Modelsim laufen,
funktioniert es super: ich kann Frequenzen bis 10 kHz erzeugen, die
Microsteps einstellen, links/rechtslauf...alles super.
Sobald ich das Programm jedoch auf mein Cyclone 4 spiele, fangen die
Probleme an: bis 800-900 Hz geht es noch, aber dann ist der Sägezahn zb
total stufig (immer ausgehend von höchster Schrittauflösung, also
Microstep = 1). Interessanterweise ist die Anzahl der Stufen genau
gleich dem Wert von cnt_check...und das versteh ich mal gar nicht.
Vielleicht weiß einer von euch Rat!?
Vielen Dank schon mal
Gruß Tom
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
01.08.2014 14:20
Vorneweg:
sinus <= ('0','0','1','1') & std_logic_vector(sinus_u);
Das ginge auch so:
sinus <= "0011" & std_logic_vector(sinus_u);
Tom schrieb:
> bis 800-900 Hz geht es noch
Wer hat dann 800-900 Hz?
Die "fertige" Sinuswelle? Für die von dir gewünschte Auflösung muss Die
muss ja schon mal 4000mal schneller sein. Dein Design muss also wie dein
DAC schon mal 4MHz können.
> Vielleicht weiß einer von euch Rat!?
Hast du Timing Constraints angegeben? Weiß deine Toolchain, mit welchem
Quarztakt du das Ganze fahren willst?
> Sobald ich das Programm
Programmierst du VHPL?
Wenn nicht, dann ist es kein Programm, sondern eine Beschreibung. Denn
VHDL heißt Hardware-Beschreibungs-Sprache, nicht
Hardware-Programmier-Sprache...
01.08.2014 14:21 :
Bearbeitet durch Moderator
von
bit spalter (Gast)
01.08.2014 14:26
Tom schrieb:
> Vielleicht weiß einer von euch Rat!?
Hinweis:
phase <= resize(phase + microsteps,12);
Phase und microstep sind von unterschiedlichen typ, da kann sich die
Synthese vertun.
Gruß
von
peter (Gast)
01.08.2014 15:15
-----------------------------
VHDL heißt Hardware-Beschreibungs-Sprache
-----------------------------
Dieses VHDL gibt es nicht mehr.
Es wurde gemäß ISO als VHPL festgeschrieben.
Zur Zeit bleibt die Endung(VHDL) noch bis 2017 bestehen.
von
Tom (Gast)
01.08.2014 15:16
Mein dac wird über SPI angesteuert und hat eine Settling Time von 4.5us.
Die Angabe der Hertz war auf das Ausgangssignal, also Sinus, sägezahn
etc bezogen.
Nein ich habe keine Constrains angegeben, weiß ehrlicherweise nicht wie
das geht geschweige denn was das Toolchain ist.
Sry ich arbeite noch nicht so lange mit VHDL ...
von
Duke Scarring (Gast)
01.08.2014 15:53
Tom schrieb:
> Nein ich habe keine Constrains angegeben, weiß ehrlicherweise nicht wie
> das geht
Du muß dem ganzen Programmpaket (=Toolchain) sagen, daß außen am Chip
ein 50 MHz Takt anliegt.
Laut
http://www.alterawiki.com/wiki/Timing_Constraints#Clocks_at_input_pins
gibt es das Kommando create_clock
Das muß in die zum Projekt gehörige .sdc-Datei.
Ggf. muß diese Datei von Dir angelegt werden.
Duke
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
01.08.2014 19:39
peter schrieb:
> Es wurde gemäß ISO als VHPL festgeschrieben.
Peter, das hättest du gerne, dann wärst du viele deiner Probleme los...
von
T.U.Darmstadt (Gast)
01.08.2014 20:23
peter schrieb:
> -----------------------------
> VHDL heißt Hardware-Beschreibungs-Sprache
> -----------------------------
> Dieses VHDL gibt es nicht mehr.
> Es wurde gemäß ISO als VHPL festgeschrieben.
> Zur Zeit bleibt die Endung(VHDL) noch bis 2017 bestehen.
Waum nur wird in praktisch jedem Beitrag darüber gestritten, was VHDL
ist und dass man je ja niemals "programmieren" nennen darf.
Ein Blick in die Latein-Fibel zeigt doch:
programma = Bekanntmachung, Veröffentlichung, Mitteilung, Aufsatz,
Vorstellung, Vorschrift, Beschreibung,
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
01.08.2014 21:09
Thomas Ulrich schrieb:
> Waum nur wird in praktisch jedem Beitrag darüber gestritten,
Weil immer wieder Peter seinen Kopf rausstreckt. Alle anderen sind sich
soweit einig, dass man mit VHDL etwas beschreibt, was man sich im Kopf
vorstellt.
Das Problem, Hardware zu "programmieren", ist, dass "Programmieren"
schon vorbelegt ist und damit auch die Denkweise zum bekannten
sequenziellen "Programmieren" neigt.
von
T.U.Darmstadt (Gast)
01.08.2014 21:39
Lothar Miller schrieb:
> Das Problem, Hardware zu "programmieren", ist, dass "Programmieren"
> schon vorbelegt ist und damit auch die Denkweise zum bekannten
> sequenziellen "Programmieren" neigt.
Da ist freilich was dran. Das ist aber ein Problem unserer Zeit, dass
die Jungen heute mit der Programmierung von PCs gross geworden sind und
zwar mit der abstrakten. Benutzt haben sie nur C und JAVA oder Python.
Andere Programmiersprachen sind ihnen fremd. Daher haben sie keinen
Bezug zur Hardware und können sich ganz offentlich nicht mehr
vorstellen, wie ein Hardware aussehen muss, die so arbeitet, wie sie es
möchen.
Die Schlussfolgerung kann eigentlich nur lauten: Mit der Hardware
anfangen und digitale Bausteine verbauen und sich dann nach oben
vorarbeiten.
peter schrieb:
> Dieses VHDL gibt es nicht mehr.
> Es wurde gemäß ISO als VHPL festgeschrieben.
> Zur Zeit bleibt die Endung(VHDL) noch bis 2017 bestehen.
Ups, das hätte ich jetzt fast geglaubt :-)
Ein Umbenennen ist aber nicht notwendig. Man muss nur ein wenig
Um*denken*. Der Begiff VHDL wurde geprägt, als es noch keine high level
synthesis in der heutigen Form gab und vor allem die
Beschreibungsoptionen bei Weitem nicht so universell waren, wie es heute
ist. Zu Begin gab es eigentlich nur Gatter-Equivalente und rudimentäre
Darstellungen von Zuweisungen, oft nur die boolschen Operatoren. Da war
der Begriff "Hardware wird beschrieben" absolut treffend.
Heute sind wir aber 25 Jahre weiter. Die Tools verstehen inzwischen
Anweisungen, die sich allein auf den Synthesprozess beziehen. Gesteuert
wird damit die Synthesesoftware und daher ist der Begriff
"Programmierung" durchaus treffend, und dies sogar innerh der verengten
Definition des Begriffes den die Softwarelandschaft besetzt hält.
Klassischer Fall ist die bedingte Synthese von Funktionen durch
verschachtelte Schleifen, welche komplizierte Ablaufvorgaben darstellen,
die nur in die Synthesesoftware zu Gesicht bekommt. Genau betrachtet,
ist es sogar nur die erste Stufe der Synthesesoftware, die (wie früher
der BAISC-Interpreter) die Befehle zyklisch abarbeitet und eine flache
Vorschrift daraus baut.
An der Stelle ist VHDL eine Software (nämlich ein Programm), das eine
andere Software (das Tool) dazu bringt, eine Software (das
Programmierfile) zu erzeugen. Deshalb ist VHDL -Entwicklung (nicht
"FPGA-Entwicklung"!) für mich klar Softwareentwicklung und die
Erstellung derselben ein Programmiervorgang. Besonders auch, weil neben
dem VHDL noch Scripte angelegt werden, die die Synthese steuern und
constraints gesetzt werden, die keine Hardware direkt beschreiben, wie
das früher der Fall war, sondern die Funktion der Hardware, also wieder
eine Abstraktionsebene höher. State Machines sind auch so ein Stück
Software mit dem ein Ablauf hinprogrammiert wird. Wie die daraus
erzeugte Hardware am Ende aussieht, ist komplett offen. Das regelt die
Synthese anhand vor (in)direkten Voreinstellungen.
Es müsste also heissten: Versatile Hardware and Function Definition
Language (VHAFDL). Anzubieten hätte ich sonst noch die Virtual Function
Design Language (VFDL).
@Peter: Deine Sinustabelle scheint mir nicht in Ordnung. Die beiden
Werte 2048 am Anfang und Ende, das ist verdächtig. Dein Sinus hat dort
die Steigung 0 statt 1. Einer der beiden Werte ist zuviel.
Den Sinus würde ich auch generisch beschreiben, wie ich das in meinem
Sinusartikel dargestellt habe. Kostet viel weniger Platz und ist auch
genau genug. Tabellen lohnen sich erst ab 14 Bit Y-Auflösung und
generell braucht es eigentlich auch nur die Werte eines Viertelbogens.
Siehe den unteren Block im Bild.
http://home.arcor.de/jusuihe/images/soundsynthesizer96circuit.gif
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
02.08.2014 15:08
Jürgen Schuhmacher schrieb:
> @Peter: Deine Sinustabelle scheint mir nicht in Ordnung.
Du meinst wahrscheinlich Tom. Könnte natürlich auch sein dass Peters
Tabelle nicht ganz stimmt... ;-)
von
Tom (Gast)
04.08.2014 11:27
Also auf die Gefahr hin, dasss ich jetzt gesteinigt werde, hier nochmal
mein aktueller Code. Ich habe ihn nun wieder komplett auf eine einfache
DDS zurückgesetzt und kriege trotzdem in meinem Sägezahnsignal ab ca.
200 Hz Treppenstufen, die mit steigender Frequenz immer größer werden
und dann kippt dass Signal plötzlich um, sprich wird an der y-Achse
gespiegelt und hat wieder eine ganz niedrige Frequenz. Ich habe mir
diverse DDS Beispiele angeguckt und sehe nicht, wo bei mir das Problem
ist. Kann es eventuell daran liegen, dass ich meinen 12-Bit DAC über SPI
mit einem SPI Takt von 200kHz ansteuer und es da zu Timingproblemen
kommt?
Hier der Code:
1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3 use ieee . numeric_std . all ;
4
5
6 entity Generator_1 is
7 Generic ( Systemclock : integer : = 50000000 -- Hertz
8 );
9 port (
10 clk : in std_logic ; -- Systemclock (50 MHz)
11 microsteps : in unsigned ( 31 downto 0 ) : = ( others => '0' );
12
13 run : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- 0 = steht, 1 = links, 2 = rechts
14
15 rechteck : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
16 saegezahn : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' )
17
18 );
19 end Generator_1 ;
20
21 architecture bhv of Generator_1 is
22
23
24 signal phase : unsigned ( 31 downto 0 ) : = ( others => '0' );
25 signal saegezahn_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
26 signal rechteck_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
27
28
29 begin
30 process begin
31 wait until rising_edge ( clk );
32 if run = x"00000001" then
33 phase <= phase + microsteps ;
34 elsif run = x"00000002" then
35 phase <= phase - microsteps ;
36 end if ;
37 end process ;
38
39 saegezahn_u <= phase ( 31 downto 20 );
40
41
42 process begin
43 wait until rising_edge ( clk );
44 if ( saegezahn_u >= x"555" and saegezahn_u <= x"DDD" ) then
45 rechteck_u <= x"FFF" ;
46 else
47 rechteck_u <= x"000" ;
48 end if ;
49 end process ;
50
51
52 -- convert output values
53
54 saegezahn <= "0011" & std_logic_vector ( saegezahn_u );
55 rechteck <= "0011" & std_logic_vector ( rechteck_u );
56
57 end bhv ;
Bitte seit so nett und sagt mir einfach was ich falsch mache und nicht
ob man VHDL programmiert oder beschreibt :)
Vielen Dank
von
peter (Gast)
04.08.2014 12:35
Du solltest vielleicht einfach mal eine Testbench schreiben und schauen,
ob das Signal, das rauskommen soll, auch rauskommt. Wenn ja, gibt es bei
der Übergabe an den DAC Probleme.
von
Tom (Gast)
04.08.2014 12:51
Es kommt raus und funktioniert in Modelsim so wie es soll...
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 12:54
peter schrieb:
> Du solltest vielleicht einfach mal eine Testbench schreiben
Ich denke, das tut er, wie Tom schrieb:
>>>>> Modelsim ... super
Tom schrieb:
> Kann es eventuell daran liegen, dass ich meinen 12-Bit DAC
Welchen?
> über SPI mit einem SPI Takt von 200kHz ansteuer
Wie?
Wie (oft) übergibst du die Daten an den DAC?
von
Tom (Gast)
04.08.2014 12:58
Der DAC ist der MCP4821 und den SPI Takt von 200kHz habe ich wegen der
Settling Time des DACs gewählt. Der SPI Master wurde von Lothar Miller
1:1 übernommen.
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 13:35
Bliebe da noch die Frage:
>>> Wie (oft) übergibst du die Daten an den DAC?
Du hast doch ein Oszi: mit welcher Frequenz wird der CS des DAC
angesteuert?
Oder andersrum: wie ist das ganze Zeug miteinander verschaltet?
> Kann es eventuell daran liegen, dass ich meinen 12-Bit DAC über SPI mit
> einem SPI Takt von 200kHz ansteuer und es da zu Timingproblemen kommt?
Der SPI des DAC kann 100 Mal mehr...
04.08.2014 13:42 :
Bearbeitet durch Moderator
von
Peter (Gast)
04.08.2014 13:39
Ok, das mit dem ModelSim hatte ich über lesen. Dann kann es nur am DAc
liegen und wenn ich Deine Beschreibung mit dem seltsamen Output lese,
scheint mir in der Tat das IF zum DAC das Problem: Da interferieren
Deine Solldaten mit der Abtastfrequenz = Updatefrequenz des DAC. Das ist
ein klassisches Abtastproblem. Die Übergabefrequenz an den DAC muss
mindestens dopplet so hoch sein, wie die DDS-Frequenz.
von
Tom (Gast)
04.08.2014 14:01
Also bisher habe ich mit 200kHz den TX_Start des SPI-Masters angesteuert
und dem Wert "SPI-Taktfrequenz" im SPI-Master habe ich den Wert 1000000
zugewiesen.
Ich geb lediglich die Daten aus der DDS an den SPI-Master. Beide Blöcke
laufen mit 50MHz und die Restlichen Frequenzen siehe oben...
Ich dacjhte immer dass der Wert für TX-Start quasi meine SPI-Clock ist,
aber anscheinend hab ich das nicht verstanden.
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 15:09
Tom schrieb:
> Also bisher habe ich mit 200kHz den TX_Start des SPI-Masters angesteuert
Und die Daten, die zum TX_Start gehören?
> und dem Wert "SPI-Taktfrequenz" im SPI-Master habe ich den Wert 1000000
> zugewiesen.
Du hast mit 200kHz eine SPI-Übertragung angestoßen, deren SPI-Clock nur
mit 1MMz läuft? Du könntest also höchstens 5 Bit übertragen...
Merke: du darfst eine neue SPI Übertragung erst starten, wenn die "alte"
fertig ist. Ich vermute aber fast, das hat meine SPI-Engine sowieso
gemacht. Das erkennst du aber wie gesagt ganz leicht am Slave-Select...
Zum Thema "Takt": die Häufigkeit, mit der du eine Modul aktivierst,
heißt nicht Takt. Niemals. Der SPI Takt hört auf den Namen SCLK. Und das
war es, was ich mit dem Stichwort "SPI Takt" assoziiere. Deshalb habe
ich da auch ausdauernd nachgefragt.
> Ich dacjhte immer dass der Wert für TX-Start quasi meine SPI-Clock ist,
> aber anscheinend hab ich das nicht verstanden.
Nein, da musst du noch nacharbeiten...
von
Tom (Gast)
04.08.2014 15:36
Lothar Miller schrieb:
> Zum Thema "Takt": die Häufigkeit, mit der du eine Modul aktivierst,
> heißt nicht Takt. Niemals. Der SPI Takt hört auf den Namen SCLK. Und das
> war es, was ich mit dem Stichwort "SPI Takt" assoziiere. Deshalb habe
> ich da auch ausdauernd nachgefragt.
Das heißt also das der Wert, den ich für "SPI_Taktfrequenz" eingebe,
äquivalent zu SCLK ist!? Denn wenn dem so ist, dann funktioniert etwas
Grundlegendes nicht: ich habe jetzt mal für die SPI_Taktfrequenz
20000000 eingegeben, messe am Osci aber nur ein SCLK von 1 MHz...was zum
Henker verraff ich denn hier?
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 15:47
Tom schrieb:
> was zum Henker verraff ich denn hier?
Keine Ahnung, ich kenne deine VHDL Beschreibung nicht...
Häng doch einfach mal die paar Dateien hier an.
> Osci
Oszi von Oszi-lloskop.
von
Tom (Gast)
04.08.2014 15:55
DDS:
1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3 use ieee . numeric_std . all ;
4
5
6 entity Generator_1 is
7 Generic ( Systemclock : integer : = 50000000 -- Hertz
8 );
9 port (
10 clk : in std_logic ; -- Systemclock (50 MHz)
11 microsteps : in unsigned ( 31 downto 0 ) : = ( others => '0' );
12
13 run : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- 0 = steht, 1 = links, 2 = rechts
14
15 rechteck : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
16 saegezahn : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' )
17
18 );
19 end Generator_1 ;
20
21 architecture bhv of Generator_1 is
22
23
24 signal phase : unsigned ( 31 downto 0 ) : = ( others => '0' );
25 signal saegezahn_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
26 signal rechteck_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
27
28
29 begin
30 process begin
31 wait until rising_edge ( clk );
32 if run = x"00000001" then
33 phase <= phase + microsteps ;
34 elsif run = x"00000002" then
35 phase <= phase - microsteps ;
36 end if ;
37 end process ;
38
39 saegezahn_u <= phase ( 31 downto 20 );
40
41
42 process begin
43 wait until rising_edge ( clk );
44 if ( saegezahn_u >= x"555" and saegezahn_u <= x"DDD" ) then
45 rechteck_u <= x"FFF" ;
46 else
47 rechteck_u <= x"000" ;
48 end if ;
49 end process ;
50
51
52 -- convert output values
53
54 saegezahn <= "0011" & std_logic_vector ( saegezahn_u );
55 rechteck <= "0011" & std_logic_vector ( rechteck_u );
56
57 end bhv ;
SPI-Master
1 library IEEE ;
2 use IEEE . STD_LOGIC_1164 . ALL ;
3 use IEEE . NUMERIC_STD . ALL ;
4
5
6 entity SPI_Master_1 is -- SPI-Modus 0: CPOL=0, CPHA=0
7 Generic ( Quarz_Taktfrequenz : integer : = 50000000 ; -- Hertz
8 SPI_Taktfrequenz : integer : = 20000000 ; -- Hertz / zur Berechnung des Reload-Werts für Taktteiler
9 Laenge : integer : = 16 -- Anzahl der zu übertragenden Bits
10 );
11 Port ( TX_Data : in STD_LOGIC_VECTOR ( Laenge -1 downto 0 ); -- Sendedaten
12 RX_Data : out STD_LOGIC_VECTOR ( Laenge -1 downto 0 ); -- Empfangsdaten
13 MOSI : out STD_LOGIC ;
14 MISO : in STD_LOGIC ;
15 SCLK : out STD_LOGIC ;
16 SS : out STD_LOGIC ;
17 TX_Start : in STD_LOGIC ;
18 TX_Done : out STD_LOGIC ;
19 clk : in STD_LOGIC
20 );
21 end SPI_Master_1 ;
22
23 architecture Behavioral of SPI_Master_1 is
24 signal delay : integer range 0 to ( Quarz_Taktfrequenz / ( 2 * SPI_Taktfrequenz ));
25 constant clock_delay : integer : = ( Quarz_Taktfrequenz / ( 2 * SPI_Taktfrequenz )) -1 ;
26
27 type spitx_states is ( spi_stx , spi_txactive , spi_etx );
28 signal spitxstate : spitx_states : = spi_stx ;
29
30 signal spiclk : std_logic ;
31 signal spiclklast : std_logic ;
32
33 signal bitcounter : integer range 0 to Laenge ; -- wenn bitcounter = Laenge --> alle Bits uebertragen
34 signal tx_reg : std_logic_vector ( Laenge -1 downto 0 ) : = ( others => '0' );
35 signal rx_reg : std_logic_vector ( Laenge -1 downto 0 ) : = ( others => '0' );
36
37 begin
38 ------ Verwaltung --------
39 process begin
40 wait until rising_edge ( CLK );
41 if ( delay > 0 ) then delay <= delay -1 ;
42 else delay <= clock_delay ;
43 end if ;
44 spiclklast <= spiclk ;
45 case spitxstate is
46 when spi_stx =>
47 SS <= '1' ; -- slave select disabled
48 TX_Done <= '0' ;
49 bitcounter <= Laenge ;
50 spiclk <= '0' ; -- SPI-Modus 0
51 if ( TX_Start = '1' ) then
52 spitxstate <= spi_txactive ;
53 SS <= '0' ;
54 delay <= clock_delay ;
55 end if ;
56
57 when spi_txactive => -- Daten aus tx_reg uebertragen
58 if ( delay = 0 ) then -- shift
59 spiclk <= not spiclk ;
60 if ( bitcounter = 0 ) then -- alle Bits uebertragen -> deselektieren
61 spiclk <= '0' ; -- SPI-Modus 0
62 spitxstate <= spi_etx ;
63 end if ;
64 if ( spiclk = '1' ) then -- SPI-Modus 0
65 bitcounter <= bitcounter -1 ;
66 end if ;
67 end if ;
68
69 when spi_etx =>
70 SS <= '1' ; -- disable Slave Select
71 TX_Done <= '1' ;
72 if ( TX_Start = '0' ) then -- Handshake: warten, bis Start-Flag geloescht
73 spitxstate <= spi_stx ;
74 end if ;
75 end case ;
76 end process ;
77
78 ---- Empfangsschieberegister -----
79 process begin
80 wait until rising_edge ( CLK );
81 if ( spiclk = '1' and spiclklast = '0' ) then -- SPI-Modus 0
82 rx_reg <= rx_reg ( rx_reg 'left -1 downto 0 ) & MISO ;
83 end if ;
84 end process ;
85
86 ---- Sendeschieberegister -------
87 process begin
88 wait until rising_edge ( CLK );
89 if ( spitxstate = spi_stx ) then -- Zurücksetzen, wenn SS inaktiv
90 tx_reg <= TX_Data ;
91 end if ;
92 if ( spiclk = '0' and spiclklast = '1' ) then -- SPI-Modus 0
93 tx_reg <= tx_reg ( tx_reg 'left -1 downto 0 ) & tx_reg ( 0 );
94 end if ;
95 end process ;
96
97 SCLK <= spiclk ;
98 MOSI <= tx_reg ( tx_reg 'left );
99 RX_Data <= rx_reg ;
100
101 end Behavioral ;
Und an TX_Start zupf ich mit 200kHz
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 16:14
Tom schrieb:
> Und an TX_Start zupf ich mit 200kHz
Und WIE zupfst du da? Und WIE kommen die Daten von der DDFS zum SPI? Du
tust dir schon sehr schwer, deinen Code herauszurücken, dass man da mal
drüber schauen könnte...
Tom schrieb:
> messe am Osci aber nur ein SCLK von 1 MHz...
Wir meinen aber schon den selben SCLK? Du hast nicht am SS gemessen?
von
Tom (Gast)
04.08.2014 16:33
Entschuldige bitte, ich weiß nicht genau was du mit Code rausrücken
meinst, ich habe den Code doch eben gepostet? Ich habe eine PLL, die mir
am Ausgang 200kHz erzeugt und die führe ich einfach auf den TX_Start.
Oder was meinst du? Ich mach das alles in QuartusII, da zieh ich einfach
zwischen den Blöcken Leitungen und so kommen die Daten dann vom DDS
Block zum SPI Block :)
>Wir meinen aber schon den selben SCLK? Du hast nicht am SS gemessen?
Ne, meine schon den SCLK.
von
uwe (Gast)
04.08.2014 16:50
> Ich habe eine PLL, die mir am Ausgang 200kHz erzeugt und die führe ich
> einfach auf den TX_Start.
Das hört sich verdächtig nach mehreren Takten an.
Zeig uns mal deine Taktgeneratoren. Wo kommen die 50MHz her? Wo die
200kHz? Wie hängen die zusammen?
von
Tom (Gast)
04.08.2014 17:24
Korrekt, es sind zwei Takte: 50 MHz und 200kHz. Die 50MHz gebe einmal
auf die PLL und erzeuge damit 200kHz und einmal gebe ich die 50MHz
unverändert direkt auf die DDS und den SPI-Master.
Die 50MHz kommen direkt vom Quartz des DE0-Nano-Board.
Ich habe es mittlerweile halbwegs hinbekommen, sprich, die SPI-Signale
kommen korrekt am DAC an und dieser erzeugt mir auch die gewünschten
Wellenformen aus der DDS, allerdings hab ich in den Flanken noch eine
Rise, bzw Falltime von ca 20us...
Vllt. hat jemand eine Idee, ansonsten ist es zu verschmerzen.
von
Duke Scarring (Gast)
04.08.2014 17:31
Tom schrieb:
> Die 50MHz gebe einmal
> auf die PLL und erzeuge damit 200kHz und einmal gebe ich die 50MHz
> unverändert direkt auf die DDS und den SPI-Master.
Schlechte Idee. Teile mal die 50 MHz durch 250 und mach Dir damit ein
200 kHz-Enable.
Duke
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 18:02
Tom schrieb:
> Ich mach das alles in QuartusII, da zieh ich einfach zwischen den
> Blöcken Leitungen und so kommen die Daten dann vom DDS Block zum SPI
> Block :)
Ach, Schreck. Dann mach wenigstens einen Screenshot von deiner
Schaltung.
Oder viel besser: du kannst doch VHDL , dann mach doch das bisschen
Verdrahtung auch in VHDL ...
Ich hätte da einen kleinen Anreiz im
Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)" . Der gefällt mir noch
immer... ;-)
>> Wir meinen aber schon den selben SCLK? Du hast nicht am SS gemessen?
> Ne, meine schon den SCLK.
Dann bin ich mir nicht ganz sicher, ob deine ganze Taktmimik schon
korrekt läuft...
> Ich habe es mittlerweile halbwegs hinbekommen,
Du hast es hingebastelt.
> sprich, die SPI-Signale kommen korrekt am DAC an und dieser erzeugt
> mir auch die gewünschten Wellenformen aus der DDS, allerdings
> hab ich in den Flanken noch eine Rise, bzw Falltime von ca 20us...
In den Flanken welcher Signale hast du diese Zeit?
> Vllt. hat jemand eine Idee
Das Stichwort Enable ist schon gefallen. Oder andersrum: es gibt in
einem Anfängerdesign nur EINEN Takt.
von
Tom (Gast)
04.08.2014 19:43
Anbei der Schaltplan.
>In den Flanken welcher Signale hast du diese Zeit?
In den Flanken meines Analogsignals, also zB die fallende Flanke des
Sägezahns, oder beim Rechteckt die steigtende und fallende Flanke.
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
04.08.2014 20:08
Tom schrieb:
> Anbei der Schaltplan.
Na gut, wenn denn so sein muss. Das geht schon. Mir gibt allerdings zu
denken, dass dein SCLK nur 1MHz ist...
> In den Flanken meines Analogsignals, also zB die fallende Flanke des
> Sägezahns, oder beim Rechteckt die steigtende und fallende Flanke.
Tja, ich vermute, da ist dein DAC zu langsam. Die 4,5us Settling Time
gilt nicht für den gesamten Bereich, sondern nur "from 1/4 to 3/4
full-scale range"
04.08.2014 20:09 :
Bearbeitet durch Moderator
Das sind eindeutig Abtastfehler. Der DAC kommt nicht mit den eingegeben
Daten mit und pickt sich nur Teile davon haraus. Kann es sein, dass die
SPI-FSM durchläuft und so nur jeden zweiten Wert nimmt oder ganz und gar
das Ganze am jittern ist? Bis welche Frequenzen hin kann man denn gut
übertragen, bzw wo genau ist denn dieser Sprung zu den "langsamen"
Frequenzen am Ausgang?
von
Tom (Gast)
05.08.2014 10:00
Lothar Miller schrieb:
> Na gut, wenn denn so sein muss. Das geht schon. Mir gibt allerdings zu
> denken, dass dein SCLK nur 1MHz ist...
Hat sich geklärt, hatte nur einen doofen Zahlendreher...
> Tja, ich vermute, da ist dein DAC zu langsam. Die 4,5us Settling Time
> gilt nicht für den gesamten Bereich, sondern nur "from 1/4 to 3/4
> full-scale range"
Das kann natürlich sein, dann werd ich mal nach schnelleren gucken.
Trotzdem erstmal vielen Dank für eure Hilfe!
von
T.U.Darmstadt (Gast)
09.08.2014 11:04
Jürgen Schuhmacher schrieb:
> @Peter: Deine Sinustabelle scheint mir nicht in Ordnung. Die beiden
> Werte 2048 am Anfang und Ende, das ist verdächtig. Dein Sinus hat dort
> die Steigung 0 statt 1. Einer der beiden Werte ist zuviel.
Da ist in der Tat etwas dran. Vielleicht ein Wert zuviel?
> Den Sinus würde ich auch generisch beschreiben, wie ich das in meinem
> Sinusartikel dargestellt habe. Kostet viel weniger Platz
Bist Du da wirklich sicher, dass so ein Sinus wenige Platz verbraucht?
Getestet?
> Tabellen lohnen sich erst ab 14 Bit Y-Auflösung
Dafür hätte ich ganz gerne eine nähere Begründung
> generell braucht es eigentlich auch nur die Werte eines Viertelbogens.
Dann muss aber zusätzlich gerechnet werden und wenn der Platz vorhanden
sind, sind Tabellen definitiv das schnellste Mittel. Tabellen lssen sich
ohnedies in heutigen Power-Applikationen sehr leicht im DDR-RAM
unterbringen und bei den meisten professionellen Signalgeneratoren wird
das auch genau so realisiert.
von
Duke Scarring (Gast)
11.08.2014 10:07
Thomas Ulrich schrieb:
>> generell braucht es eigentlich auch nur die Werte eines Viertelbogens.
> Dann muss aber zusätzlich gerechnet werden
Nicht wirklich. Man guckt auf die zwei MSBs um den Quadranten zu
ermitteln und subtrahiert nix oder den Wert oder die Adresse oder
beides. Fertig.
Duke
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
11.08.2014 10:58
Duke Scarring schrieb:
> Man guckt auf die zwei MSBs um den Quadranten zu ermitteln und
> subtrahiert nix oder den Wert oder die Adresse oder beides. Fertig.
So wie dort:
http://www.lothar-miller.de/s9y/archives/37-DDFS-mit-BROM.html
von
T.U.Darmstadt (Gast)
11.08.2014 21:15
Duke Scarring schrieb:
> Nicht wirklich. Man guckt auf die zwei MSBs um den Quadranten zu
> ermitteln und subtrahiert
Die Methodik ist mir freilich geläufig, keine Sorge, dennoch erfordert
sie wenigstens eine Berechnung, nämlich diese:
> subtrahiert
- aber nicht nur diese: Will einer DDS sauber betreiben braucht es auch
noch eine Interpolation und somit eine Steigung. Mit einer Tabelle lässt
sich dies in einem Aufwasch erledigen. Bei einem SRAM bei Bedarf sogar
mit nur einem Takt zusätzlicher Latenz. Aber das sind jetzt zu
allgemeine Themen. Der TE wollte ja seinen Signalgenerator i.O. bringen.
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
12.08.2014 10:29
Thomas Ulrich schrieb:
> will einer DDS sauber betreiben braucht es auch noch eine Interpolation
Das ist jetzt aber sehr pauschal und päpstlicher als der Papst. Braucht
man dann eine lineare, eine kubische oder sogar noch eine höhere Ordnung
für diese Interpolation?
von
T.U.Darmstadt (Gast)
12.08.2014 20:27
Man bedenke das Phasenrauschen, das bei geringen zeitlichen Auflösungen
entsteht. Schon eine einfache lineare Interpolation kann da abhelfen.
von
Lang (Gast)
19.08.2014 17:02
Hallo, ich mal wieder :)
Ich habe ein weiteres Problem mit meinem Signalgenerator, diesmal
betrifft es aber nur ihn selbst. Ich möchte einen Sägezahn mit einer
etwas runderen Steigung erzeugen, die Kurve habe ich mir in Matlab
erzeugt und die Werte in nem Lookup Table abgelegt. Gleiches gilt auch
für den gespiegelten Sägezahn, der aber eine etwas andere Kurvenform hat
als der für den Rechtslauf. Wenn ich jetzt zwischen links und rechts
fahren hin und herschalte soll er zwischen den Lookuptables springen-->
funktioniert. Da die Werte aber nicht genau identisch sind, muss ich
einen Klimmzug machen und beim wechsel in einer For-schleife einmal das
Array durchgehen und gucken, wo der identische Wert im Andern Array
liegt. Würde ich das nicht machen, dann würde es zu einem Sprung beim
Signalwechsel kommen.
Wie immer gilt: Modelsim-Simulation funktioniert, aber in Quartus lässt
sich es sich nicht Kompilieren...ich versteh es nicht. Vllt könnt ihr ja
helfen. Hier erstmal der Code:
1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3 use ieee . numeric_std . all ;
4
5
6 entity Generator_1 is
7 port (
8 clk : in std_logic ; -- Systemclock (50 MHz)
9 microsteps : in unsigned ( 31 downto 0 ) : = ( others => '0' );
10 run : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- 0 = steht, 1 = links, 2 = rechts
11 y : in signed ( 31 downto 0 ) : = ( others => '0' );
12 control : in unsigned ( 31 downto 0 ) : = ( others => '0' );
13
14 rechteck : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
15 saegezahn : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
16 saegezahn_inv : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' )
17 );
18
19 end Generator_1 ;
20
21 architecture bhv of Generator_1 is
22
23 type saw_load_array_t is array ( 0 to 4095 ) of integer range 0 to 4095 ;
24 constant saw_load_array_c : saw_load_array_t : =
25 ( 0 , 6 , 7 , 9 , 10 , 11 , 13 , 14 , 15 , 17 , 18 , 19 , 21 , 22 , 23 , 25 , 26 , 27 , 29 , 30 , 31 , 33 , 34 , 35 , 37 , 38 , 39 , 41 , 42 , 43 , 45 , 46 , 47 , 49 , 50 , 51 , 53 , 54 , 55 , 57 , 58 , 59 , 61 , 62 , 63 , 65 , 66 , 67 , 69 , 70 , 71 , 73 , 74 , 75 , 77 , 78 , 79 , 81 , 82 , 83 , 85 , 86 , 87 , 89 , 90 , 91 , 93 , 94 , 95 , 96 , 98 , 99 , 100 , 102 , 103 , 104 , 106 , 107 , 108 , 110 , 111 , 112 , 114 , 115 , 116 , 118 , 119 , 120 , 122 , 123 , 124 , 125 , 127 , 128 , 129 , 131 , 132 , 133 , 135 , 136 , 137 , 139 , 140 , 141 , 143 , 144 , 145 , 147 , 148 , 149 , 150 , 152 , 153 , 154 , 156 , 157 , 158 , 160 , 161 , 162 , 164 , 165 , 166 , 167 , 169 , 170 , 171 , 173 , 174 , 175 , 177 , 178 , 179 , 181 , 182 , 183 , 184 , 186 , 187 , 188 , 190 , 191 , 192 , 194 , 195 , 196 , 197 , 199 , 200 , 201 , 203 , 204 , 205 , 207 , 208 , 209 , 210 , 212 , 213 , 214 , 216 , 217 , 218 , 220 , 221 , 222 , 223 , 225 , 226 , 227 , 229 , 230 , 231 , 232 , 234 , 235 , 236 , 238 , 239 , 240 , 242 , 243 , 244 , 245 , 247 , 248 , 249 , 251 , 252 , 253 , 254 , 256 , 257 , 258 , 260 , 261 , 262 , 263 , 265 , 266 , 267 , 269 , 270 , 271 , 272 , 274 , 275 , 276 , 278 , 279 , 280 , 281 , 283 , 284 , 285 , 287 , 288 , 289 , 290 , 292 , 293 , 294 , 295 , 297 , 298 , 299 , 301 , 302 , 303 , 304 , 306 , 307 , 308 , 310 , 311 , 312 , 313 , 315 , 316 , 317 , 318 , 320 , 321 , 322 , 324 , 325 , 326 , 327 , 329 , 330 , 331 , 332 , 334 , 335 , 336 , 338 , 339 , 340 , 341 , 343 , 344 , 345 , 346 , 348 , 349 , 350 , 352 , 353 , 354 , 355 , 357 , 358 , 359 , 360 , 362 , 363 , 364 , 365 , 367 , 368 , 369 , 371 , 372 , 373 , 374 , 376 , 377 , 378 , 379 , 381 , 382 , 383 , 384 , 386 , 387 , 388 , 389 , 391 , 392 , 393 , 394 , 396 , 397 , 398 , 399 , 401 , 402 , 403 , 405 , 406 , 407 , 408 , 410 , 411 , 412 , 413 , 415 , 416 , 417 , 418 , 420 , 421 , 422 , 423 , 425 , 426 , 427 , 428 , 430 , 431 , 432 , 433 , 435 , 436 , 437 , 438 , 440 , 441 , 442 , 443 , 445 , 446 , 447 , 448 , 450 , 451 , 452 , 453 , 455 , 456 , 457 , 458 , 460 , 461 , 462 , 463 , 465 , 466 , 467 , 468 , 469 , 471 , 472 , 473 , 474 , 476 , 477 , 478 , 479 , 481 , 482 , 483 , 484 , 486 , 487 , 488 , 489 , 491 , 492 , 493 , 494 , 496 , 497 , 498 , 499 , 500 ,
26 502 , 503 , 504 , 505 , 507 , 508 , 509 , 510 , 512 , 513 , 514 , 515 , 517 , 518 , 519 , 520 , 521 , 523 , 524 , 525 , 526 , 528 , 529 , 530 , 531 , 533 , 534 , 535 , 536 , 537 , 539 , 540 , 541 , 542 , 544 , 545 , 546 , 547 , 548 , 550 , 551 , 552 , 553 , 555 , 556 , 557 , 558 , 560 , 561 , 562 , 563 , 564 , 566 , 567 , 568 , 569 , 571 , 572 , 573 , 574 , 575 , 577 , 578 , 579 , 580 , 582 , 583 , 584 , 585 , 586 , 588 , 589 , 590 , 591 , 592 , 594 , 595 , 596 , 597 , 599 , 600 , 601 , 602 , 603 , 605 , 606 , 607 , 608 , 609 , 611 , 612 , 613 , 614 , 616 , 617 , 618 , 619 , 620 , 622 , 623 , 624 , 625 , 626 , 628 , 629 , 630 , 631 , 632 , 634 , 635 , 636 , 637 , 639 , 640 , 641 , 642 , 643 , 645 , 646 , 647 , 648 , 649 , 651 , 652 , 653 , 654 , 655 , 657 , 658 , 659 , 660 , 661 , 663 , 664 , 665 , 666 , 667 , 669 , 670 , 671 , 672 , 673 , 675 , 676 , 677 , 678 , 679 , 681 , 682 , 683 , 684 , 685 , 687 , 688 , 689 , 690 , 691 , 693 , 694 , 695 , 696 , 697 , 699 , 700 , 701 , 702 , 703 , 705 , 706 , 707 , 708 , 709 , 711 , 712 , 713 , 714 , 715 , 716 , 718 , 719 , 720 , 721 , 722 , 724 , 725 , 726 , 727 , 728 , 730 , 731 , 732 , 733 , 734 , 736 , 737 , 738 , 739 , 740 , 741 , 743 , 744 , 745 , 746 , 747 , 749 , 750 , 751 , 752 , 753 , 754 , 756 , 757 , 758 , 759 , 760 , 762 , 763 , 764 , 765 , 766 , 768 , 769 , 770 , 771 , 772 , 773 , 775 , 776 , 777 , 778 , 779 , 780 , 782 , 783 , 784 , 785 , 786 , 788 , 789 , 790 , 791 , 792 , 793 , 795 , 796 , 797 , 798 , 799 , 800 , 802 , 803 , 804 , 805 , 806 , 808 , 809 , 810 , 811 , 812 , 813 , 815 , 816 , 817 , 818 , 819 , 820 , 822 , 823 , 824 , 825 , 826 , 827 , 829 , 830 , 831 , 832 , 833 , 834 , 836 , 837 , 838 , 839 , 840 , 841 , 843 , 844 , 845 , 846 , 847 , 848 , 850 , 851 , 852 , 853 , 854 , 855 , 857 , 858 , 859 , 860 , 861 , 862 , 864 , 865 , 866 , 867 , 868 , 869 , 871 , 872 , 873 , 874 , 875 , 876 , 878 , 879 , 880 , 881 , 882 , 883 , 884 , 886 , 887 , 888 , 889 , 890 , 891 , 893 , 894 , 895 , 896 , 897 , 898 , 899 , 901 , 902 , 903 , 904 , 905 , 906 , 908 , 909 , 910 , 911 , 912 , 913 , 914 , 916 , 917 , 918 , 919 , 920 , 921 , 923 , 924 , 925 , 926 , 927 , 928 , 929 , 931 , 932 , 933 , 934 , 935 , 936 , 937 , 939 , 940 , 941 , 942 , 943 , 944 , 945 , 947 , 948 , 949 , 950 , 951 , 952 , 954 , 955 , 956 , 957 , 958 , 959 , 960 , 962 , 963 , 964 , 965 , 966 , 967 , 968 , 970 , 971 , 972 , 973 , 974 , 975 , 976 , 977 , 979 , 980 , 981 , 982 , 983 , 984 , 985 , 987 , 988 , 989 , 990 , 991 , 992 , 993 , 995 , 996 , 997 , 998 , 999 , 1000 ,
27 1001 , 1003 , 1004 , 1005 , 1006 , 1007 , 1008 , 1009 , 1010 , 1012 , 1013 , 1014 , 1015 , 1016 , 1017 , 1018 , 1020 , 1021 , 1022 , 1023 , 1024 , 1025 , 1026 , 1027 , 1029 , 1030 , 1031 , 1032 , 1033 , 1034 , 1035 , 1036 , 1038 , 1039 , 1040 , 1041 , 1042 , 1043 , 1044 , 1045 , 1047 , 1048 , 1049 , 1050 , 1051 , 1052 , 1053 , 1054 , 1056 , 1057 , 1058 , 1059 , 1060 , 1061 , 1062 , 1063 , 1065 , 1066 , 1067 , 1068 , 1069 , 1070 , 1071 , 1072 , 1074 , 1075 , 1076 , 1077 , 1078 , 1079 , 1080 , 1081 , 1083 , 1084 , 1085 , 1086 , 1087 , 1088 , 1089 , 1090 , 1091 , 1093 , 1094 , 1095 , 1096 , 1097 , 1098 , 1099 , 1100 , 1102 , 1103 , 1104 , 1105 , 1106 , 1107 , 1108 , 1109 , 1110 , 1112 , 1113 , 1114 , 1115 , 1116 , 1117 , 1118 , 1119 , 1120 , 1122 , 1123 , 1124 , 1125 , 1126 , 1127 , 1128 , 1129 , 1130 , 1132 , 1133 , 1134 , 1135 , 1136 , 1137 , 1138 , 1139 , 1140 , 1142 , 1143 , 1144 , 1145 , 1146 , 1147 , 1148 , 1149 , 1150 , 1152 , 1153 , 1154 , 1155 , 1156 , 1157 , 1158 , 1159 , 1160 , 1161 , 1163 , 1164 , 1165 , 1166 , 1167 , 1168 , 1169 , 1170 , 1171 , 1173 , 1174 , 1175 , 1176 , 1177 , 1178 , 1179 , 1180 , 1181 , 1182 , 1184 , 1185 , 1186 , 1187 , 1188 , 1189 , 1190 , 1191 , 1192 , 1193 , 1195 , 1196 , 1197 , 1198 , 1199 , 1200 , 1201 , 1202 , 1203 , 1204 , 1206 , 1207 , 1208 , 1209 , 1210 , 1211 , 1212 , 1213 , 1214 , 1215 , 1216 , 1218 , 1219 , 1220 , 1221 , 1222 , 1223 , 1224 , 1225 , 1226 , 1227 , 1228 , 1230 , 1231 , 1232 , 1233 , 1234 , 1235 , 1236 , 1237 , 1238 , 1239 , 1240 , 1242 , 1243 , 1244 , 1245 , 1246 , 1247 , 1248 , 1249 , 1250 , 1251 , 1252 , 1254 , 1255 , 1256 , 1257 , 1258 , 1259 , 1260 , 1261 , 1262 , 1263 , 1264 , 1266 , 1267 , 1268 , 1269 , 1270 , 1271 , 1272 , 1273 , 1274 , 1275 , 1276 , 1277 , 1279 , 1280 , 1281 , 1282 , 1283 , 1284 , 1285 , 1286 , 1287 , 1288 , 1289 , 1290 , 1291 , 1293 , 1294 , 1295 , 1296 , 1297 , 1298 , 1299 , 1300 , 1301 , 1302 , 1303 , 1304 , 1306 , 1307 , 1308 , 1309 , 1310 , 1311 , 1312 , 1313 , 1314 , 1315 , 1316 , 1317 , 1318 , 1320 , 1321 , 1322 , 1323 , 1324 , 1325 , 1326 , 1327 , 1328 , 1329 , 1330 , 1331 , 1332 , 1333 , 1335 , 1336 , 1337 , 1338 , 1339 , 1340 , 1341 , 1342 , 1343 , 1344 , 1345 , 1346 , 1347 , 1348 , 1350 , 1351 , 1352 , 1353 , 1354 , 1355 , 1356 , 1357 , 1358 , 1359 , 1360 , 1361 , 1362 , 1363 , 1365 , 1366 , 1367 , 1368 , 1369 , 1370 , 1371 , 1372 , 1373 , 1374 , 1375 , 1376 , 1377 , 1378 , 1379 , 1381 , 1382 , 1383 , 1384 , 1385 , 1386 , 1387 , 1388 , 1389 , 1390 , 1391 , 1392 , 1393 , 1394 , 1395 , 1396 , 1398 , 1399 , 1400 , 1401 , 1402 , 1403 , 1404 , 1405 , 1406 , 1407 , 1408 , 1409 , 1410 , 1411 , 1412 , 1413 , 1415 , 1416 , 1417 , 1418 , 1419 , 1420 , 1421 , 1422 , 1423 , 1424 , 1425 , 1426 , 1427 , 1428 , 1429 , 1430 , 1431 , 1432 , 1434 , 1435 , 1436 , 1437 , 1438 , 1439 , 1440 , 1441 , 1442 , 1443 , 1444 , 1445 , 1446 , 1447 , 1448 , 1449 , 1450 , 1451 , 1453 , 1454 , 1455 , 1456 , 1457 , 1458 , 1459 , 1460 , 1461 , 1462 , 1463 , 1464 , 1465 , 1466 , 1467 , 1468 , 1469 , 1470 , 1471 , 1472 , 1474 , 1475 , 1476 , 1477 , 1478 , 1479 , 1480 , 1481 , 1482 , 1483 , 1484 , 1485 , 1486 , 1487 , 1488 , 1489 , 1490 , 1491 , 1492 , 1493 , 1494 , 1495 , 1497 , 1498 , 1499 , 1500 ,
28 1501 , 1502 , 1503 , 1504 , 1505 , 1506 , 1507 , 1508 , 1509 , 1510 , 1511 , 1512 , 1513 , 1514 , 1515 , 1516 , 1517 , 1518 , 1519 , 1521 , 1522 , 1523 , 1524 , 1525 , 1526 , 1527 , 1528 , 1529 , 1530 , 1531 , 1532 , 1533 , 1534 , 1535 , 1536 , 1537 , 1538 , 1539 , 1540 , 1541 , 1542 , 1543 , 1544 , 1545 , 1546 , 1548 , 1549 , 1550 , 1551 , 1552 , 1553 , 1554 , 1555 , 1556 , 1557 , 1558 , 1559 , 1560 , 1561 , 1562 , 1563 , 1564 , 1565 , 1566 , 1567 , 1568 , 1569 , 1570 , 1571 , 1572 , 1573 , 1574 , 1575 , 1576 , 1578 , 1579 , 1580 , 1581 , 1582 , 1583 , 1584 , 1585 , 1586 , 1587 , 1588 , 1589 , 1590 , 1591 , 1592 , 1593 , 1594 , 1595 , 1596 , 1597 , 1598 , 1599 , 1600 , 1601 , 1602 , 1603 , 1604 , 1605 , 1606 , 1607 , 1608 , 1609 , 1610 , 1611 , 1612 , 1613 , 1615 , 1616 , 1617 , 1618 , 1619 , 1620 , 1621 , 1622 , 1623 , 1624 , 1625 , 1626 , 1627 , 1628 , 1629 , 1630 , 1631 , 1632 , 1633 , 1634 , 1635 , 1636 , 1637 , 1638 , 1639 , 1640 , 1641 , 1642 , 1643 , 1644 , 1645 , 1646 , 1647 , 1648 , 1649 , 1650 , 1651 , 1652 , 1653 , 1654 , 1655 , 1656 , 1657 , 1658 , 1659 , 1660 , 1661 , 1663 , 1664 , 1665 , 1666 , 1667 , 1668 , 1669 , 1670 , 1671 , 1672 , 1673 , 1674 , 1675 , 1676 , 1677 , 1678 , 1679 , 1680 , 1681 , 1682 , 1683 , 1684 , 1685 , 1686 , 1687 , 1688 , 1689 , 1690 , 1691 , 1692 , 1693 , 1694 , 1695 , 1696 , 1697 , 1698 , 1699 , 1700 , 1701 , 1702 , 1703 , 1704 , 1705 , 1706 , 1707 , 1708 , 1709 , 1710 , 1711 , 1712 , 1713 , 1714 , 1715 , 1716 , 1717 , 1718 , 1719 , 1720 , 1721 , 1722 , 1723 , 1724 , 1725 , 1726 , 1727 , 1728 , 1729 , 1730 , 1731 , 1732 , 1733 , 1734 , 1735 , 1736 , 1737 , 1738 , 1739 , 1740 , 1741 , 1742 , 1743 , 1744 , 1745 , 1746 , 1747 , 1748 , 1749 , 1750 , 1751 , 1752 , 1753 , 1754 , 1755 , 1756 , 1757 , 1758 , 1759 , 1760 , 1761 , 1762 , 1763 , 1764 , 1765 , 1766 , 1767 , 1768 , 1769 , 1770 , 1771 , 1772 , 1773 , 1774 , 1775 , 1776 , 1777 , 1778 , 1779 , 1780 , 1781 , 1782 , 1783 , 1784 , 1785 , 1786 , 1787 , 1788 , 1789 , 1790 , 1791 , 1792 , 1793 , 1794 , 1795 , 1796 , 1797 , 1798 , 1799 , 1800 , 1801 , 1802 , 1803 , 1804 , 1805 , 1806 , 1807 , 1808 , 1809 , 1810 , 1811 , 1812 , 1813 , 1814 , 1815 , 1816 , 1817 , 1818 , 1819 , 1820 , 1821 , 1822 , 1823 , 1824 , 1825 , 1826 , 1827 , 1828 , 1829 , 1830 , 1831 , 1832 , 1833 , 1834 , 1835 , 1836 , 1837 , 1838 , 1839 , 1840 , 1841 , 1842 , 1843 , 1844 , 1845 , 1846 , 1847 , 1848 , 1849 , 1850 , 1851 , 1852 , 1853 , 1854 , 1855 , 1856 , 1857 , 1858 , 1859 , 1860 , 1861 , 1862 , 1863 , 1864 , 1865 , 1866 , 1867 , 1868 , 1869 , 1870 , 1871 , 1872 , 1873 , 1874 , 1875 , 1876 , 1877 , 1878 , 1879 , 1880 , 1881 , 1882 , 1883 , 1884 , 1885 , 1886 , 1887 , 1887 , 1888 , 1889 , 1890 , 1891 , 1892 , 1893 , 1894 , 1895 , 1896 , 1897 , 1898 , 1899 , 1900 , 1901 , 1902 , 1903 , 1904 , 1905 , 1906 , 1907 , 1908 , 1909 , 1910 , 1911 , 1912 , 1913 , 1914 , 1915 , 1916 , 1917 , 1918 , 1919 , 1920 , 1921 , 1922 , 1923 , 1924 , 1925 , 1926 , 1927 , 1928 , 1929 , 1930 , 1931 , 1932 , 1933 , 1934 , 1935 , 1936 , 1936 , 1937 , 1938 , 1939 , 1940 , 1941 , 1942 , 1943 , 1944 , 1945 , 1946 , 1947 , 1948 , 1949 , 1950 , 1951 , 1952 , 1953 , 1954 , 1955 , 1956 , 1957 , 1958 , 1959 , 1960 , 1961 , 1962 , 1963 , 1964 , 1965 , 1966 , 1967 , 1968 , 1969 , 1970 , 1971 , 1972 , 1973 , 1973 , 1974 , 1975 , 1976 , 1977 , 1978 , 1979 , 1980 , 1981 , 1982 , 1983 , 1984 , 1985 , 1986 , 1987 , 1988 , 1989 , 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996 , 1997 , 1998 , 1999 , 2000 ,
29 2001 , 2002 , 2003 , 2004 , 2004 , 2005 , 2006 , 2007 , 2008 , 2009 , 2010 , 2011 , 2012 , 2013 , 2014 , 2015 , 2016 , 2017 , 2018 , 2019 , 2020 , 2021 , 2022 , 2023 , 2024 , 2025 , 2026 , 2027 , 2028 , 2029 , 2030 , 2031 , 2032 , 2032 , 2033 , 2034 , 2035 , 2036 , 2037 , 2038 , 2039 , 2040 , 2041 , 2042 , 2043 , 2044 , 2045 , 2046 , 2047 , 2048 , 2049 , 2050 , 2051 , 2052 , 2053 , 2054 , 2055 , 2056 , 2057 , 2057 , 2058 , 2059 , 2060 , 2061 , 2062 , 2063 , 2064 , 2065 , 2066 , 2067 , 2068 , 2069 , 2070 , 2071 , 2072 , 2073 , 2074 , 2075 , 2076 , 2077 , 2078 , 2079 , 2080 , 2080 , 2081 , 2082 , 2083 , 2084 , 2085 , 2086 , 2087 , 2088 , 2089 , 2090 , 2091 , 2092 , 2093 , 2094 , 2095 , 2096 , 2097 , 2098 , 2099 , 2100 , 2101 , 2102 , 2102 , 2103 , 2104 , 2105 , 2106 , 2107 , 2108 , 2109 , 2110 , 2111 , 2112 , 2113 , 2114 , 2115 , 2116 , 2117 , 2118 , 2119 , 2120 , 2121 , 2122 , 2122 , 2123 , 2124 , 2125 , 2126 , 2127 , 2128 , 2129 , 2130 , 2131 , 2132 , 2133 , 2134 , 2135 , 2136 , 2137 , 2138 , 2139 , 2140 , 2141 , 2141 , 2142 , 2143 , 2144 , 2145 , 2146 , 2147 , 2148 , 2149 , 2150 , 2151 , 2152 , 2153 , 2154 , 2155 , 2156 , 2157 , 2158 , 2159 , 2159 , 2160 , 2161 , 2162 , 2163 , 2164 , 2165 , 2166 , 2167 , 2168 , 2169 , 2170 , 2171 , 2172 , 2173 , 2174 , 2175 , 2176 , 2177 , 2177 , 2178 , 2179 , 2180 , 2181 , 2182 , 2183 , 2184 , 2185 , 2186 , 2187 , 2188 , 2189 , 2190 , 2191 , 2192 , 2193 , 2194 , 2194 , 2195 , 2196 , 2197 , 2198 , 2199 , 2200 , 2201 , 2202 , 2203 , 2204 , 2205 , 2206 , 2207 , 2208 , 2209 , 2210 , 2210 , 2211 , 2212 , 2213 , 2214 , 2215 , 2216 , 2217 , 2218 , 2219 , 2220 , 2221 , 2222 , 2223 , 2224 , 2225 , 2225 , 2226 , 2227 , 2228 , 2229 , 2230 , 2231 , 2232 , 2233 , 2234 , 2235 , 2236 , 2237 , 2238 , 2239 , 2240 , 2241 , 2241 , 2242 , 2243 , 2244 , 2245 , 2246 , 2247 , 2248 , 2249 , 2250 , 2251 , 2252 , 2253 , 2254 , 2255 , 2255 , 2256 , 2257 , 2258 , 2259 , 2260 , 2261 , 2262 , 2263 , 2264 , 2265 , 2266 , 2267 , 2268 , 2269 , 2270 , 2270 , 2271 , 2272 , 2273 , 2274 , 2275 , 2276 , 2277 , 2278 , 2279 , 2280 , 2281 , 2282 , 2283 , 2284 , 2284 , 2285 , 2286 , 2287 , 2288 , 2289 , 2290 , 2291 , 2292 , 2293 , 2294 , 2295 , 2296 , 2297 , 2297 , 2298 , 2299 , 2300 , 2301 , 2302 , 2303 , 2304 , 2305 , 2306 , 2307 , 2308 , 2309 , 2310 , 2311 , 2311 , 2312 , 2313 , 2314 , 2315 , 2316 , 2317 , 2318 , 2319 , 2320 , 2321 , 2322 , 2323 , 2324 , 2324 , 2325 , 2326 , 2327 , 2328 , 2329 , 2330 , 2331 , 2332 , 2333 , 2334 , 2335 , 2336 , 2337 , 2337 , 2338 , 2339 , 2340 , 2341 , 2342 , 2343 , 2344 , 2345 , 2346 , 2347 , 2348 , 2349 , 2349 , 2350 , 2351 , 2352 , 2353 , 2354 , 2355 , 2356 , 2357 , 2358 , 2359 , 2360 , 2361 , 2362 , 2362 , 2363 , 2364 , 2365 , 2366 , 2367 , 2368 , 2369 , 2370 , 2371 , 2372 , 2373 , 2374 , 2374 , 2375 , 2376 , 2377 , 2378 , 2379 , 2380 , 2381 , 2382 , 2383 , 2384 , 2385 , 2386 , 2386 , 2387 , 2388 , 2389 , 2390 , 2391 , 2392 , 2393 , 2394 , 2395 , 2396 , 2397 , 2397 , 2398 , 2399 , 2400 , 2401 , 2402 , 2403 , 2404 , 2405 , 2406 , 2407 , 2408 , 2409 , 2409 , 2410 , 2411 , 2412 , 2413 , 2414 , 2415 , 2416 , 2417 , 2418 , 2419 , 2420 , 2420 , 2421 , 2422 , 2423 , 2424 , 2425 , 2426 , 2427 , 2428 , 2429 , 2430 , 2431 , 2431 , 2432 , 2433 , 2434 , 2435 , 2436 , 2437 , 2438 , 2439 , 2440 , 2441 , 2442 , 2442 , 2443 , 2444 , 2445 , 2446 , 2447 , 2448 , 2449 , 2450 , 2451 , 2452 , 2453 , 2453 , 2454 , 2455 , 2456 , 2457 , 2458 , 2459 , 2460 , 2461 , 2462 , 2463 , 2464 , 2464 , 2465 , 2466 , 2467 , 2468 , 2469 , 2470 , 2471 , 2472 , 2473 , 2474 , 2474 , 2475 , 2476 , 2477 , 2478 , 2479 , 2480 , 2481 , 2482 , 2483 , 2484 , 2485 , 2485 , 2486 , 2487 , 2488 , 2489 , 2490 , 2491 , 2492 , 2493 , 2494 , 2495 , 2495 , 2496 , 2497 , 2498 , 2499 , 2500 ,
30 2501 , 2502 , 2503 , 2504 , 2505 , 2505 , 2506 , 2507 , 2508 , 2509 , 2510 , 2511 , 2512 , 2513 , 2514 , 2515 , 2516 , 2516 , 2517 , 2518 , 2519 , 2520 , 2521 , 2522 , 2523 , 2524 , 2525 , 2526 , 2526 , 2527 , 2528 , 2529 , 2530 , 2531 , 2532 , 2533 , 2534 , 2535 , 2535 , 2536 , 2537 , 2538 , 2539 , 2540 , 2541 , 2542 , 2543 , 2544 , 2545 , 2545 , 2546 , 2547 , 2548 , 2549 , 2550 , 2551 , 2552 , 2553 , 2554 , 2555 , 2555 , 2556 , 2557 , 2558 , 2559 , 2560 , 2561 , 2562 , 2563 , 2564 , 2565 , 2565 , 2566 , 2567 , 2568 , 2569 , 2570 , 2571 , 2572 , 2573 , 2574 , 2574 , 2575 , 2576 , 2577 , 2578 , 2579 , 2580 , 2581 , 2582 , 2583 , 2583 , 2584 , 2585 , 2586 , 2587 , 2588 , 2589 , 2590 , 2591 , 2592 , 2593 , 2593 , 2594 , 2595 , 2596 , 2597 , 2598 , 2599 , 2600 , 2601 , 2602 , 2602 , 2603 , 2604 , 2605 , 2606 , 2607 , 2608 , 2609 , 2610 , 2611 , 2611 , 2612 , 2613 , 2614 , 2615 , 2616 , 2617 , 2618 , 2619 , 2620 , 2620 , 2621 , 2622 , 2623 , 2624 , 2625 , 2626 , 2627 , 2628 , 2629 , 2629 , 2630 , 2631 , 2632 , 2633 , 2634 , 2635 , 2636 , 2637 , 2638 , 2638 , 2639 , 2640 , 2641 , 2642 , 2643 , 2644 , 2645 , 2646 , 2647 , 2647 , 2648 , 2649 , 2650 , 2651 , 2652 , 2653 , 2654 , 2655 , 2656 , 2656 , 2657 , 2658 , 2659 , 2660 , 2661 , 2662 , 2663 , 2664 , 2665 , 2665 , 2666 , 2667 , 2668 , 2669 , 2670 , 2671 , 2672 , 2673 , 2674 , 2674 , 2675 , 2676 , 2677 , 2678 , 2679 , 2680 , 2681 , 2682 , 2682 , 2683 , 2684 , 2685 , 2686 , 2687 , 2688 , 2689 , 2690 , 2691 , 2691 , 2692 , 2693 , 2694 , 2695 , 2696 , 2697 , 2698 , 2699 , 2700 , 2700 , 2701 , 2702 , 2703 , 2704 , 2705 , 2706 , 2707 , 2708 , 2708 , 2709 , 2710 , 2711 , 2712 , 2713 , 2714 , 2715 , 2716 , 2717 , 2717 , 2718 , 2719 , 2720 , 2721 , 2722 , 2723 , 2724 , 2725 , 2725 , 2726 , 2727 , 2728 , 2729 , 2730 , 2731 , 2732 , 2733 , 2733 , 2734 , 2735 , 2736 , 2737 , 2738 , 2739 , 2740 , 2741 , 2742 , 2742 , 2743 , 2744 , 2745 , 2746 , 2747 , 2748 , 2749 , 2750 , 2750 , 2751 , 2752 , 2753 , 2754 , 2755 , 2756 , 2757 , 2758 , 2758 , 2759 , 2760 , 2761 , 2762 , 2763 , 2764 , 2765 , 2766 , 2766 , 2767 , 2768 , 2769 , 2770 , 2771 , 2772 , 2773 , 2774 , 2775 , 2775 , 2776 , 2777 , 2778 , 2779 , 2780 , 2781 , 2782 , 2783 , 2783 , 2784 , 2785 , 2786 , 2787 , 2788 , 2789 , 2790 , 2791 , 2791 , 2792 , 2793 , 2794 , 2795 , 2796 , 2797 , 2798 , 2799 , 2799 , 2800 , 2801 , 2802 , 2803 , 2804 , 2805 , 2806 , 2807 , 2807 , 2808 , 2809 , 2810 , 2811 , 2812 , 2813 , 2814 , 2815 , 2815 , 2816 , 2817 , 2818 , 2819 , 2820 , 2821 , 2822 , 2823 , 2823 , 2824 , 2825 , 2826 , 2827 , 2828 , 2829 , 2830 , 2830 , 2831 , 2832 , 2833 , 2834 , 2835 , 2836 , 2837 , 2838 , 2838 , 2839 , 2840 , 2841 , 2842 , 2843 , 2844 , 2845 , 2846 , 2846 , 2847 , 2848 , 2849 , 2850 , 2851 , 2852 , 2853 , 2854 , 2854 , 2855 , 2856 , 2857 , 2858 , 2859 , 2860 , 2861 , 2862 , 2862 , 2863 , 2864 , 2865 , 2866 , 2867 , 2868 , 2869 , 2869 , 2870 , 2871 , 2872 , 2873 , 2874 , 2875 , 2876 , 2877 , 2877 , 2878 , 2879 , 2880 , 2881 , 2882 , 2883 , 2884 , 2885 , 2885 , 2886 , 2887 , 2888 , 2889 , 2890 , 2891 , 2892 , 2892 , 2893 , 2894 , 2895 , 2896 , 2897 , 2898 , 2899 , 2900 , 2900 , 2901 , 2902 , 2903 , 2904 , 2905 , 2906 , 2907 , 2908 , 2908 , 2909 , 2910 , 2911 , 2912 , 2913 , 2914 , 2915 , 2915 , 2916 , 2917 , 2918 , 2919 , 2920 , 2921 , 2922 , 2923 , 2923 , 2924 , 2925 , 2926 , 2927 , 2928 , 2929 , 2930 , 2930 , 2931 , 2932 , 2933 , 2934 , 2935 , 2936 , 2937 , 2938 , 2938 , 2939 , 2940 , 2941 , 2942 , 2943 , 2944 , 2945 , 2945 , 2946 , 2947 , 2948 , 2949 , 2950 , 2951 , 2952 , 2953 , 2953 , 2954 , 2955 , 2956 , 2957 , 2958 , 2959 , 2960 , 2960 , 2961 , 2962 , 2963 , 2964 , 2965 , 2966 , 2967 , 2968 , 2968 , 2969 , 2970 , 2971 , 2972 , 2973 , 2974 , 2975 , 2975 , 2976 , 2977 , 2978 , 2979 , 2980 , 2981 , 2982 , 2982 , 2983 , 2984 , 2985 , 2986 , 2987 , 2988 , 2989 , 2990 , 2990 , 2991 , 2992 , 2993 , 2994 , 2995 , 2996 , 2997 , 2997 , 2998 , 2999 , 3000 ,
31 3001 , 3002 , 3003 , 3004 , 3004 , 3005 , 3006 , 3007 , 3008 , 3009 , 3010 , 3011 , 3012 , 3012 , 3013 , 3014 , 3015 , 3016 , 3017 , 3018 , 3019 , 3019 , 3020 , 3021 , 3022 , 3023 , 3024 , 3025 , 3026 , 3026 , 3027 , 3028 , 3029 , 3030 , 3031 , 3032 , 3033 , 3033 , 3034 , 3035 , 3036 , 3037 , 3038 , 3039 , 3040 , 3041 , 3041 , 3042 , 3043 , 3044 , 3045 , 3046 , 3047 , 3048 , 3048 , 3049 , 3050 , 3051 , 3052 , 3053 , 3054 , 3055 , 3055 , 3056 , 3057 , 3058 , 3059 , 3060 , 3061 , 3062 , 3062 , 3063 , 3064 , 3065 , 3066 , 3067 , 3068 , 3069 , 3069 , 3070 , 3071 , 3072 , 3073 , 3074 , 3075 , 3076 , 3077 , 3077 , 3078 , 3079 , 3080 , 3081 , 3082 , 3083 , 3084 , 3084 , 3085 , 3086 , 3087 , 3088 , 3089 , 3090 , 3091 , 3091 , 3092 , 3093 , 3094 , 3095 , 3096 , 3097 , 3098 , 3098 , 3099 , 3100 , 3101 , 3102 , 3103 , 3104 , 3105 , 3105 , 3106 , 3107 , 3108 , 3109 , 3110 , 3111 , 3112 , 3112 , 3113 , 3114 , 3115 , 3116 , 3117 , 3118 , 3119 , 3120 , 3120 , 3121 , 3122 , 3123 , 3124 , 3125 , 3126 , 3127 , 3127 , 3128 , 3129 , 3130 , 3131 , 3132 , 3133 , 3134 , 3134 , 3135 , 3136 , 3137 , 3138 , 3139 , 3140 , 3141 , 3141 , 3142 , 3143 , 3144 , 3145 , 3146 , 3147 , 3148 , 3148 , 3149 , 3150 , 3151 , 3152 , 3153 , 3154 , 3155 , 3155 , 3156 , 3157 , 3158 , 3159 , 3160 , 3161 , 3162 , 3162 , 3163 , 3164 , 3165 , 3166 , 3167 , 3168 , 3169 , 3169 , 3170 , 3171 , 3172 , 3173 , 3174 , 3175 , 3176 , 3176 , 3177 , 3178 , 3179 , 3180 , 3181 , 3182 , 3183 , 3183 , 3184 , 3185 , 3186 , 3187 , 3188 , 3189 , 3190 , 3190 , 3191 , 3192 , 3193 , 3194 , 3195 , 3196 , 3197 , 3197 , 3198 , 3199 , 3200 , 3201 , 3202 , 3203 , 3204 , 3204 , 3205 , 3206 , 3207 , 3208 , 3209 , 3210 , 3211 , 3211 , 3212 , 3213 , 3214 , 3215 , 3216 , 3217 , 3218 , 3218 , 3219 , 3220 , 3221 , 3222 , 3223 , 3224 , 3225 , 3225 , 3226 , 3227 , 3228 , 3229 , 3230 , 3231 , 3232 , 3232 , 3233 , 3234 , 3235 , 3236 , 3237 , 3238 , 3239 , 3239 , 3240 , 3241 , 3242 , 3243 , 3244 , 3245 , 3246 , 3246 , 3247 , 3248 , 3249 , 3250 , 3251 , 3252 , 3253 , 3253 , 3254 , 3255 , 3256 , 3257 , 3258 , 3259 , 3260 , 3260 , 3261 , 3262 , 3263 , 3264 , 3265 , 3266 , 3267 , 3267 , 3268 , 3269 , 3270 , 3271 , 3272 , 3273 , 3274 , 3274 , 3275 , 3276 , 3277 , 3278 , 3279 , 3280 , 3281 , 3281 , 3282 , 3283 , 3284 , 3285 , 3286 , 3287 , 3288 , 3288 , 3289 , 3290 , 3291 , 3292 , 3293 , 3294 , 3295 , 3295 , 3296 , 3297 , 3298 , 3299 , 3300 , 3301 , 3302 , 3302 , 3303 , 3304 , 3305 , 3306 , 3307 , 3308 , 3309 , 3310 , 3310 , 3311 , 3312 , 3313 , 3314 , 3315 , 3316 , 3317 , 3317 , 3318 , 3319 , 3320 , 3321 , 3322 , 3323 , 3324 , 3324 , 3325 , 3326 , 3327 , 3328 , 3329 , 3330 , 3331 , 3331 , 3332 , 3333 , 3334 , 3335 , 3336 , 3337 , 3338 , 3338 , 3339 , 3340 , 3341 , 3342 , 3343 , 3344 , 3345 , 3345 , 3346 , 3347 , 3348 , 3349 , 3350 , 3351 , 3352 , 3352 , 3353 , 3354 , 3355 , 3356 , 3357 , 3358 , 3359 , 3359 , 3360 , 3361 , 3362 , 3363 , 3364 , 3365 , 3366 , 3366 , 3367 , 3368 , 3369 , 3370 , 3371 , 3372 , 3373 , 3373 , 3374 , 3375 , 3376 , 3377 , 3378 , 3379 , 3380 , 3380 , 3381 , 3382 , 3383 , 3384 , 3385 , 3386 , 3387 , 3387 , 3388 , 3389 , 3390 , 3391 , 3392 , 3393 , 3394 , 3394 , 3395 , 3396 , 3397 , 3398 , 3399 , 3400 , 3401 , 3401 , 3402 , 3403 , 3404 , 3405 , 3406 , 3407 , 3408 , 3408 , 3409 , 3410 , 3411 , 3412 , 3413 , 3414 , 3415 , 3415 , 3416 , 3417 , 3418 , 3419 , 3420 , 3421 , 3422 , 3422 , 3423 , 3424 , 3425 , 3426 , 3427 , 3428 , 3429 , 3429 , 3430 , 3431 , 3432 , 3433 , 3434 , 3435 , 3436 , 3436 , 3437 , 3438 , 3439 , 3440 , 3441 , 3442 , 3443 , 3443 , 3444 , 3445 , 3446 , 3447 , 3448 , 3449 , 3450 , 3451 , 3451 , 3452 , 3453 , 3454 , 3455 , 3456 , 3457 , 3458 , 3458 , 3459 , 3460 , 3461 , 3462 , 3463 , 3464 , 3465 , 3465 , 3466 , 3467 , 3468 , 3469 , 3470 , 3471 , 3472 , 3472 , 3473 , 3474 , 3475 , 3476 , 3477 , 3478 , 3479 , 3479 , 3480 , 3481 , 3482 , 3483 , 3484 , 3485 , 3486 , 3486 , 3487 , 3488 , 3489 , 3490 , 3491 , 3492 , 3493 , 3494 , 3494 , 3495 , 3496 , 3497 , 3498 , 3499 , 3500 ,
32 3501 , 3501 , 3502 , 3503 , 3504 , 3505 , 3506 , 3507 , 3508 , 3508 , 3509 , 3510 , 3511 , 3512 , 3513 , 3514 , 3515 , 3515 , 3516 , 3517 , 3518 , 3519 , 3520 , 3521 , 3522 , 3522 , 3523 , 3524 , 3525 , 3526 , 3527 , 3528 , 3529 , 3530 , 3530 , 3531 , 3532 , 3533 , 3534 , 3535 , 3536 , 3537 , 3537 , 3538 , 3539 , 3540 , 3541 , 3542 , 3543 , 3544 , 3544 , 3545 , 3546 , 3547 , 3548 , 3549 , 3550 , 3551 , 3552 , 3552 , 3553 , 3554 , 3555 , 3556 , 3557 , 3558 , 3559 , 3559 , 3560 , 3561 , 3562 , 3563 , 3564 , 3565 , 3566 , 3566 , 3567 , 3568 , 3569 , 3570 , 3571 , 3572 , 3573 , 3573 , 3574 , 3575 , 3576 , 3577 , 3578 , 3579 , 3580 , 3581 , 3581 , 3582 , 3583 , 3584 , 3585 , 3586 , 3587 , 3588 , 3588 , 3589 , 3590 , 3591 , 3592 , 3593 , 3594 , 3595 , 3596 , 3596 , 3597 , 3598 , 3599 , 3600 , 3601 , 3602 , 3603 , 3603 , 3604 , 3605 , 3606 , 3607 , 3608 , 3609 , 3610 , 3611 , 3611 , 3612 , 3613 , 3614 , 3615 , 3616 , 3617 , 3618 , 3618 , 3619 , 3620 , 3621 , 3622 , 3623 , 3624 , 3625 , 3625 , 3626 , 3627 , 3628 , 3629 , 3630 , 3631 , 3632 , 3633 , 3633 , 3634 , 3635 , 3636 , 3637 , 3638 , 3639 , 3640 , 3641 , 3641 , 3642 , 3643 , 3644 , 3645 , 3646 , 3647 , 3648 , 3648 , 3649 , 3650 , 3651 , 3652 , 3653 , 3654 , 3655 , 3656 , 3656 , 3657 , 3658 , 3659 , 3660 , 3661 , 3662 , 3663 , 3663 , 3664 , 3665 , 3666 , 3667 , 3668 , 3669 , 3670 , 3671 , 3671 , 3672 , 3673 , 3674 , 3675 , 3676 , 3677 , 3678 , 3679 , 3679 , 3680 , 3681 , 3682 , 3683 , 3684 , 3685 , 3686 , 3686 , 3687 , 3688 , 3689 , 3690 , 3691 , 3692 , 3693 , 3694 , 3694 , 3695 , 3696 , 3697 , 3698 , 3699 , 3700 , 3701 , 3702 , 3702 , 3703 , 3704 , 3705 , 3706 , 3707 , 3708 , 3709 , 3709 , 3710 , 3711 , 3712 , 3713 , 3714 , 3715 , 3716 , 3717 , 3717 , 3718 , 3719 , 3720 , 3721 , 3722 , 3723 , 3724 , 3725 , 3725 , 3726 , 3727 , 3728 , 3729 , 3730 , 3731 , 3732 , 3733 , 3733 , 3734 , 3735 , 3736 , 3737 , 3738 , 3739 , 3740 , 3741 , 3741 , 3742 , 3743 , 3744 , 3745 , 3746 , 3747 , 3748 , 3749 , 3749 , 3750 , 3751 , 3752 , 3753 , 3754 , 3755 , 3756 , 3757 , 3757 , 3758 , 3759 , 3760 , 3761 , 3762 , 3763 , 3764 , 3765 , 3765 , 3766 , 3767 , 3768 , 3769 , 3770 , 3771 , 3772 , 3773 , 3773 , 3774 , 3775 , 3776 , 3777 , 3778 , 3779 , 3780 , 3781 , 3781 , 3782 , 3783 , 3784 , 3785 , 3786 , 3787 , 3788 , 3789 , 3789 , 3790 , 3791 , 3792 , 3793 , 3794 , 3795 , 3796 , 3797 , 3797 , 3798 , 3799 , 3800 , 3801 , 3802 , 3803 , 3804 , 3805 , 3805 , 3806 , 3807 , 3808 , 3809 , 3810 , 3811 , 3812 , 3813 , 3814 , 3814 , 3815 , 3816 , 3817 , 3818 , 3819 , 3820 , 3821 , 3822 , 3822 , 3823 , 3824 , 3825 , 3826 , 3827 , 3828 , 3829 , 3830 , 3830 , 3831 , 3832 , 3833 , 3834 , 3835 , 3836 , 3837 , 3838 , 3839 , 3839 , 3840 , 3841 , 3842 , 3843 , 3844 , 3845 , 3846 , 3847 , 3847 , 3848 , 3849 , 3850 , 3851 , 3852 , 3853 , 3854 , 3855 , 3856 , 3856 , 3857 , 3858 , 3859 , 3860 , 3861 , 3862 , 3863 , 3864 , 3864 , 3865 , 3866 , 3867 , 3868 , 3869 , 3870 , 3871 , 3872 , 3873 , 3873 , 3874 , 3875 , 3876 , 3877 , 3878 , 3879 , 3880 , 3881 , 3881 , 3882 , 3883 , 3884 , 3885 , 3886 , 3887 , 3888 , 3889 , 3890 , 3890 , 3891 , 3892 , 3893 , 3894 , 3895 , 3896 , 3897 , 3898 , 3899 , 3899 , 3900 , 3901 , 3902 , 3903 , 3904 , 3905 , 3906 , 3907 , 3908 , 3908 , 3909 , 3910 , 3911 , 3912 , 3913 , 3914 , 3915 , 3916 , 3917 , 3917 , 3918 , 3919 , 3920 , 3921 , 3922 , 3923 , 3924 , 3925 , 3926 , 3926 , 3927 , 3928 , 3929 , 3930 , 3931 , 3932 , 3933 , 3934 , 3935 , 3935 , 3936 , 3937 , 3938 , 3939 , 3940 , 3941 , 3942 , 3943 , 3944 , 3944 , 3945 , 3946 , 3947 , 3948 , 3949 , 3950 , 3951 , 3952 , 3953 , 3953 , 3954 , 3955 , 3956 , 3957 , 3958 , 3959 , 3960 , 3961 , 3962 , 3962 , 3963 , 3964 , 3965 , 3966 , 3967 , 3968 , 3969 , 3970 , 3971 , 3972 , 3972 , 3973 , 3974 , 3975 , 3976 , 3977 , 3978 , 3979 , 3980 , 3981 , 3981 , 3982 , 3983 , 3984 , 3985 , 3986 , 3987 , 3988 , 3989 , 3990 , 3990 , 3991 , 3992 , 3993 , 3994 , 3995 , 3996 , 3997 , 3998 , 3999 , 4000 , 4000 ,
33 4001 , 4002 , 4003 , 4004 , 4005 , 4006 , 4007 , 4008 , 4009 , 4010 , 4010 , 4011 , 4012 , 4013 , 4014 , 4015 , 4016 , 4017 , 4018 , 4019 , 4019 , 4020 , 4021 , 4022 , 4023 , 4024 , 4025 , 4026 , 4027 , 4028 , 4029 , 4029 , 4030 , 4031 , 4032 , 4033 , 4034 , 4035 , 4036 , 4037 , 4038 , 4039 , 4039 , 4040 , 4041 , 4042 , 4043 , 4044 , 4045 , 4046 , 4047 , 4048 , 4049 , 4049 , 4050 , 4051 , 4052 , 4053 , 4054 , 4055 , 4056 , 4057 , 4058 , 4059 , 4059 , 4060 , 4061 , 4062 , 4063 , 4064 , 4065 , 4066 , 4067 , 4068 , 4069 , 4070 , 4070 , 4071 , 4072 , 4073 , 4074 , 4075 , 4076 , 4077 , 4078 , 4079 , 4080 , 4080 , 4081 , 4082 , 4083 , 4084 , 4085 , 4086 , 4087 , 4088 , 4089 , 4090 , 4091 , 4091 , 4092 , 4093 , 4094 , 4095 );
34
35 type saw_unload_array_t is array ( 0 to 4095 ) of integer range 0 to 4095 ;
36 constant saw_unload_array_c : saw_unload_array_t : =
37 ( 0 , 5 , 5 , 6 , 6 , 7 , 7 , 8 , 8 , 9 , 9 , 10 , 10 , 11 , 11 , 12 , 12 , 13 , 13 , 14 , 14 , 15 , 15 , 16 , 16 , 17 , 17 , 18 , 18 , 19 , 19 , 20 , 20 , 21 , 21 , 22 , 22 , 23 , 23 , 24 , 24 , 25 , 26 , 26 , 27 , 27 , 28 , 28 , 29 , 29 , 30 , 30 , 31 , 31 , 32 , 32 , 33 , 33 , 34 , 34 , 35 , 35 , 36 , 36 , 37 , 37 , 38 , 38 , 39 , 39 , 40 , 40 , 41 , 41 , 42 , 42 , 43 , 44 , 44 , 45 , 45 , 46 , 46 , 47 , 47 , 48 , 48 , 49 , 49 , 50 , 50 , 51 , 51 , 52 , 52 , 53 , 53 , 54 , 55 , 55 , 56 , 56 , 57 , 57 , 58 , 58 , 59 , 59 , 60 , 60 , 61 , 61 , 62 , 62 , 63 , 64 , 64 , 65 , 65 , 66 , 66 , 67 , 67 , 68 , 68 , 69 , 69 , 70 , 71 , 71 , 72 , 72 , 73 , 73 , 74 , 74 , 75 , 75 , 76 , 76 , 77 , 78 , 78 , 79 , 79 , 80 , 80 , 81 , 81 , 82 , 82 , 83 , 84 , 84 , 85 , 85 , 86 , 86 , 87 , 87 , 88 , 88 , 89 , 90 , 90 , 91 , 91 , 92 , 92 , 93 , 93 , 94 , 95 , 95 , 96 , 96 , 97 , 97 , 98 , 98 , 99 , 100 , 100 , 101 , 101 , 102 , 102 , 103 , 103 , 104 , 105 , 105 , 106 , 106 , 107 , 107 , 108 , 108 , 109 , 110 , 110 , 111 , 111 , 112 , 112 , 113 , 114 , 114 , 115 , 115 , 116 , 116 , 117 , 118 , 118 , 119 , 119 , 120 , 120 , 121 , 121 , 122 , 123 , 123 , 124 , 124 , 125 , 125 , 126 , 127 , 127 , 128 , 128 , 129 , 129 , 130 , 131 , 131 , 132 , 132 , 133 , 134 , 134 , 135 , 135 , 136 , 136 , 137 , 138 , 138 , 139 , 139 , 140 , 140 , 141 , 142 , 142 , 143 , 143 , 144 , 145 , 145 , 146 , 146 , 147 , 147 , 148 , 149 , 149 , 150 , 150 , 151 , 152 , 152 , 153 , 153 , 154 , 154 , 155 , 156 , 156 , 157 , 157 , 158 , 159 , 159 , 160 , 160 , 161 , 162 , 162 , 163 , 163 , 164 , 164 , 165 , 166 , 166 , 167 , 167 , 168 , 169 , 169 , 170 , 170 , 171 , 172 , 172 , 173 , 173 , 174 , 175 , 175 , 176 , 176 , 177 , 178 , 178 , 179 , 179 , 180 , 181 , 181 , 182 , 182 , 183 , 184 , 184 , 185 , 185 , 186 , 187 , 187 , 188 , 188 , 189 , 190 , 190 , 191 , 192 , 192 , 193 , 193 , 194 , 195 , 195 , 196 , 196 , 197 , 198 , 198 , 199 , 199 , 200 , 201 , 201 , 202 , 203 , 203 , 204 , 204 , 205 , 206 , 206 , 207 , 207 , 208 , 209 , 209 , 210 , 211 , 211 , 212 , 212 , 213 , 214 , 214 , 215 , 215 , 216 , 217 , 217 , 218 , 219 , 219 , 220 , 220 , 221 , 222 , 222 , 223 , 224 , 224 , 225 , 225 , 226 , 227 , 227 , 228 , 229 , 229 , 230 , 230 , 231 , 232 , 232 , 233 , 234 , 234 , 235 , 236 , 236 , 237 , 237 , 238 , 239 , 239 , 240 , 241 , 241 , 242 , 242 , 243 , 244 , 244 , 245 , 246 , 246 , 247 , 248 , 248 , 249 , 249 , 250 , 251 , 251 , 252 , 253 , 253 , 254 , 255 , 255 , 256 , 256 , 257 , 258 , 258 , 259 , 260 , 260 , 261 , 262 , 262 , 263 , 264 , 264 , 265 , 265 , 266 , 267 , 267 , 268 , 269 , 269 , 270 , 271 , 271 , 272 , 273 , 273 , 274 , 275 , 275 , 276 , 277 , 277 , 278 , 278 , 279 , 280 , 280 , 281 , 282 , 282 , 283 , 284 , 284 , 285 , 286 , 286 , 287 , 288 , 288 , 289 , 290 , 290 , 291 , 292 , 292 , 293 , 294 , 294 , 295 , 296 , 296 , 297 , 298 , 298 , 299 , 299 , 300 , 301 , 301 , 302 , 303 , 303 , 304 , 305 , 305 , 306 , 307 , 307 , 308 , 309 , 309 , 310 , 311 , 311 , 312 , 313 , 313 , 314 , 315 , 315 , 316 , 317 , 317 , 318 , 319 , 319 , 320 , 321 , 321 , 322 , 323 , 324 , 324 , 325 , 326 , 326 , 327 , 328 , 328 , 329 , 330 , 330 , 331 , 332 , 332 , 333 , 334 , 334 , 335 , 336 , 336 , 337 , 338 , 338 , 339 , 340 , 340 , 341 , 342 , 342 , 343 , 344 , 345 , 345 , 346 , 347 , 347 , 348 , 349 , 349 , 350 , 351 , 351 , 352 , 353 , 353 , 354 , 355 , 355 , 356 , 357 , 358 , 358 , 359 , 360 , 360 , 361 , 362 , 362 , 363 , 364 , 364 , 365 , 366 , 367 , 367 , 368 , 369 , 369 , 370 , 371 , 371 , 372 , 373 , 373 , 374 , 375 , 376 , 376 , 377 , 378 , 378 , 379 , 380 , 380 , 381 , 382 , 383 , 383 , 384 , 385 , 385 , 386 , 387 , 387 , 388 , 389 , 390 , 390 , 391 , 392 , 392 , 393 , 394 , 394 , 395 , 396 , 397 , 397 , 398 , 399 , 399 , 400 , 401 , 401 , 402 , 403 , 404 , 404 , 405 , 406 , 406 , 407 , 408 , 409 , 409 , 410 , 411 , 411 , 412 , 413 , 414 , 414 , 415 , 416 , 416 , 417 , 418 , 419 , 419 , 420 , 421 , 421 , 422 , 423 , 424 , 424 , 425 , 426 , 426 , 427 , 428 , 429 , 429 , 430 , 431 , 431 , 432 , 433 , 434 , 434 , 435 , 436 , 437 , 437 , 438 , 439 , 439 , 440 , 441 , 442 , 442 , 443 , 444 , 444 , 445 , 446 , 447 , 447 , 448 , 449 , 450 , 450 , 451 , 452 , 452 , 453 , 454 , 455 , 455 , 456 , 457 , 458 , 458 , 459 , 460 , 460 , 461 , 462 , 463 , 463 , 464 , 465 , 466 , 466 , 467 , 468 , 469 , 469 , 470 , 471 , 471 , 472 , 473 , 474 , 474 , 475 , 476 , 477 , 477 , 478 , 479 , 480 , 480 , 481 , 482 , 483 , 483 , 484 , 485 , 486 , 486 , 487 , 488 , 488 , 489 , 490 , 491 , 491 , 492 , 493 , 494 , 494 , 495 , 496 , 497 , 497 , 498 , 499 , 500 , 500 ,
38 501 , 502 , 503 , 503 , 504 , 505 , 506 , 506 , 507 , 508 , 509 , 509 , 510 , 511 , 512 , 512 , 513 , 514 , 515 , 515 , 516 , 517 , 518 , 518 , 519 , 520 , 521 , 521 , 522 , 523 , 524 , 524 , 525 , 526 , 527 , 527 , 528 , 529 , 530 , 531 , 531 , 532 , 533 , 534 , 534 , 535 , 536 , 537 , 537 , 538 , 539 , 540 , 540 , 541 , 542 , 543 , 543 , 544 , 545 , 546 , 547 , 547 , 548 , 549 , 550 , 550 , 551 , 552 , 553 , 553 , 554 , 555 , 556 , 556 , 557 , 558 , 559 , 560 , 560 , 561 , 562 , 563 , 563 , 564 , 565 , 566 , 566 , 567 , 568 , 569 , 570 , 570 , 571 , 572 , 573 , 573 , 574 , 575 , 576 , 577 , 577 , 578 , 579 , 580 , 580 , 581 , 582 , 583 , 584 , 584 , 585 , 586 , 587 , 587 , 588 , 589 , 590 , 591 , 591 , 592 , 593 , 594 , 594 , 595 , 596 , 597 , 598 , 598 , 599 , 600 , 601 , 602 , 602 , 603 , 604 , 605 , 605 , 606 , 607 , 608 , 609 , 609 , 610 , 611 , 612 , 613 , 613 , 614 , 615 , 616 , 616 , 617 , 618 , 619 , 620 , 620 , 621 , 622 , 623 , 624 , 624 , 625 , 626 , 627 , 628 , 628 , 629 , 630 , 631 , 632 , 632 , 633 , 634 , 635 , 636 , 636 , 637 , 638 , 639 , 639 , 640 , 641 , 642 , 643 , 643 , 644 , 645 , 646 , 647 , 647 , 648 , 649 , 650 , 651 , 651 , 652 , 653 , 654 , 655 , 656 , 656 , 657 , 658 , 659 , 660 , 660 , 661 , 662 , 663 , 664 , 664 , 665 , 666 , 667 , 668 , 668 , 669 , 670 , 671 , 672 , 672 , 673 , 674 , 675 , 676 , 676 , 677 , 678 , 679 , 680 , 681 , 681 , 682 , 683 , 684 , 685 , 685 , 686 , 687 , 688 , 689 , 689 , 690 , 691 , 692 , 693 , 694 , 694 , 695 , 696 , 697 , 698 , 698 , 699 , 700 , 701 , 702 , 703 , 703 , 704 , 705 , 706 , 707 , 707 , 708 , 709 , 710 , 711 , 712 , 712 , 713 , 714 , 715 , 716 , 717 , 717 , 718 , 719 , 720 , 721 , 721 , 722 , 723 , 724 , 725 , 726 , 726 , 727 , 728 , 729 , 730 , 731 , 731 , 732 , 733 , 734 , 735 , 736 , 736 , 737 , 738 , 739 , 740 , 741 , 741 , 742 , 743 , 744 , 745 , 746 , 746 , 747 , 748 , 749 , 750 , 751 , 751 , 752 , 753 , 754 , 755 , 756 , 756 , 757 , 758 , 759 , 760 , 761 , 761 , 762 , 763 , 764 , 765 , 766 , 766 , 767 , 768 , 769 , 770 , 771 , 771 , 772 , 773 , 774 , 775 , 776 , 777 , 777 , 778 , 779 , 780 , 781 , 782 , 782 , 783 , 784 , 785 , 786 , 787 , 787 , 788 , 789 , 790 , 791 , 792 , 793 , 793 , 794 , 795 , 796 , 797 , 798 , 799 , 799 , 800 , 801 , 802 , 803 , 804 , 804 , 805 , 806 , 807 , 808 , 809 , 810 , 810 , 811 , 812 , 813 , 814 , 815 , 816 , 816 , 817 , 818 , 819 , 820 , 821 , 822 , 822 , 823 , 824 , 825 , 826 , 827 , 828 , 828 , 829 , 830 , 831 , 832 , 833 , 834 , 834 , 835 , 836 , 837 , 838 , 839 , 840 , 840 , 841 , 842 , 843 , 844 , 845 , 846 , 847 , 847 , 848 , 849 , 850 , 851 , 852 , 853 , 853 , 854 , 855 , 856 , 857 , 858 , 859 , 860 , 860 , 861 , 862 , 863 , 864 , 865 , 866 , 866 , 867 , 868 , 869 , 870 , 871 , 872 , 873 , 873 , 874 , 875 , 876 , 877 , 878 , 879 , 880 , 880 , 881 , 882 , 883 , 884 , 885 , 886 , 887 , 887 , 888 , 889 , 890 , 891 , 892 , 893 , 894 , 894 , 895 , 896 , 897 , 898 , 899 , 900 , 901 , 901 , 902 , 903 , 904 , 905 , 906 , 907 , 908 , 909 , 909 , 910 , 911 , 912 , 913 , 914 , 915 , 916 , 916 , 917 , 918 , 919 , 920 , 921 , 922 , 923 , 924 , 924 , 925 , 926 , 927 , 928 , 929 , 930 , 931 , 932 , 932 , 933 , 934 , 935 , 936 , 937 , 938 , 939 , 940 , 940 , 941 , 942 , 943 , 944 , 945 , 946 , 947 , 948 , 948 , 949 , 950 , 951 , 952 , 953 , 954 , 955 , 956 , 957 , 957 , 958 , 959 , 960 , 961 , 962 , 963 , 964 , 965 , 965 , 966 , 967 , 968 , 969 , 970 , 971 , 972 , 973 , 974 , 974 , 975 , 976 , 977 , 978 , 979 , 980 , 981 , 982 , 983 , 984 , 984 , 985 , 986 , 987 , 988 , 989 , 990 , 991 , 992 , 993 , 993 , 994 , 995 , 996 , 997 , 998 , 999 , 1000 ,
39 1001 , 1002 , 1003 , 1003 , 1004 , 1005 , 1006 , 1007 , 1008 , 1009 , 1010 , 1011 , 1012 , 1013 , 1013 , 1014 , 1015 , 1016 , 1017 , 1018 , 1019 , 1020 , 1021 , 1022 , 1023 , 1023 , 1024 , 1025 , 1026 , 1027 , 1028 , 1029 , 1030 , 1031 , 1032 , 1033 , 1034 , 1034 , 1035 , 1036 , 1037 , 1038 , 1039 , 1040 , 1041 , 1042 , 1043 , 1044 , 1045 , 1045 , 1046 , 1047 , 1048 , 1049 , 1050 , 1051 , 1052 , 1053 , 1054 , 1055 , 1056 , 1057 , 1057 , 1058 , 1059 , 1060 , 1061 , 1062 , 1063 , 1064 , 1065 , 1066 , 1067 , 1068 , 1069 , 1069 , 1070 , 1071 , 1072 , 1073 , 1074 , 1075 , 1076 , 1077 , 1078 , 1079 , 1080 , 1081 , 1082 , 1082 , 1083 , 1084 , 1085 , 1086 , 1087 , 1088 , 1089 , 1090 , 1091 , 1092 , 1093 , 1094 , 1095 , 1095 , 1096 , 1097 , 1098 , 1099 , 1100 , 1101 , 1102 , 1103 , 1104 , 1105 , 1106 , 1107 , 1108 , 1109 , 1109 , 1110 , 1111 , 1112 , 1113 , 1114 , 1115 , 1116 , 1117 , 1118 , 1119 , 1120 , 1121 , 1122 , 1123 , 1124 , 1125 , 1125 , 1126 , 1127 , 1128 , 1129 , 1130 , 1131 , 1132 , 1133 , 1134 , 1135 , 1136 , 1137 , 1138 , 1139 , 1140 , 1141 , 1141 , 1142 , 1143 , 1144 , 1145 , 1146 , 1147 , 1148 , 1149 , 1150 , 1151 , 1152 , 1153 , 1154 , 1155 , 1156 , 1157 , 1158 , 1158 , 1159 , 1160 , 1161 , 1162 , 1163 , 1164 , 1165 , 1166 , 1167 , 1168 , 1169 , 1170 , 1171 , 1172 , 1173 , 1174 , 1175 , 1176 , 1177 , 1177 , 1178 , 1179 , 1180 , 1181 , 1182 , 1183 , 1184 , 1185 , 1186 , 1187 , 1188 , 1189 , 1190 , 1191 , 1192 , 1193 , 1194 , 1195 , 1196 , 1197 , 1198 , 1199 , 1199 , 1200 , 1201 , 1202 , 1203 , 1204 , 1205 , 1206 , 1207 , 1208 , 1209 , 1210 , 1211 , 1212 , 1213 , 1214 , 1215 , 1216 , 1217 , 1218 , 1219 , 1220 , 1221 , 1222 , 1223 , 1223 , 1224 , 1225 , 1226 , 1227 , 1228 , 1229 , 1230 , 1231 , 1232 , 1233 , 1234 , 1235 , 1236 , 1237 , 1238 , 1239 , 1240 , 1241 , 1242 , 1243 , 1244 , 1245 , 1246 , 1247 , 1248 , 1249 , 1250 , 1251 , 1252 , 1253 , 1253 , 1254 , 1255 , 1256 , 1257 , 1258 , 1259 , 1260 , 1261 , 1262 , 1263 , 1264 , 1265 , 1266 , 1267 , 1268 , 1269 , 1270 , 1271 , 1272 , 1273 , 1274 , 1275 , 1276 , 1277 , 1278 , 1279 , 1280 , 1281 , 1282 , 1283 , 1284 , 1285 , 1286 , 1287 , 1288 , 1289 , 1290 , 1291 , 1292 , 1292 , 1293 , 1294 , 1295 , 1296 , 1297 , 1298 , 1299 , 1300 , 1301 , 1302 , 1303 , 1304 , 1305 , 1306 , 1307 , 1308 , 1309 , 1310 , 1311 , 1312 , 1313 , 1314 , 1315 , 1316 , 1317 , 1318 , 1319 , 1320 , 1321 , 1322 , 1323 , 1324 , 1325 , 1326 , 1327 , 1328 , 1329 , 1330 , 1331 , 1332 , 1333 , 1334 , 1335 , 1336 , 1337 , 1338 , 1339 , 1340 , 1341 , 1342 , 1343 , 1344 , 1345 , 1346 , 1347 , 1348 , 1349 , 1350 , 1351 , 1352 , 1353 , 1354 , 1355 , 1356 , 1357 , 1358 , 1359 , 1360 , 1361 , 1362 , 1363 , 1364 , 1365 , 1366 , 1367 , 1368 , 1369 , 1370 , 1371 , 1372 , 1373 , 1374 , 1375 , 1376 , 1377 , 1378 , 1379 , 1380 , 1381 , 1382 , 1383 , 1384 , 1385 , 1386 , 1387 , 1388 , 1389 , 1390 , 1391 , 1392 , 1393 , 1394 , 1395 , 1396 , 1397 , 1398 , 1399 , 1400 , 1401 , 1402 , 1403 , 1404 , 1405 , 1406 , 1407 , 1408 , 1409 , 1410 , 1411 , 1412 , 1413 , 1414 , 1415 , 1416 , 1417 , 1418 , 1419 , 1420 , 1421 , 1422 , 1423 , 1424 , 1425 , 1426 , 1427 , 1428 , 1429 , 1430 , 1431 , 1432 , 1433 , 1434 , 1435 , 1436 , 1437 , 1438 , 1439 , 1440 , 1441 , 1442 , 1443 , 1444 , 1445 , 1446 , 1447 , 1448 , 1449 , 1450 , 1451 , 1452 , 1453 , 1454 , 1455 , 1456 , 1457 , 1458 , 1459 , 1460 , 1461 , 1462 , 1463 , 1464 , 1465 , 1466 , 1467 , 1468 , 1469 , 1470 , 1471 , 1472 , 1473 , 1474 , 1475 , 1476 , 1477 , 1478 , 1479 , 1480 , 1482 , 1483 , 1484 , 1485 , 1486 , 1487 , 1488 , 1489 , 1490 , 1491 , 1492 , 1493 , 1494 , 1495 , 1496 , 1497 , 1498 , 1499 , 1500 ,
40 1501 , 1502 , 1503 , 1504 , 1505 , 1506 , 1507 , 1508 , 1509 , 1510 , 1511 , 1512 , 1513 , 1514 , 1515 , 1516 , 1517 , 1518 , 1519 , 1520 , 1521 , 1522 , 1523 , 1525 , 1526 , 1527 , 1528 , 1529 , 1530 , 1531 , 1532 , 1533 , 1534 , 1535 , 1536 , 1537 , 1538 , 1539 , 1540 , 1541 , 1542 , 1543 , 1544 , 1545 , 1546 , 1547 , 1548 , 1549 , 1550 , 1551 , 1552 , 1553 , 1554 , 1555 , 1557 , 1558 , 1559 , 1560 , 1561 , 1562 , 1563 , 1564 , 1565 , 1566 , 1567 , 1568 , 1569 , 1570 , 1571 , 1572 , 1573 , 1574 , 1575 , 1576 , 1577 , 1578 , 1579 , 1580 , 1581 , 1582 , 1583 , 1585 , 1586 , 1587 , 1588 , 1589 , 1590 , 1591 , 1592 , 1593 , 1594 , 1595 , 1596 , 1597 , 1598 , 1599 , 1600 , 1601 , 1602 , 1603 , 1604 , 1605 , 1606 , 1607 , 1609 , 1610 , 1611 , 1612 , 1613 , 1614 , 1615 , 1616 , 1617 , 1618 , 1619 , 1620 , 1621 , 1622 , 1623 , 1624 , 1625 , 1626 , 1627 , 1628 , 1629 , 1631 , 1632 , 1633 , 1634 , 1635 , 1636 , 1637 , 1638 , 1639 , 1640 , 1641 , 1642 , 1643 , 1644 , 1645 , 1646 , 1647 , 1648 , 1649 , 1650 , 1652 , 1653 , 1654 , 1655 , 1656 , 1657 , 1658 , 1659 , 1660 , 1661 , 1662 , 1663 , 1664 , 1665 , 1666 , 1667 , 1668 , 1669 , 1671 , 1672 , 1673 , 1674 , 1675 , 1676 , 1677 , 1678 , 1679 , 1680 , 1681 , 1682 , 1683 , 1684 , 1685 , 1686 , 1687 , 1688 , 1690 , 1691 , 1692 , 1693 , 1694 , 1695 , 1696 , 1697 , 1698 , 1699 , 1700 , 1701 , 1702 , 1703 , 1704 , 1705 , 1707 , 1708 , 1709 , 1710 , 1711 , 1712 , 1713 , 1714 , 1715 , 1716 , 1717 , 1718 , 1719 , 1720 , 1721 , 1723 , 1724 , 1725 , 1726 , 1727 , 1728 , 1729 , 1730 , 1731 , 1732 , 1733 , 1734 , 1735 , 1736 , 1737 , 1739 , 1740 , 1741 , 1742 , 1743 , 1744 , 1745 , 1746 , 1747 , 1748 , 1749 , 1750 , 1751 , 1752 , 1753 , 1755 , 1756 , 1757 , 1758 , 1759 , 1760 , 1761 , 1762 , 1763 , 1764 , 1765 , 1766 , 1767 , 1769 , 1770 , 1771 , 1772 , 1773 , 1774 , 1775 , 1776 , 1777 , 1778 , 1779 , 1780 , 1781 , 1782 , 1784 , 1785 , 1786 , 1787 , 1788 , 1789 , 1790 , 1791 , 1792 , 1793 , 1794 , 1795 , 1797 , 1798 , 1799 , 1800 , 1801 , 1802 , 1803 , 1804 , 1805 , 1806 , 1807 , 1808 , 1809 , 1811 , 1812 , 1813 , 1814 , 1815 , 1816 , 1817 , 1818 , 1819 , 1820 , 1821 , 1822 , 1824 , 1825 , 1826 , 1827 , 1828 , 1829 , 1830 , 1831 , 1832 , 1833 , 1834 , 1835 , 1837 , 1838 , 1839 , 1840 , 1841 , 1842 , 1843 , 1844 , 1845 , 1846 , 1847 , 1848 , 1850 , 1851 , 1852 , 1853 , 1854 , 1855 , 1856 , 1857 , 1858 , 1859 , 1860 , 1862 , 1863 , 1864 , 1865 , 1866 , 1867 , 1868 , 1869 , 1870 , 1871 , 1872 , 1874 , 1875 , 1876 , 1877 , 1878 , 1879 , 1880 , 1881 , 1882 , 1883 , 1884 , 1886 , 1887 , 1888 , 1889 , 1890 , 1891 , 1892 , 1893 , 1894 , 1895 , 1897 , 1898 , 1899 , 1900 , 1901 , 1902 , 1903 , 1904 , 1905 , 1906 , 1907 , 1909 , 1910 , 1911 , 1912 , 1913 , 1914 , 1915 , 1916 , 1917 , 1918 , 1920 , 1921 , 1922 , 1923 , 1924 , 1925 , 1926 , 1927 , 1928 , 1929 , 1931 , 1932 , 1933 , 1934 , 1935 , 1936 , 1937 , 1938 , 1939 , 1940 , 1942 , 1943 , 1944 , 1945 , 1946 , 1947 , 1948 , 1949 , 1950 , 1952 , 1953 , 1954 , 1955 , 1956 , 1957 , 1958 , 1959 , 1960 , 1961 , 1963 , 1964 , 1965 , 1966 , 1967 , 1968 , 1969 , 1970 , 1971 , 1973 , 1974 , 1975 , 1976 , 1977 , 1978 , 1979 , 1980 , 1981 , 1983 , 1984 , 1985 , 1986 , 1987 , 1988 , 1989 , 1990 , 1991 , 1993 , 1994 , 1995 , 1996 , 1997 , 1998 , 1999 , 2000 ,
41 2001 , 2003 , 2004 , 2005 , 2006 , 2007 , 2008 , 2009 , 2010 , 2011 , 2013 , 2014 , 2015 , 2016 , 2017 , 2018 , 2019 , 2020 , 2021 , 2023 , 2024 , 2025 , 2026 , 2027 , 2028 , 2029 , 2030 , 2031 , 2033 , 2034 , 2035 , 2036 , 2037 , 2038 , 2039 , 2040 , 2042 , 2043 , 2044 , 2045 , 2046 , 2047 , 2048 , 2049 , 2050 , 2052 , 2053 , 2054 , 2055 , 2056 , 2057 , 2058 , 2059 , 2061 , 2062 , 2063 , 2064 , 2065 , 2066 , 2067 , 2068 , 2070 , 2071 , 2072 , 2073 , 2074 , 2075 , 2076 , 2077 , 2079 , 2080 , 2081 , 2082 , 2083 , 2084 , 2085 , 2086 , 2088 , 2089 , 2090 , 2091 , 2092 , 2093 , 2094 , 2095 , 2097 , 2098 , 2099 , 2100 , 2101 , 2102 , 2103 , 2104 , 2106 , 2107 , 2108 , 2109 , 2110 , 2111 , 2112 , 2113 , 2115 , 2116 , 2117 , 2118 , 2119 , 2120 , 2121 , 2122 , 2124 , 2125 , 2126 , 2127 , 2128 , 2129 , 2130 , 2132 , 2133 , 2134 , 2135 , 2136 , 2137 , 2138 , 2139 , 2141 , 2142 , 2143 , 2144 , 2145 , 2146 , 2147 , 2149 , 2150 , 2151 , 2152 , 2153 , 2154 , 2155 , 2156 , 2158 , 2159 , 2160 , 2161 , 2162 , 2163 , 2164 , 2166 , 2167 , 2168 , 2169 , 2170 , 2171 , 2172 , 2173 , 2175 , 2176 , 2177 , 2178 , 2179 , 2180 , 2181 , 2183 , 2184 , 2185 , 2186 , 2187 , 2188 , 2189 , 2191 , 2192 , 2193 , 2194 , 2195 , 2196 , 2197 , 2199 , 2200 , 2201 , 2202 , 2203 , 2204 , 2205 , 2207 , 2208 , 2209 , 2210 , 2211 , 2212 , 2213 , 2215 , 2216 , 2217 , 2218 , 2219 , 2220 , 2221 , 2223 , 2224 , 2225 , 2226 , 2227 , 2228 , 2229 , 2231 , 2232 , 2233 , 2234 , 2235 , 2236 , 2237 , 2239 , 2240 , 2241 , 2242 , 2243 , 2244 , 2245 , 2247 , 2248 , 2249 , 2250 , 2251 , 2252 , 2253 , 2255 , 2256 , 2257 , 2258 , 2259 , 2260 , 2262 , 2263 , 2264 , 2265 , 2266 , 2267 , 2268 , 2270 , 2271 , 2272 , 2273 , 2274 , 2275 , 2276 , 2278 , 2279 , 2280 , 2281 , 2282 , 2283 , 2285 , 2286 , 2287 , 2288 , 2289 , 2290 , 2291 , 2293 , 2294 , 2295 , 2296 , 2297 , 2298 , 2300 , 2301 , 2302 , 2303 , 2304 , 2305 , 2306 , 2308 , 2309 , 2310 , 2311 , 2312 , 2313 , 2315 , 2316 , 2317 , 2318 , 2319 , 2320 , 2322 , 2323 , 2324 , 2325 , 2326 , 2327 , 2328 , 2330 , 2331 , 2332 , 2333 , 2334 , 2335 , 2337 , 2338 , 2339 , 2340 , 2341 , 2342 , 2344 , 2345 , 2346 , 2347 , 2348 , 2349 , 2350 , 2352 , 2353 , 2354 , 2355 , 2356 , 2357 , 2359 , 2360 , 2361 , 2362 , 2363 , 2364 , 2366 , 2367 , 2368 , 2369 , 2370 , 2371 , 2373 , 2374 , 2375 , 2376 , 2377 , 2378 , 2380 , 2381 , 2382 , 2383 , 2384 , 2385 , 2387 , 2388 , 2389 , 2390 , 2391 , 2392 , 2394 , 2395 , 2396 , 2397 , 2398 , 2399 , 2401 , 2402 , 2403 , 2404 , 2405 , 2406 , 2408 , 2409 , 2410 , 2411 , 2412 , 2413 , 2415 , 2416 , 2417 , 2418 , 2419 , 2420 , 2422 , 2423 , 2424 , 2425 , 2426 , 2427 , 2429 , 2430 , 2431 , 2432 , 2433 , 2434 , 2436 , 2437 , 2438 , 2439 , 2440 , 2441 , 2443 , 2444 , 2445 , 2446 , 2447 , 2449 , 2450 , 2451 , 2452 , 2453 , 2454 , 2456 , 2457 , 2458 , 2459 , 2460 , 2461 , 2463 , 2464 , 2465 , 2466 , 2467 , 2468 , 2470 , 2471 , 2472 , 2473 , 2474 , 2476 , 2477 , 2478 , 2479 , 2480 , 2481 , 2483 , 2484 , 2485 , 2486 , 2487 , 2488 , 2490 , 2491 , 2492 , 2493 , 2494 , 2496 , 2497 , 2498 , 2499 , 2500 ,
42 2501 , 2503 , 2504 , 2505 , 2506 , 2507 , 2509 , 2510 , 2511 , 2512 , 2513 , 2514 , 2516 , 2517 , 2518 , 2519 , 2520 , 2522 , 2523 , 2524 , 2525 , 2526 , 2527 , 2529 , 2530 , 2531 , 2532 , 2533 , 2535 , 2536 , 2537 , 2538 , 2539 , 2540 , 2542 , 2543 , 2544 , 2545 , 2546 , 2548 , 2549 , 2550 , 2551 , 2552 , 2553 , 2555 , 2556 , 2557 , 2558 , 2559 , 2561 , 2562 , 2563 , 2564 , 2565 , 2567 , 2568 , 2569 , 2570 , 2571 , 2572 , 2574 , 2575 , 2576 , 2577 , 2578 , 2580 , 2581 , 2582 , 2583 , 2584 , 2586 , 2587 , 2588 , 2589 , 2590 , 2591 , 2593 , 2594 , 2595 , 2596 , 2597 , 2599 , 2600 , 2601 , 2602 , 2603 , 2605 , 2606 , 2607 , 2608 , 2609 , 2611 , 2612 , 2613 , 2614 , 2615 , 2617 , 2618 , 2619 , 2620 , 2621 , 2622 , 2624 , 2625 , 2626 , 2627 , 2628 , 2630 , 2631 , 2632 , 2633 , 2634 , 2636 , 2637 , 2638 , 2639 , 2640 , 2642 , 2643 , 2644 , 2645 , 2646 , 2648 , 2649 , 2650 , 2651 , 2652 , 2654 , 2655 , 2656 , 2657 , 2658 , 2660 , 2661 , 2662 , 2663 , 2664 , 2666 , 2667 , 2668 , 2669 , 2670 , 2672 , 2673 , 2674 , 2675 , 2676 , 2677 , 2679 , 2680 , 2681 , 2682 , 2683 , 2685 , 2686 , 2687 , 2688 , 2689 , 2691 , 2692 , 2693 , 2694 , 2695 , 2697 , 2698 , 2699 , 2700 , 2702 , 2703 , 2704 , 2705 , 2706 , 2708 , 2709 , 2710 , 2711 , 2712 , 2714 , 2715 , 2716 , 2717 , 2718 , 2720 , 2721 , 2722 , 2723 , 2724 , 2726 , 2727 , 2728 , 2729 , 2730 , 2732 , 2733 , 2734 , 2735 , 2736 , 2738 , 2739 , 2740 , 2741 , 2742 , 2744 , 2745 , 2746 , 2747 , 2748 , 2750 , 2751 , 2752 , 2753 , 2755 , 2756 , 2757 , 2758 , 2759 , 2761 , 2762 , 2763 , 2764 , 2765 , 2767 , 2768 , 2769 , 2770 , 2771 , 2773 , 2774 , 2775 , 2776 , 2777 , 2779 , 2780 , 2781 , 2782 , 2784 , 2785 , 2786 , 2787 , 2788 , 2790 , 2791 , 2792 , 2793 , 2794 , 2796 , 2797 , 2798 , 2799 , 2800 , 2802 , 2803 , 2804 , 2805 , 2807 , 2808 , 2809 , 2810 , 2811 , 2813 , 2814 , 2815 , 2816 , 2817 , 2819 , 2820 , 2821 , 2822 , 2824 , 2825 , 2826 , 2827 , 2828 , 2830 , 2831 , 2832 , 2833 , 2834 , 2836 , 2837 , 2838 , 2839 , 2841 , 2842 , 2843 , 2844 , 2845 , 2847 , 2848 , 2849 , 2850 , 2851 , 2853 , 2854 , 2855 , 2856 , 2858 , 2859 , 2860 , 2861 , 2862 , 2864 , 2865 , 2866 , 2867 , 2869 , 2870 , 2871 , 2872 , 2873 , 2875 , 2876 , 2877 , 2878 , 2879 , 2881 , 2882 , 2883 , 2884 , 2886 , 2887 , 2888 , 2889 , 2890 , 2892 , 2893 , 2894 , 2895 , 2897 , 2898 , 2899 , 2900 , 2901 , 2903 , 2904 , 2905 , 2906 , 2908 , 2909 , 2910 , 2911 , 2912 , 2914 , 2915 , 2916 , 2917 , 2919 , 2920 , 2921 , 2922 , 2923 , 2925 , 2926 , 2927 , 2928 , 2930 , 2931 , 2932 , 2933 , 2934 , 2936 , 2937 , 2938 , 2939 , 2941 , 2942 , 2943 , 2944 , 2945 , 2947 , 2948 , 2949 , 2950 , 2952 , 2953 , 2954 , 2955 , 2957 , 2958 , 2959 , 2960 , 2961 , 2963 , 2964 , 2965 , 2966 , 2968 , 2969 , 2970 , 2971 , 2972 , 2974 , 2975 , 2976 , 2977 , 2979 , 2980 , 2981 , 2982 , 2984 , 2985 , 2986 , 2987 , 2988 , 2990 , 2991 , 2992 , 2993 , 2995 , 2996 , 2997 , 2998 , 3000 ,
43 3001 , 3002 , 3003 , 3004 , 3006 , 3007 , 3008 , 3009 , 3011 , 3012 , 3013 , 3014 , 3016 , 3017 , 3018 , 3019 , 3020 , 3022 , 3023 , 3024 , 3025 , 3027 , 3028 , 3029 , 3030 , 3032 , 3033 , 3034 , 3035 , 3036 , 3038 , 3039 , 3040 , 3041 , 3043 , 3044 , 3045 , 3046 , 3048 , 3049 , 3050 , 3051 , 3053 , 3054 , 3055 , 3056 , 3057 , 3059 , 3060 , 3061 , 3062 , 3064 , 3065 , 3066 , 3067 , 3069 , 3070 , 3071 , 3072 , 3074 , 3075 , 3076 , 3077 , 3078 , 3080 , 3081 , 3082 , 3083 , 3085 , 3086 , 3087 , 3088 , 3090 , 3091 , 3092 , 3093 , 3095 , 3096 , 3097 , 3098 , 3100 , 3101 , 3102 , 3103 , 3104 , 3106 , 3107 , 3108 , 3109 , 3111 , 3112 , 3113 , 3114 , 3116 , 3117 , 3118 , 3119 , 3121 , 3122 , 3123 , 3124 , 3126 , 3127 , 3128 , 3129 , 3131 , 3132 , 3133 , 3134 , 3135 , 3137 , 3138 , 3139 , 3140 , 3142 , 3143 , 3144 , 3145 , 3147 , 3148 , 3149 , 3150 , 3152 , 3153 , 3154 , 3155 , 3157 , 3158 , 3159 , 3160 , 3162 , 3163 , 3164 , 3165 , 3167 , 3168 , 3169 , 3170 , 3172 , 3173 , 3174 , 3175 , 3177 , 3178 , 3179 , 3180 , 3181 , 3183 , 3184 , 3185 , 3186 , 3188 , 3189 , 3190 , 3191 , 3193 , 3194 , 3195 , 3196 , 3198 , 3199 , 3200 , 3201 , 3203 , 3204 , 3205 , 3206 , 3208 , 3209 , 3210 , 3211 , 3213 , 3214 , 3215 , 3216 , 3218 , 3219 , 3220 , 3221 , 3223 , 3224 , 3225 , 3226 , 3228 , 3229 , 3230 , 3231 , 3233 , 3234 , 3235 , 3236 , 3238 , 3239 , 3240 , 3241 , 3243 , 3244 , 3245 , 3246 , 3248 , 3249 , 3250 , 3251 , 3253 , 3254 , 3255 , 3256 , 3258 , 3259 , 3260 , 3261 , 3263 , 3264 , 3265 , 3266 , 3268 , 3269 , 3270 , 3271 , 3273 , 3274 , 3275 , 3276 , 3278 , 3279 , 3280 , 3281 , 3283 , 3284 , 3285 , 3286 , 3288 , 3289 , 3290 , 3291 , 3293 , 3294 , 3295 , 3296 , 3298 , 3299 , 3300 , 3301 , 3303 , 3304 , 3305 , 3306 , 3308 , 3309 , 3310 , 3312 , 3313 , 3314 , 3315 , 3317 , 3318 , 3319 , 3320 , 3322 , 3323 , 3324 , 3325 , 3327 , 3328 , 3329 , 3330 , 3332 , 3333 , 3334 , 3335 , 3337 , 3338 , 3339 , 3340 , 3342 , 3343 , 3344 , 3345 , 3347 , 3348 , 3349 , 3350 , 3352 , 3353 , 3354 , 3355 , 3357 , 3358 , 3359 , 3361 , 3362 , 3363 , 3364 , 3366 , 3367 , 3368 , 3369 , 3371 , 3372 , 3373 , 3374 , 3376 , 3377 , 3378 , 3379 , 3381 , 3382 , 3383 , 3384 , 3386 , 3387 , 3388 , 3389 , 3391 , 3392 , 3393 , 3395 , 3396 , 3397 , 3398 , 3400 , 3401 , 3402 , 3403 , 3405 , 3406 , 3407 , 3408 , 3410 , 3411 , 3412 , 3413 , 3415 , 3416 , 3417 , 3419 , 3420 , 3421 , 3422 , 3424 , 3425 , 3426 , 3427 , 3429 , 3430 , 3431 , 3432 , 3434 , 3435 , 3436 , 3437 , 3439 , 3440 , 3441 , 3443 , 3444 , 3445 , 3446 , 3448 , 3449 , 3450 , 3451 , 3453 , 3454 , 3455 , 3456 , 3458 , 3459 , 3460 , 3461 , 3463 , 3464 , 3465 , 3467 , 3468 , 3469 , 3470 , 3472 , 3473 , 3474 , 3475 , 3477 , 3478 , 3479 , 3480 , 3482 , 3483 , 3484 , 3486 , 3487 , 3488 , 3489 , 3491 , 3492 , 3493 , 3494 , 3496 , 3497 , 3498 , 3499 ,
44 3501 , 3502 , 3503 , 3505 , 3506 , 3507 , 3508 , 3510 , 3511 , 3512 , 3513 , 3515 , 3516 , 3517 , 3518 , 3520 , 3521 , 3522 , 3524 , 3525 , 3526 , 3527 , 3529 , 3530 , 3531 , 3532 , 3534 , 3535 , 3536 , 3538 , 3539 , 3540 , 3541 , 3543 , 3544 , 3545 , 3546 , 3548 , 3549 , 3550 , 3551 , 3553 , 3554 , 3555 , 3557 , 3558 , 3559 , 3560 , 3562 , 3563 , 3564 , 3565 , 3567 , 3568 , 3569 , 3571 , 3572 , 3573 , 3574 , 3576 , 3577 , 3578 , 3579 , 3581 , 3582 , 3583 , 3585 , 3586 , 3587 , 3588 , 3590 , 3591 , 3592 , 3593 , 3595 , 3596 , 3597 , 3599 , 3600 , 3601 , 3602 , 3604 , 3605 , 3606 , 3607 , 3609 , 3610 , 3611 , 3613 , 3614 , 3615 , 3616 , 3618 , 3619 , 3620 , 3621 , 3623 , 3624 , 3625 , 3627 , 3628 , 3629 , 3630 , 3632 , 3633 , 3634 , 3636 , 3637 , 3638 , 3639 , 3641 , 3642 , 3643 , 3644 , 3646 , 3647 , 3648 , 3650 , 3651 , 3652 , 3653 , 3655 , 3656 , 3657 , 3658 , 3660 , 3661 , 3662 , 3664 , 3665 , 3666 , 3667 , 3669 , 3670 , 3671 , 3673 , 3674 , 3675 , 3676 , 3678 , 3679 , 3680 , 3681 , 3683 , 3684 , 3685 , 3687 , 3688 , 3689 , 3690 , 3692 , 3693 , 3694 , 3696 , 3697 , 3698 , 3699 , 3701 , 3702 , 3703 , 3704 , 3706 , 3707 , 3708 , 3710 , 3711 , 3712 , 3713 , 3715 , 3716 , 3717 , 3719 , 3720 , 3721 , 3722 , 3724 , 3725 , 3726 , 3728 , 3729 , 3730 , 3731 , 3733 , 3734 , 3735 , 3736 , 3738 , 3739 , 3740 , 3742 , 3743 , 3744 , 3745 , 3747 , 3748 , 3749 , 3751 , 3752 , 3753 , 3754 , 3756 , 3757 , 3758 , 3760 , 3761 , 3762 , 3763 , 3765 , 3766 , 3767 , 3769 , 3770 , 3771 , 3772 , 3774 , 3775 , 3776 , 3777 , 3779 , 3780 , 3781 , 3783 , 3784 , 3785 , 3786 , 3788 , 3789 , 3790 , 3792 , 3793 , 3794 , 3795 , 3797 , 3798 , 3799 , 3801 , 3802 , 3803 , 3804 , 3806 , 3807 , 3808 , 3810 , 3811 , 3812 , 3813 , 3815 , 3816 , 3817 , 3819 , 3820 , 3821 , 3822 , 3824 , 3825 , 3826 , 3828 , 3829 , 3830 , 3831 , 3833 , 3834 , 3835 , 3837 , 3838 , 3839 , 3840 , 3842 , 3843 , 3844 , 3846 , 3847 , 3848 , 3849 , 3851 , 3852 , 3853 , 3855 , 3856 , 3857 , 3858 , 3860 , 3861 , 3862 , 3864 , 3865 , 3866 , 3867 , 3869 , 3870 , 3871 , 3873 , 3874 , 3875 , 3876 , 3878 , 3879 , 3880 , 3882 , 3883 , 3884 , 3885 , 3887 , 3888 , 3889 , 3891 , 3892 , 3893 , 3894 , 3896 , 3897 , 3898 , 3900 , 3901 , 3902 , 3903 , 3905 , 3906 , 3907 , 3909 , 3910 , 3911 , 3912 , 3914 , 3915 , 3916 , 3918 , 3919 , 3920 , 3922 , 3923 , 3924 , 3925 , 3927 , 3928 , 3929 , 3931 , 3932 , 3933 , 3934 , 3936 , 3937 , 3938 , 3940 , 3941 , 3942 , 3943 , 3945 , 3946 , 3947 , 3949 , 3950 , 3951 , 3952 , 3954 , 3955 , 3956 , 3958 , 3959 , 3960 , 3961 , 3963 , 3964 , 3965 , 3967 , 3968 , 3969 , 3971 , 3972 , 3973 , 3974 , 3976 , 3977 , 3978 , 3980 , 3981 , 3982 , 3983 , 3985 , 3986 , 3987 , 3989 , 3990 , 3991 , 3992 , 3994 , 3995 , 3996 , 3998 , 3999 , 4000 ,
45 4002 , 4003 , 4004 , 4005 , 4007 , 4008 , 4009 , 4011 , 4012 , 4013 , 4014 , 4016 , 4017 , 4018 , 4020 , 4021 , 4022 , 4024 , 4025 , 4026 , 4027 , 4029 , 4030 , 4031 , 4033 , 4034 , 4035 , 4036 , 4038 , 4039 , 4040 , 4042 , 4043 , 4044 , 4046 , 4047 , 4048 , 4049 , 4051 , 4052 , 4053 , 4055 , 4056 , 4057 , 4058 , 4060 , 4061 , 4062 , 4064 , 4065 , 4066 , 4068 , 4069 , 4070 , 4071 , 4073 , 4074 , 4075 , 4077 , 4078 , 4079 , 4080 , 4082 , 4083 , 4084 , 4086 , 4087 , 4088 , 4090 , 4091 , 4092 , 4093 , 4095 );
46
47 type zustaende is ( Z00 , Z01 );
48 signal z : zustaende : = Z00 ;
49 signal index : integer range 0 to 4095 ;
50 signal preindex : integer range 0 to 4095 ;
51 signal newindex : integer range 0 to 4095 : = 0 ;
52 signal phase : unsigned ( 31 downto 0 ) : = ( others => '0' );
53 signal saegezahn_inv_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
54 signal saegezahn_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
55 signal rechteck_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
56
57 begin
58 process begin
59 wait until rising_edge ( clk );
60 if control = x"00000000" then
61 if run = x"00000001" then
62 z <= Z00 ;
63 if newindex = 0 then
64 phase <= ( phase + microsteps );
65 elsif newindex /= 0 then
66 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
67 end if ;
68 elsif run = x"00000002" then
69 z <= Z01 ;
70 if newindex = 0 then
71 phase <= ( phase - microsteps );
72 elsif newindex /= 0 then
73 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
74 end if ;
75 end if ;
76 elsif control = x"00000001" then
77 if y < x"00000000" then
78 z <= Z00 ;
79 if newindex = 0 then
80 phase <= ( phase + microsteps );
81 elsif newindex /= 0 then
82 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
83 end if ;
84 elsif y > x"00000000" then
85 z <= Z01 ;
86 if newindex = 0 then
87 phase <= ( phase - microsteps );
88 elsif newindex /= 0 then
89 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
90 end if ;
91 end if ;
92 end if ;
93 end process ;
94
95
96 index <= to_integer ( phase ( 31 downto 20 ));
97
98 process
99 variable dir : std_logic : = '0' ;
100 begin
101 wait until rising_edge ( clk );
102
103 if ( dir = '0' ) then
104 saegezahn_inv_u <= to_unsigned ( saw_load_array_c ( index ), saegezahn_inv_u 'length );
105 preindex <= saw_load_array_c ( index );
106 newindex <= 0 ;
107 dir : = '0' ;
108 elsif ( dir = '1' ) then
109 for i in 0 to 4095 loop
110 if ((( saw_load_array_c ( i )) = preindex ) or (( saw_load_array_c ( i )) = preindex + 1 ) or (( saw_load_array_c ( i )) = preindex -1 )) then
111 newindex <= i ;
112 exit ;
113 end if ;
114 end loop ;
115 dir : = '0' ;
116 end if ;
117 when Z01 =>
118 if ( dir = '1' ) then
119 saegezahn_inv_u <= to_unsigned ( saw_unload_array_c ( index ), saegezahn_inv_u 'length );
120 preindex <= saw_unload_array_c ( index );
121 newindex <= 0 ;
122 dir : = '1' ;
123 elsif ( dir = '0' ) then
124 for i in 0 to 4095 loop
125 if ((( saw_unload_array_c ( i )) = preindex ) or (( saw_unload_array_c ( i )) = preindex + 1 ) or (( saw_unload_array_c ( i )) = preindex -1 )) then
126 newindex <= i ;
127 exit ;
128 end if ;
129 end loop ;
130 dir : = '1' ;
131 end if ;
132 end case ;
133 end process ;
134
135 saegezahn_u <= phase ( 31 downto 20 );
136
137 process begin
138 wait until rising_edge ( clk );
139 if ( saegezahn_u >= x"555" and saegezahn_u <= x"DDD" ) then
140 rechteck_u <= x"FFF" ;
141 else
142 rechteck_u <= x"000" ;
143 end if ;
144 end process ;
145
146
147 -- convert output values
148 saegezahn_inv <= "0011" & std_logic_vector ( saegezahn_inv_u );
149 saegezahn <= "0011" & std_logic_vector ( saegezahn_u );
150 rechteck <= "0011" & std_logic_vector ( rechteck_u );
151
152 end bhv ;
Gruß
Lang schrieb:
> aber in Quartus lässt
> sich es sich nicht Kompilieren...
jetzt wär' halt die Fehlermeldung, die Du beim Versuch bekommst, echt
nützlich, gell?
von
Lang (Gast)
19.08.2014 17:09
Ich hab nochmal ein Bild der Simulation angehängt, da kann man sehen was
ich meine. Unschön ist der kurze Einbruch beim Wechsel (20ns), ich habs
es aber nicht ohne hinbekommen...
von
Lang (Gast)
19.08.2014 17:17
Markus F. schrieb:
> jetzt wär' halt die Fehlermeldung, die Du beim Versuch bekommst, echt
> nützlich, gell?
Würde ich posten, aber: es passiert einfach nichts, bei 46% von Analysis
& Synthesis bleibt er stehen...keine Fehlermeldung.
Ich seh grad, an einer stelle des Codes hab ich was vergessen. Hier
nochmal der korrekte:1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3 use ieee . numeric_std . all ;
4
5
6 entity Generator_1 is
7 port (
8 clk : in std_logic ; -- Systemclock (50 MHz)
9 microsteps : in unsigned ( 31 downto 0 ) : = ( others => '0' );
10 run : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- 0 = steht, 1 = links, 2 = rechts
11 y : in signed ( 31 downto 0 ) : = ( others => '0' );
12 control : in unsigned ( 31 downto 0 ) : = ( others => '0' ); -- Regelung: 0 = nein, 1 = ja
13
14 rechteck : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
15 saegezahn : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' );
16 saegezahn_inv : out std_logic_vector ( 15 downto 0 ) : = ( others => '0' )
17 );
18
19 end Generator_1 ;
20
21 architecture bhv of Generator_1 is
22
23 type saw_load_array_t is array ( 0 to 4095 ) of integer range 0 to 4095 ;
24 constant saw_load_array_c : saw_load_array_t : =
25 ( 0 , 6 , 7 , 9 , 10 , 11 , 13 , 14 , 15 , 17 , 18 , 19 , 21 , 22 , 23 , 25 , 26 , 27 , 29 , 30 , 31 , 33 , 34 , 35 , 37 , 38 , 39 , 41 , 42 , 43 , 45 , 46 , 47 , 49 , 50 , 51 , 53 , 54 , 55 , 57 , 58 , 59 , 61 , 62 , 63 , 65 , 66 , 67 , 69 , 70 , 71 , 73 , 74 , 75 , 77 , 78 , 79 , 81 , 82 , 83 , 85 , 86 , 87 , 89 , 90 , 91 , 93 , 94 , 95 , 96 , 98 , 99 , 100 , 102 , 103 , 104 , 106 , 107 , 108 , 110 , 111 , 112 , 114 , 115 , 116 , 118 , 119 , 120 , 122 , 123 , 124 , 125 , 127 , 128 , 129 , 131 , 132 , 133 , 135 , 136 , 137 , 139 , 140 , 141 , 143 , 144 , 145 , 147 , 148 , 149 , 150 , 152 , 153 , 154 , 156 , 157 , 158 , 160 , 161 , 162 , 164 , 165 , 166 , 167 , 169 , 170 , 171 , 173 , 174 , 175 , 177 , 178 , 179 , 181 , 182 , 183 , 184 , 186 , 187 , 188 , 190 , 191 , 192 , 194 , 195 , 196 , 197 , 199 , 200 , 201 , 203 , 204 , 205 , 207 , 208 , 209 , 210 , 212 , 213 , 214 , 216 , 217 , 218 , 220 , 221 , 222 , 223 , 225 , 226 , 227 , 229 , 230 , 231 , 232 , 234 , 235 , 236 , 238 , 239 , 240 , 242 , 243 , 244 , 245 , 247 , 248 , 249 , 251 , 252 , 253 , 254 , 256 , 257 , 258 , 260 , 261 , 262 , 263 , 265 , 266 , 267 , 269 , 270 , 271 , 272 , 274 , 275 , 276 , 278 , 279 , 280 , 281 , 283 , 284 , 285 , 287 , 288 , 289 , 290 , 292 , 293 , 294 , 295 , 297 , 298 , 299 , 301 , 302 , 303 , 304 , 306 , 307 , 308 , 310 , 311 , 312 , 313 , 315 , 316 , 317 , 318 , 320 , 321 , 322 , 324 , 325 , 326 , 327 , 329 , 330 , 331 , 332 , 334 , 335 , 336 , 338 , 339 , 340 , 341 , 343 , 344 , 345 , 346 , 348 , 349 , 350 , 352 , 353 , 354 , 355 , 357 , 358 , 359 , 360 , 362 , 363 , 364 , 365 , 367 , 368 , 369 , 371 , 372 , 373 , 374 , 376 , 377 , 378 , 379 , 381 , 382 , 383 , 384 , 386 , 387 , 388 , 389 , 391 , 392 , 393 , 394 , 396 , 397 , 398 , 399 , 401 , 402 , 403 , 405 , 406 , 407 , 408 , 410 , 411 , 412 , 413 , 415 , 416 , 417 , 418 , 420 , 421 , 422 , 423 , 425 , 426 , 427 , 428 , 430 , 431 , 432 , 433 , 435 , 436 , 437 , 438 , 440 , 441 , 442 , 443 , 445 , 446 , 447 , 448 , 450 , 451 , 452 , 453 , 455 , 456 , 457 , 458 , 460 , 461 , 462 , 463 , 465 , 466 , 467 , 468 , 469 , 471 , 472 , 473 , 474 , 476 , 477 , 478 , 479 , 481 , 482 , 483 , 484 , 486 , 487 , 488 , 489 , 491 , 492 , 493 , 494 , 496 , 497 , 498 , 499 , 500 ,
26 502 , 503 , 504 , 505 , 507 , 508 , 509 , 510 , 512 , 513 , 514 , 515 , 517 , 518 , 519 , 520 , 521 , 523 , 524 , 525 , 526 , 528 , 529 , 530 , 531 , 533 , 534 , 535 , 536 , 537 , 539 , 540 , 541 , 542 , 544 , 545 , 546 , 547 , 548 , 550 , 551 , 552 , 553 , 555 , 556 , 557 , 558 , 560 , 561 , 562 , 563 , 564 , 566 , 567 , 568 , 569 , 571 , 572 , 573 , 574 , 575 , 577 , 578 , 579 , 580 , 582 , 583 , 584 , 585 , 586 , 588 , 589 , 590 , 591 , 592 , 594 , 595 , 596 , 597 , 599 , 600 , 601 , 602 , 603 , 605 , 606 , 607 , 608 , 609 , 611 , 612 , 613 , 614 , 616 , 617 , 618 , 619 , 620 , 622 , 623 , 624 , 625 , 626 , 628 , 629 , 630 , 631 , 632 , 634 , 635 , 636 , 637 , 639 , 640 , 641 , 642 , 643 , 645 , 646 , 647 , 648 , 649 , 651 , 652 , 653 , 654 , 655 , 657 , 658 , 659 , 660 , 661 , 663 , 664 , 665 , 666 , 667 , 669 , 670 , 671 , 672 , 673 , 675 , 676 , 677 , 678 , 679 , 681 , 682 , 683 , 684 , 685 , 687 , 688 , 689 , 690 , 691 , 693 , 694 , 695 , 696 , 697 , 699 , 700 , 701 , 702 , 703 , 705 , 706 , 707 , 708 , 709 , 711 , 712 , 713 , 714 , 715 , 716 , 718 , 719 , 720 , 721 , 722 , 724 , 725 , 726 , 727 , 728 , 730 , 731 , 732 , 733 , 734 , 736 , 737 , 738 , 739 , 740 , 741 , 743 , 744 , 745 , 746 , 747 , 749 , 750 , 751 , 752 , 753 , 754 , 756 , 757 , 758 , 759 , 760 , 762 , 763 , 764 , 765 , 766 , 768 , 769 , 770 , 771 , 772 , 773 , 775 , 776 , 777 , 778 , 779 , 780 , 782 , 783 , 784 , 785 , 786 , 788 , 789 , 790 , 791 , 792 , 793 , 795 , 796 , 797 , 798 , 799 , 800 , 802 , 803 , 804 , 805 , 806 , 808 , 809 , 810 , 811 , 812 , 813 , 815 , 816 , 817 , 818 , 819 , 820 , 822 , 823 , 824 , 825 , 826 , 827 , 829 , 830 , 831 , 832 , 833 , 834 , 836 , 837 , 838 , 839 , 840 , 841 , 843 , 844 , 845 , 846 , 847 , 848 , 850 , 851 , 852 , 853 , 854 , 855 , 857 , 858 , 859 , 860 , 861 , 862 , 864 , 865 , 866 , 867 , 868 , 869 , 871 , 872 , 873 , 874 , 875 , 876 , 878 , 879 , 880 , 881 , 882 , 883 , 884 , 886 , 887 , 888 , 889 , 890 , 891 , 893 , 894 , 895 , 896 , 897 , 898 , 899 , 901 , 902 , 903 , 904 , 905 , 906 , 908 , 909 , 910 , 911 , 912 , 913 , 914 , 916 , 917 , 918 , 919 , 920 , 921 , 923 , 924 , 925 , 926 , 927 , 928 , 929 , 931 , 932 , 933 , 934 , 935 , 936 , 937 , 939 , 940 , 941 , 942 , 943 , 944 , 945 , 947 , 948 , 949 , 950 , 951 , 952 , 954 , 955 , 956 , 957 , 958 , 959 , 960 , 962 , 963 , 964 , 965 , 966 , 967 , 968 , 970 , 971 , 972 , 973 , 974 , 975 , 976 , 977 , 979 , 980 , 981 , 982 , 983 , 984 , 985 , 987 , 988 , 989 , 990 , 991 , 992 , 993 , 995 , 996 , 997 , 998 , 999 , 1000 ,
27 1001 , 1003 , 1004 , 1005 , 1006 , 1007 , 1008 , 1009 , 1010 , 1012 , 1013 , 1014 , 1015 , 1016 , 1017 , 1018 , 1020 , 1021 , 1022 , 1023 , 1024 , 1025 , 1026 , 1027 , 1029 , 1030 , 1031 , 1032 , 1033 , 1034 , 1035 , 1036 , 1038 , 1039 , 1040 , 1041 , 1042 , 1043 , 1044 , 1045 , 1047 , 1048 , 1049 , 1050 , 1051 , 1052 , 1053 , 1054 , 1056 , 1057 , 1058 , 1059 , 1060 , 1061 , 1062 , 1063 , 1065 , 1066 , 1067 , 1068 , 1069 , 1070 , 1071 , 1072 , 1074 , 1075 , 1076 , 1077 , 1078 , 1079 , 1080 , 1081 , 1083 , 1084 , 1085 , 1086 , 1087 , 1088 , 1089 , 1090 , 1091 , 1093 , 1094 , 1095 , 1096 , 1097 , 1098 , 1099 , 1100 , 1102 , 1103 , 1104 , 1105 , 1106 , 1107 , 1108 , 1109 , 1110 , 1112 , 1113 , 1114 , 1115 , 1116 , 1117 , 1118 , 1119 , 1120 , 1122 , 1123 , 1124 , 1125 , 1126 , 1127 , 1128 , 1129 , 1130 , 1132 , 1133 , 1134 , 1135 , 1136 , 1137 , 1138 , 1139 , 1140 , 1142 , 1143 , 1144 , 1145 , 1146 , 1147 , 1148 , 1149 , 1150 , 1152 , 1153 , 1154 , 1155 , 1156 , 1157 , 1158 , 1159 , 1160 , 1161 , 1163 , 1164 , 1165 , 1166 , 1167 , 1168 , 1169 , 1170 , 1171 , 1173 , 1174 , 1175 , 1176 , 1177 , 1178 , 1179 , 1180 , 1181 , 1182 , 1184 , 1185 , 1186 , 1187 , 1188 , 1189 , 1190 , 1191 , 1192 , 1193 , 1195 , 1196 , 1197 , 1198 , 1199 , 1200 , 1201 , 1202 , 1203 , 1204 , 1206 , 1207 , 1208 , 1209 , 1210 , 1211 , 1212 , 1213 , 1214 , 1215 , 1216 , 1218 , 1219 , 1220 , 1221 , 1222 , 1223 , 1224 , 1225 , 1226 , 1227 , 1228 , 1230 , 1231 , 1232 , 1233 , 1234 , 1235 , 1236 , 1237 , 1238 , 1239 , 1240 , 1242 , 1243 , 1244 , 1245 , 1246 , 1247 , 1248 , 1249 , 1250 , 1251 , 1252 , 1254 , 1255 , 1256 , 1257 , 1258 , 1259 , 1260 , 1261 , 1262 , 1263 , 1264 , 1266 , 1267 , 1268 , 1269 , 1270 , 1271 , 1272 , 1273 , 1274 , 1275 , 1276 , 1277 , 1279 , 1280 , 1281 , 1282 , 1283 , 1284 , 1285 , 1286 , 1287 , 1288 , 1289 , 1290 , 1291 , 1293 , 1294 , 1295 , 1296 , 1297 , 1298 , 1299 , 1300 , 1301 , 1302 , 1303 , 1304 , 1306 , 1307 , 1308 , 1309 , 1310 , 1311 , 1312 , 1313 , 1314 , 1315 , 1316 , 1317 , 1318 , 1320 , 1321 , 1322 , 1323 , 1324 , 1325 , 1326 , 1327 , 1328 , 1329 , 1330 , 1331 , 1332 , 1333 , 1335 , 1336 , 1337 , 1338 , 1339 , 1340 , 1341 , 1342 , 1343 , 1344 , 1345 , 1346 , 1347 , 1348 , 1350 , 1351 , 1352 , 1353 , 1354 , 1355 , 1356 , 1357 , 1358 , 1359 , 1360 , 1361 , 1362 , 1363 , 1365 , 1366 , 1367 , 1368 , 1369 , 1370 , 1371 , 1372 , 1373 , 1374 , 1375 , 1376 , 1377 , 1378 , 1379 , 1381 , 1382 , 1383 , 1384 , 1385 , 1386 , 1387 , 1388 , 1389 , 1390 , 1391 , 1392 , 1393 , 1394 , 1395 , 1396 , 1398 , 1399 , 1400 , 1401 , 1402 , 1403 , 1404 , 1405 , 1406 , 1407 , 1408 , 1409 , 1410 , 1411 , 1412 , 1413 , 1415 , 1416 , 1417 , 1418 , 1419 , 1420 , 1421 , 1422 , 1423 , 1424 , 1425 , 1426 , 1427 , 1428 , 1429 , 1430 , 1431 , 1432 , 1434 , 1435 , 1436 , 1437 , 1438 , 1439 , 1440 , 1441 , 1442 , 1443 , 1444 , 1445 , 1446 , 1447 , 1448 , 1449 , 1450 , 1451 , 1453 , 1454 , 1455 , 1456 , 1457 , 1458 , 1459 , 1460 , 1461 , 1462 , 1463 , 1464 , 1465 , 1466 , 1467 , 1468 , 1469 , 1470 , 1471 , 1472 , 1474 , 1475 , 1476 , 1477 , 1478 , 1479 , 1480 , 1481 , 1482 , 1483 , 1484 , 1485 , 1486 , 1487 , 1488 , 1489 , 1490 , 1491 , 1492 , 1493 , 1494 , 1495 , 1497 , 1498 , 1499 , 1500 ,
28 1501 , 1502 , 1503 , 1504 , 1505 , 1506 , 1507 , 1508 , 1509 , 1510 , 1511 , 1512 , 1513 , 1514 , 1515 , 1516 , 1517 , 1518 , 1519 , 1521 , 1522 , 1523 , 1524 , 1525 , 1526 , 1527 , 1528 , 1529 , 1530 , 1531 , 1532 , 1533 , 1534 , 1535 , 1536 , 1537 , 1538 , 1539 , 1540 , 1541 , 1542 , 1543 , 1544 , 1545 , 1546 , 1548 , 1549 , 1550 , 1551 , 1552 , 1553 , 1554 , 1555 , 1556 , 1557 , 1558 , 1559 , 1560 , 1561 , 1562 , 1563 , 1564 , 1565 , 1566 , 1567 , 1568 , 1569 , 1570 , 1571 , 1572 , 1573 , 1574 , 1575 , 1576 , 1578 , 1579 , 1580 , 1581 , 1582 , 1583 , 1584 , 1585 , 1586 , 1587 , 1588 , 1589 , 1590 , 1591 , 1592 , 1593 , 1594 , 1595 , 1596 , 1597 , 1598 , 1599 , 1600 , 1601 , 1602 , 1603 , 1604 , 1605 , 1606 , 1607 , 1608 , 1609 , 1610 , 1611 , 1612 , 1613 , 1615 , 1616 , 1617 , 1618 , 1619 , 1620 , 1621 , 1622 , 1623 , 1624 , 1625 , 1626 , 1627 , 1628 , 1629 , 1630 , 1631 , 1632 , 1633 , 1634 , 1635 , 1636 , 1637 , 1638 , 1639 , 1640 , 1641 , 1642 , 1643 , 1644 , 1645 , 1646 , 1647 , 1648 , 1649 , 1650 , 1651 , 1652 , 1653 , 1654 , 1655 , 1656 , 1657 , 1658 , 1659 , 1660 , 1661 , 1663 , 1664 , 1665 , 1666 , 1667 , 1668 , 1669 , 1670 , 1671 , 1672 , 1673 , 1674 , 1675 , 1676 , 1677 , 1678 , 1679 , 1680 , 1681 , 1682 , 1683 , 1684 , 1685 , 1686 , 1687 , 1688 , 1689 , 1690 , 1691 , 1692 , 1693 , 1694 , 1695 , 1696 , 1697 , 1698 , 1699 , 1700 , 1701 , 1702 , 1703 , 1704 , 1705 , 1706 , 1707 , 1708 , 1709 , 1710 , 1711 , 1712 , 1713 , 1714 , 1715 , 1716 , 1717 , 1718 , 1719 , 1720 , 1721 , 1722 , 1723 , 1724 , 1725 , 1726 , 1727 , 1728 , 1729 , 1730 , 1731 , 1732 , 1733 , 1734 , 1735 , 1736 , 1737 , 1738 , 1739 , 1740 , 1741 , 1742 , 1743 , 1744 , 1745 , 1746 , 1747 , 1748 , 1749 , 1750 , 1751 , 1752 , 1753 , 1754 , 1755 , 1756 , 1757 , 1758 , 1759 , 1760 , 1761 , 1762 , 1763 , 1764 , 1765 , 1766 , 1767 , 1768 , 1769 , 1770 , 1771 , 1772 , 1773 , 1774 , 1775 , 1776 , 1777 , 1778 , 1779 , 1780 , 1781 , 1782 , 1783 , 1784 , 1785 , 1786 , 1787 , 1788 , 1789 , 1790 , 1791 , 1792 , 1793 , 1794 , 1795 , 1796 , 1797 , 1798 , 1799 , 1800 , 1801 , 1802 , 1803 , 1804 , 1805 , 1806 , 1807 , 1808 , 1809 , 1810 , 1811 , 1812 , 1813 , 1814 , 1815 , 1816 , 1817 , 1818 , 1819 , 1820 , 1821 , 1822 , 1823 , 1824 , 1825 , 1826 , 1827 , 1828 , 1829 , 1830 , 1831 , 1832 , 1833 , 1834 , 1835 , 1836 , 1837 , 1838 , 1839 , 1840 , 1841 , 1842 , 1843 , 1844 , 1845 , 1846 , 1847 , 1848 , 1849 , 1850 , 1851 , 1852 , 1853 , 1854 , 1855 , 1856 , 1857 , 1858 , 1859 , 1860 , 1861 , 1862 , 1863 , 1864 , 1865 , 1866 , 1867 , 1868 , 1869 , 1870 , 1871 , 1872 , 1873 , 1874 , 1875 , 1876 , 1877 , 1878 , 1879 , 1880 , 1881 , 1882 , 1883 , 1884 , 1885 , 1886 , 1887 , 1887 , 1888 , 1889 , 1890 , 1891 , 1892 , 1893 , 1894 , 1895 , 1896 , 1897 , 1898 , 1899 , 1900 , 1901 , 1902 , 1903 , 1904 , 1905 , 1906 , 1907 , 1908 , 1909 , 1910 , 1911 , 1912 , 1913 , 1914 , 1915 , 1916 , 1917 , 1918 , 1919 , 1920 , 1921 , 1922 , 1923 , 1924 , 1925 , 1926 , 1927 , 1928 , 1929 , 1930 , 1931 , 1932 , 1933 , 1934 , 1935 , 1936 , 1936 , 1937 , 1938 , 1939 , 1940 , 1941 , 1942 , 1943 , 1944 , 1945 , 1946 , 1947 , 1948 , 1949 , 1950 , 1951 , 1952 , 1953 , 1954 , 1955 , 1956 , 1957 , 1958 , 1959 , 1960 , 1961 , 1962 , 1963 , 1964 , 1965 , 1966 , 1967 , 1968 , 1969 , 1970 , 1971 , 1972 , 1973 , 1973 , 1974 , 1975 , 1976 , 1977 , 1978 , 1979 , 1980 , 1981 , 1982 , 1983 , 1984 , 1985 , 1986 , 1987 , 1988 , 1989 , 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996 , 1997 , 1998 , 1999 , 2000 ,
29 2001 , 2002 , 2003 , 2004 , 2004 , 2005 , 2006 , 2007 , 2008 , 2009 , 2010 , 2011 , 2012 , 2013 , 2014 , 2015 , 2016 , 2017 , 2018 , 2019 , 2020 , 2021 , 2022 , 2023 , 2024 , 2025 , 2026 , 2027 , 2028 , 2029 , 2030 , 2031 , 2032 , 2032 , 2033 , 2034 , 2035 , 2036 , 2037 , 2038 , 2039 , 2040 , 2041 , 2042 , 2043 , 2044 , 2045 , 2046 , 2047 , 2048 , 2049 , 2050 , 2051 , 2052 , 2053 , 2054 , 2055 , 2056 , 2057 , 2057 , 2058 , 2059 , 2060 , 2061 , 2062 , 2063 , 2064 , 2065 , 2066 , 2067 , 2068 , 2069 , 2070 , 2071 , 2072 , 2073 , 2074 , 2075 , 2076 , 2077 , 2078 , 2079 , 2080 , 2080 , 2081 , 2082 , 2083 , 2084 , 2085 , 2086 , 2087 , 2088 , 2089 , 2090 , 2091 , 2092 , 2093 , 2094 , 2095 , 2096 , 2097 , 2098 , 2099 , 2100 , 2101 , 2102 , 2102 , 2103 , 2104 , 2105 , 2106 , 2107 , 2108 , 2109 , 2110 , 2111 , 2112 , 2113 , 2114 , 2115 , 2116 , 2117 , 2118 , 2119 , 2120 , 2121 , 2122 , 2122 , 2123 , 2124 , 2125 , 2126 , 2127 , 2128 , 2129 , 2130 , 2131 , 2132 , 2133 , 2134 , 2135 , 2136 , 2137 , 2138 , 2139 , 2140 , 2141 , 2141 , 2142 , 2143 , 2144 , 2145 , 2146 , 2147 , 2148 , 2149 , 2150 , 2151 , 2152 , 2153 , 2154 , 2155 , 2156 , 2157 , 2158 , 2159 , 2159 , 2160 , 2161 , 2162 , 2163 , 2164 , 2165 , 2166 , 2167 , 2168 , 2169 , 2170 , 2171 , 2172 , 2173 , 2174 , 2175 , 2176 , 2177 , 2177 , 2178 , 2179 , 2180 , 2181 , 2182 , 2183 , 2184 , 2185 , 2186 , 2187 , 2188 , 2189 , 2190 , 2191 , 2192 , 2193 , 2194 , 2194 , 2195 , 2196 , 2197 , 2198 , 2199 , 2200 , 2201 , 2202 , 2203 , 2204 , 2205 , 2206 , 2207 , 2208 , 2209 , 2210 , 2210 , 2211 , 2212 , 2213 , 2214 , 2215 , 2216 , 2217 , 2218 , 2219 , 2220 , 2221 , 2222 , 2223 , 2224 , 2225 , 2225 , 2226 , 2227 , 2228 , 2229 , 2230 , 2231 , 2232 , 2233 , 2234 , 2235 , 2236 , 2237 , 2238 , 2239 , 2240 , 2241 , 2241 , 2242 , 2243 , 2244 , 2245 , 2246 , 2247 , 2248 , 2249 , 2250 , 2251 , 2252 , 2253 , 2254 , 2255 , 2255 , 2256 , 2257 , 2258 , 2259 , 2260 , 2261 , 2262 , 2263 , 2264 , 2265 , 2266 , 2267 , 2268 , 2269 , 2270 , 2270 , 2271 , 2272 , 2273 , 2274 , 2275 , 2276 , 2277 , 2278 , 2279 , 2280 , 2281 , 2282 , 2283 , 2284 , 2284 , 2285 , 2286 , 2287 , 2288 , 2289 , 2290 , 2291 , 2292 , 2293 , 2294 , 2295 , 2296 , 2297 , 2297 , 2298 , 2299 , 2300 , 2301 , 2302 , 2303 , 2304 , 2305 , 2306 , 2307 , 2308 , 2309 , 2310 , 2311 , 2311 , 2312 , 2313 , 2314 , 2315 , 2316 , 2317 , 2318 , 2319 , 2320 , 2321 , 2322 , 2323 , 2324 , 2324 , 2325 , 2326 , 2327 , 2328 , 2329 , 2330 , 2331 , 2332 , 2333 , 2334 , 2335 , 2336 , 2337 , 2337 , 2338 , 2339 , 2340 , 2341 , 2342 , 2343 , 2344 , 2345 , 2346 , 2347 , 2348 , 2349 , 2349 , 2350 , 2351 , 2352 , 2353 , 2354 , 2355 , 2356 , 2357 , 2358 , 2359 , 2360 , 2361 , 2362 , 2362 , 2363 , 2364 , 2365 , 2366 , 2367 , 2368 , 2369 , 2370 , 2371 , 2372 , 2373 , 2374 , 2374 , 2375 , 2376 , 2377 , 2378 , 2379 , 2380 , 2381 , 2382 , 2383 , 2384 , 2385 , 2386 , 2386 , 2387 , 2388 , 2389 , 2390 , 2391 , 2392 , 2393 , 2394 , 2395 , 2396 , 2397 , 2397 , 2398 , 2399 , 2400 , 2401 , 2402 , 2403 , 2404 , 2405 , 2406 , 2407 , 2408 , 2409 , 2409 , 2410 , 2411 , 2412 , 2413 , 2414 , 2415 , 2416 , 2417 , 2418 , 2419 , 2420 , 2420 , 2421 , 2422 , 2423 , 2424 , 2425 , 2426 , 2427 , 2428 , 2429 , 2430 , 2431 , 2431 , 2432 , 2433 , 2434 , 2435 , 2436 , 2437 , 2438 , 2439 , 2440 , 2441 , 2442 , 2442 , 2443 , 2444 , 2445 , 2446 , 2447 , 2448 , 2449 , 2450 , 2451 , 2452 , 2453 , 2453 , 2454 , 2455 , 2456 , 2457 , 2458 , 2459 , 2460 , 2461 , 2462 , 2463 , 2464 , 2464 , 2465 , 2466 , 2467 , 2468 , 2469 , 2470 , 2471 , 2472 , 2473 , 2474 , 2474 , 2475 , 2476 , 2477 , 2478 , 2479 , 2480 , 2481 , 2482 , 2483 , 2484 , 2485 , 2485 , 2486 , 2487 , 2488 , 2489 , 2490 , 2491 , 2492 , 2493 , 2494 , 2495 , 2495 , 2496 , 2497 , 2498 , 2499 , 2500 ,
30 2501 , 2502 , 2503 , 2504 , 2505 , 2505 , 2506 , 2507 , 2508 , 2509 , 2510 , 2511 , 2512 , 2513 , 2514 , 2515 , 2516 , 2516 , 2517 , 2518 , 2519 , 2520 , 2521 , 2522 , 2523 , 2524 , 2525 , 2526 , 2526 , 2527 , 2528 , 2529 , 2530 , 2531 , 2532 , 2533 , 2534 , 2535 , 2535 , 2536 , 2537 , 2538 , 2539 , 2540 , 2541 , 2542 , 2543 , 2544 , 2545 , 2545 , 2546 , 2547 , 2548 , 2549 , 2550 , 2551 , 2552 , 2553 , 2554 , 2555 , 2555 , 2556 , 2557 , 2558 , 2559 , 2560 , 2561 , 2562 , 2563 , 2564 , 2565 , 2565 , 2566 , 2567 , 2568 , 2569 , 2570 , 2571 , 2572 , 2573 , 2574 , 2574 , 2575 , 2576 , 2577 , 2578 , 2579 , 2580 , 2581 , 2582 , 2583 , 2583 , 2584 , 2585 , 2586 , 2587 , 2588 , 2589 , 2590 , 2591 , 2592 , 2593 , 2593 , 2594 , 2595 , 2596 , 2597 , 2598 , 2599 , 2600 , 2601 , 2602 , 2602 , 2603 , 2604 , 2605 , 2606 , 2607 , 2608 , 2609 , 2610 , 2611 , 2611 , 2612 , 2613 , 2614 , 2615 , 2616 , 2617 , 2618 , 2619 , 2620 , 2620 , 2621 , 2622 , 2623 , 2624 , 2625 , 2626 , 2627 , 2628 , 2629 , 2629 , 2630 , 2631 , 2632 , 2633 , 2634 , 2635 , 2636 , 2637 , 2638 , 2638 , 2639 , 2640 , 2641 , 2642 , 2643 , 2644 , 2645 , 2646 , 2647 , 2647 , 2648 , 2649 , 2650 , 2651 , 2652 , 2653 , 2654 , 2655 , 2656 , 2656 , 2657 , 2658 , 2659 , 2660 , 2661 , 2662 , 2663 , 2664 , 2665 , 2665 , 2666 , 2667 , 2668 , 2669 , 2670 , 2671 , 2672 , 2673 , 2674 , 2674 , 2675 , 2676 , 2677 , 2678 , 2679 , 2680 , 2681 , 2682 , 2682 , 2683 , 2684 , 2685 , 2686 , 2687 , 2688 , 2689 , 2690 , 2691 , 2691 , 2692 , 2693 , 2694 , 2695 , 2696 , 2697 , 2698 , 2699 , 2700 , 2700 , 2701 , 2702 , 2703 , 2704 , 2705 , 2706 , 2707 , 2708 , 2708 , 2709 , 2710 , 2711 , 2712 , 2713 , 2714 , 2715 , 2716 , 2717 , 2717 , 2718 , 2719 , 2720 , 2721 , 2722 , 2723 , 2724 , 2725 , 2725 , 2726 , 2727 , 2728 , 2729 , 2730 , 2731 , 2732 , 2733 , 2733 , 2734 , 2735 , 2736 , 2737 , 2738 , 2739 , 2740 , 2741 , 2742 , 2742 , 2743 , 2744 , 2745 , 2746 , 2747 , 2748 , 2749 , 2750 , 2750 , 2751 , 2752 , 2753 , 2754 , 2755 , 2756 , 2757 , 2758 , 2758 , 2759 , 2760 , 2761 , 2762 , 2763 , 2764 , 2765 , 2766 , 2766 , 2767 , 2768 , 2769 , 2770 , 2771 , 2772 , 2773 , 2774 , 2775 , 2775 , 2776 , 2777 , 2778 , 2779 , 2780 , 2781 , 2782 , 2783 , 2783 , 2784 , 2785 , 2786 , 2787 , 2788 , 2789 , 2790 , 2791 , 2791 , 2792 , 2793 , 2794 , 2795 , 2796 , 2797 , 2798 , 2799 , 2799 , 2800 , 2801 , 2802 , 2803 , 2804 , 2805 , 2806 , 2807 , 2807 , 2808 , 2809 , 2810 , 2811 , 2812 , 2813 , 2814 , 2815 , 2815 , 2816 , 2817 , 2818 , 2819 , 2820 , 2821 , 2822 , 2823 , 2823 , 2824 , 2825 , 2826 , 2827 , 2828 , 2829 , 2830 , 2830 , 2831 , 2832 , 2833 , 2834 , 2835 , 2836 , 2837 , 2838 , 2838 , 2839 , 2840 , 2841 , 2842 , 2843 , 2844 , 2845 , 2846 , 2846 , 2847 , 2848 , 2849 , 2850 , 2851 , 2852 , 2853 , 2854 , 2854 , 2855 , 2856 , 2857 , 2858 , 2859 , 2860 , 2861 , 2862 , 2862 , 2863 , 2864 , 2865 , 2866 , 2867 , 2868 , 2869 , 2869 , 2870 , 2871 , 2872 , 2873 , 2874 , 2875 , 2876 , 2877 , 2877 , 2878 , 2879 , 2880 , 2881 , 2882 , 2883 , 2884 , 2885 , 2885 , 2886 , 2887 , 2888 , 2889 , 2890 , 2891 , 2892 , 2892 , 2893 , 2894 , 2895 , 2896 , 2897 , 2898 , 2899 , 2900 , 2900 , 2901 , 2902 , 2903 , 2904 , 2905 , 2906 , 2907 , 2908 , 2908 , 2909 , 2910 , 2911 , 2912 , 2913 , 2914 , 2915 , 2915 , 2916 , 2917 , 2918 , 2919 , 2920 , 2921 , 2922 , 2923 , 2923 , 2924 , 2925 , 2926 , 2927 , 2928 , 2929 , 2930 , 2930 , 2931 , 2932 , 2933 , 2934 , 2935 , 2936 , 2937 , 2938 , 2938 , 2939 , 2940 , 2941 , 2942 , 2943 , 2944 , 2945 , 2945 , 2946 , 2947 , 2948 , 2949 , 2950 , 2951 , 2952 , 2953 , 2953 , 2954 , 2955 , 2956 , 2957 , 2958 , 2959 , 2960 , 2960 , 2961 , 2962 , 2963 , 2964 , 2965 , 2966 , 2967 , 2968 , 2968 , 2969 , 2970 , 2971 , 2972 , 2973 , 2974 , 2975 , 2975 , 2976 , 2977 , 2978 , 2979 , 2980 , 2981 , 2982 , 2982 , 2983 , 2984 , 2985 , 2986 , 2987 , 2988 , 2989 , 2990 , 2990 , 2991 , 2992 , 2993 , 2994 , 2995 , 2996 , 2997 , 2997 , 2998 , 2999 , 3000 ,
31 3001 , 3002 , 3003 , 3004 , 3004 , 3005 , 3006 , 3007 , 3008 , 3009 , 3010 , 3011 , 3012 , 3012 , 3013 , 3014 , 3015 , 3016 , 3017 , 3018 , 3019 , 3019 , 3020 , 3021 , 3022 , 3023 , 3024 , 3025 , 3026 , 3026 , 3027 , 3028 , 3029 , 3030 , 3031 , 3032 , 3033 , 3033 , 3034 , 3035 , 3036 , 3037 , 3038 , 3039 , 3040 , 3041 , 3041 , 3042 , 3043 , 3044 , 3045 , 3046 , 3047 , 3048 , 3048 , 3049 , 3050 , 3051 , 3052 , 3053 , 3054 , 3055 , 3055 , 3056 , 3057 , 3058 , 3059 , 3060 , 3061 , 3062 , 3062 , 3063 , 3064 , 3065 , 3066 , 3067 , 3068 , 3069 , 3069 , 3070 , 3071 , 3072 , 3073 , 3074 , 3075 , 3076 , 3077 , 3077 , 3078 , 3079 , 3080 , 3081 , 3082 , 3083 , 3084 , 3084 , 3085 , 3086 , 3087 , 3088 , 3089 , 3090 , 3091 , 3091 , 3092 , 3093 , 3094 , 3095 , 3096 , 3097 , 3098 , 3098 , 3099 , 3100 , 3101 , 3102 , 3103 , 3104 , 3105 , 3105 , 3106 , 3107 , 3108 , 3109 , 3110 , 3111 , 3112 , 3112 , 3113 , 3114 , 3115 , 3116 , 3117 , 3118 , 3119 , 3120 , 3120 , 3121 , 3122 , 3123 , 3124 , 3125 , 3126 , 3127 , 3127 , 3128 , 3129 , 3130 , 3131 , 3132 , 3133 , 3134 , 3134 , 3135 , 3136 , 3137 , 3138 , 3139 , 3140 , 3141 , 3141 , 3142 , 3143 , 3144 , 3145 , 3146 , 3147 , 3148 , 3148 , 3149 , 3150 , 3151 , 3152 , 3153 , 3154 , 3155 , 3155 , 3156 , 3157 , 3158 , 3159 , 3160 , 3161 , 3162 , 3162 , 3163 , 3164 , 3165 , 3166 , 3167 , 3168 , 3169 , 3169 , 3170 , 3171 , 3172 , 3173 , 3174 , 3175 , 3176 , 3176 , 3177 , 3178 , 3179 , 3180 , 3181 , 3182 , 3183 , 3183 , 3184 , 3185 , 3186 , 3187 , 3188 , 3189 , 3190 , 3190 , 3191 , 3192 , 3193 , 3194 , 3195 , 3196 , 3197 , 3197 , 3198 , 3199 , 3200 , 3201 , 3202 , 3203 , 3204 , 3204 , 3205 , 3206 , 3207 , 3208 , 3209 , 3210 , 3211 , 3211 , 3212 , 3213 , 3214 , 3215 , 3216 , 3217 , 3218 , 3218 , 3219 , 3220 , 3221 , 3222 , 3223 , 3224 , 3225 , 3225 , 3226 , 3227 , 3228 , 3229 , 3230 , 3231 , 3232 , 3232 , 3233 , 3234 , 3235 , 3236 , 3237 , 3238 , 3239 , 3239 , 3240 , 3241 , 3242 , 3243 , 3244 , 3245 , 3246 , 3246 , 3247 , 3248 , 3249 , 3250 , 3251 , 3252 , 3253 , 3253 , 3254 , 3255 , 3256 , 3257 , 3258 , 3259 , 3260 , 3260 , 3261 , 3262 , 3263 , 3264 , 3265 , 3266 , 3267 , 3267 , 3268 , 3269 , 3270 , 3271 , 3272 , 3273 , 3274 , 3274 , 3275 , 3276 , 3277 , 3278 , 3279 , 3280 , 3281 , 3281 , 3282 , 3283 , 3284 , 3285 , 3286 , 3287 , 3288 , 3288 , 3289 , 3290 , 3291 , 3292 , 3293 , 3294 , 3295 , 3295 , 3296 , 3297 , 3298 , 3299 , 3300 , 3301 , 3302 , 3302 , 3303 , 3304 , 3305 , 3306 , 3307 , 3308 , 3309 , 3310 , 3310 , 3311 , 3312 , 3313 , 3314 , 3315 , 3316 , 3317 , 3317 , 3318 , 3319 , 3320 , 3321 , 3322 , 3323 , 3324 , 3324 , 3325 , 3326 , 3327 , 3328 , 3329 , 3330 , 3331 , 3331 , 3332 , 3333 , 3334 , 3335 , 3336 , 3337 , 3338 , 3338 , 3339 , 3340 , 3341 , 3342 , 3343 , 3344 , 3345 , 3345 , 3346 , 3347 , 3348 , 3349 , 3350 , 3351 , 3352 , 3352 , 3353 , 3354 , 3355 , 3356 , 3357 , 3358 , 3359 , 3359 , 3360 , 3361 , 3362 , 3363 , 3364 , 3365 , 3366 , 3366 , 3367 , 3368 , 3369 , 3370 , 3371 , 3372 , 3373 , 3373 , 3374 , 3375 , 3376 , 3377 , 3378 , 3379 , 3380 , 3380 , 3381 , 3382 , 3383 , 3384 , 3385 , 3386 , 3387 , 3387 , 3388 , 3389 , 3390 , 3391 , 3392 , 3393 , 3394 , 3394 , 3395 , 3396 , 3397 , 3398 , 3399 , 3400 , 3401 , 3401 , 3402 , 3403 , 3404 , 3405 , 3406 , 3407 , 3408 , 3408 , 3409 , 3410 , 3411 , 3412 , 3413 , 3414 , 3415 , 3415 , 3416 , 3417 , 3418 , 3419 , 3420 , 3421 , 3422 , 3422 , 3423 , 3424 , 3425 , 3426 , 3427 , 3428 , 3429 , 3429 , 3430 , 3431 , 3432 , 3433 , 3434 , 3435 , 3436 , 3436 , 3437 , 3438 , 3439 , 3440 , 3441 , 3442 , 3443 , 3443 , 3444 , 3445 , 3446 , 3447 , 3448 , 3449 , 3450 , 3451 , 3451 , 3452 , 3453 , 3454 , 3455 , 3456 , 3457 , 3458 , 3458 , 3459 , 3460 , 3461 , 3462 , 3463 , 3464 , 3465 , 3465 , 3466 , 3467 , 3468 , 3469 , 3470 , 3471 , 3472 , 3472 , 3473 , 3474 , 3475 , 3476 , 3477 , 3478 , 3479 , 3479 , 3480 , 3481 , 3482 , 3483 , 3484 , 3485 , 3486 , 3486 , 3487 , 3488 , 3489 , 3490 , 3491 , 3492 , 3493 , 3494 , 3494 , 3495 , 3496 , 3497 , 3498 , 3499 , 3500 ,
32 3501 , 3501 , 3502 , 3503 , 3504 , 3505 , 3506 , 3507 , 3508 , 3508 , 3509 , 3510 , 3511 , 3512 , 3513 , 3514 , 3515 , 3515 , 3516 , 3517 , 3518 , 3519 , 3520 , 3521 , 3522 , 3522 , 3523 , 3524 , 3525 , 3526 , 3527 , 3528 , 3529 , 3530 , 3530 , 3531 , 3532 , 3533 , 3534 , 3535 , 3536 , 3537 , 3537 , 3538 , 3539 , 3540 , 3541 , 3542 , 3543 , 3544 , 3544 , 3545 , 3546 , 3547 , 3548 , 3549 , 3550 , 3551 , 3552 , 3552 , 3553 , 3554 , 3555 , 3556 , 3557 , 3558 , 3559 , 3559 , 3560 , 3561 , 3562 , 3563 , 3564 , 3565 , 3566 , 3566 , 3567 , 3568 , 3569 , 3570 , 3571 , 3572 , 3573 , 3573 , 3574 , 3575 , 3576 , 3577 , 3578 , 3579 , 3580 , 3581 , 3581 , 3582 , 3583 , 3584 , 3585 , 3586 , 3587 , 3588 , 3588 , 3589 , 3590 , 3591 , 3592 , 3593 , 3594 , 3595 , 3596 , 3596 , 3597 , 3598 , 3599 , 3600 , 3601 , 3602 , 3603 , 3603 , 3604 , 3605 , 3606 , 3607 , 3608 , 3609 , 3610 , 3611 , 3611 , 3612 , 3613 , 3614 , 3615 , 3616 , 3617 , 3618 , 3618 , 3619 , 3620 , 3621 , 3622 , 3623 , 3624 , 3625 , 3625 , 3626 , 3627 , 3628 , 3629 , 3630 , 3631 , 3632 , 3633 , 3633 , 3634 , 3635 , 3636 , 3637 , 3638 , 3639 , 3640 , 3641 , 3641 , 3642 , 3643 , 3644 , 3645 , 3646 , 3647 , 3648 , 3648 , 3649 , 3650 , 3651 , 3652 , 3653 , 3654 , 3655 , 3656 , 3656 , 3657 , 3658 , 3659 , 3660 , 3661 , 3662 , 3663 , 3663 , 3664 , 3665 , 3666 , 3667 , 3668 , 3669 , 3670 , 3671 , 3671 , 3672 , 3673 , 3674 , 3675 , 3676 , 3677 , 3678 , 3679 , 3679 , 3680 , 3681 , 3682 , 3683 , 3684 , 3685 , 3686 , 3686 , 3687 , 3688 , 3689 , 3690 , 3691 , 3692 , 3693 , 3694 , 3694 , 3695 , 3696 , 3697 , 3698 , 3699 , 3700 , 3701 , 3702 , 3702 , 3703 , 3704 , 3705 , 3706 , 3707 , 3708 , 3709 , 3709 , 3710 , 3711 , 3712 , 3713 , 3714 , 3715 , 3716 , 3717 , 3717 , 3718 , 3719 , 3720 , 3721 , 3722 , 3723 , 3724 , 3725 , 3725 , 3726 , 3727 , 3728 , 3729 , 3730 , 3731 , 3732 , 3733 , 3733 , 3734 , 3735 , 3736 , 3737 , 3738 , 3739 , 3740 , 3741 , 3741 , 3742 , 3743 , 3744 , 3745 , 3746 , 3747 , 3748 , 3749 , 3749 , 3750 , 3751 , 3752 , 3753 , 3754 , 3755 , 3756 , 3757 , 3757 , 3758 , 3759 , 3760 , 3761 , 3762 , 3763 , 3764 , 3765 , 3765 , 3766 , 3767 , 3768 , 3769 , 3770 , 3771 , 3772 , 3773 , 3773 , 3774 , 3775 , 3776 , 3777 , 3778 , 3779 , 3780 , 3781 , 3781 , 3782 , 3783 , 3784 , 3785 , 3786 , 3787 , 3788 , 3789 , 3789 , 3790 , 3791 , 3792 , 3793 , 3794 , 3795 , 3796 , 3797 , 3797 , 3798 , 3799 , 3800 , 3801 , 3802 , 3803 , 3804 , 3805 , 3805 , 3806 , 3807 , 3808 , 3809 , 3810 , 3811 , 3812 , 3813 , 3814 , 3814 , 3815 , 3816 , 3817 , 3818 , 3819 , 3820 , 3821 , 3822 , 3822 , 3823 , 3824 , 3825 , 3826 , 3827 , 3828 , 3829 , 3830 , 3830 , 3831 , 3832 , 3833 , 3834 , 3835 , 3836 , 3837 , 3838 , 3839 , 3839 , 3840 , 3841 , 3842 , 3843 , 3844 , 3845 , 3846 , 3847 , 3847 , 3848 , 3849 , 3850 , 3851 , 3852 , 3853 , 3854 , 3855 , 3856 , 3856 , 3857 , 3858 , 3859 , 3860 , 3861 , 3862 , 3863 , 3864 , 3864 , 3865 , 3866 , 3867 , 3868 , 3869 , 3870 , 3871 , 3872 , 3873 , 3873 , 3874 , 3875 , 3876 , 3877 , 3878 , 3879 , 3880 , 3881 , 3881 , 3882 , 3883 , 3884 , 3885 , 3886 , 3887 , 3888 , 3889 , 3890 , 3890 , 3891 , 3892 , 3893 , 3894 , 3895 , 3896 , 3897 , 3898 , 3899 , 3899 , 3900 , 3901 , 3902 , 3903 , 3904 , 3905 , 3906 , 3907 , 3908 , 3908 , 3909 , 3910 , 3911 , 3912 , 3913 , 3914 , 3915 , 3916 , 3917 , 3917 , 3918 , 3919 , 3920 , 3921 , 3922 , 3923 , 3924 , 3925 , 3926 , 3926 , 3927 , 3928 , 3929 , 3930 , 3931 , 3932 , 3933 , 3934 , 3935 , 3935 , 3936 , 3937 , 3938 , 3939 , 3940 , 3941 , 3942 , 3943 , 3944 , 3944 , 3945 , 3946 , 3947 , 3948 , 3949 , 3950 , 3951 , 3952 , 3953 , 3953 , 3954 , 3955 , 3956 , 3957 , 3958 , 3959 , 3960 , 3961 , 3962 , 3962 , 3963 , 3964 , 3965 , 3966 , 3967 , 3968 , 3969 , 3970 , 3971 , 3972 , 3972 , 3973 , 3974 , 3975 , 3976 , 3977 , 3978 , 3979 , 3980 , 3981 , 3981 , 3982 , 3983 , 3984 , 3985 , 3986 , 3987 , 3988 , 3989 , 3990 , 3990 , 3991 , 3992 , 3993 , 3994 , 3995 , 3996 , 3997 , 3998 , 3999 , 4000 , 4000 ,
33 4001 , 4002 , 4003 , 4004 , 4005 , 4006 , 4007 , 4008 , 4009 , 4010 , 4010 , 4011 , 4012 , 4013 , 4014 , 4015 , 4016 , 4017 , 4018 , 4019 , 4019 , 4020 , 4021 , 4022 , 4023 , 4024 , 4025 , 4026 , 4027 , 4028 , 4029 , 4029 , 4030 , 4031 , 4032 , 4033 , 4034 , 4035 , 4036 , 4037 , 4038 , 4039 , 4039 , 4040 , 4041 , 4042 , 4043 , 4044 , 4045 , 4046 , 4047 , 4048 , 4049 , 4049 , 4050 , 4051 , 4052 , 4053 , 4054 , 4055 , 4056 , 4057 , 4058 , 4059 , 4059 , 4060 , 4061 , 4062 , 4063 , 4064 , 4065 , 4066 , 4067 , 4068 , 4069 , 4070 , 4070 , 4071 , 4072 , 4073 , 4074 , 4075 , 4076 , 4077 , 4078 , 4079 , 4080 , 4080 , 4081 , 4082 , 4083 , 4084 , 4085 , 4086 , 4087 , 4088 , 4089 , 4090 , 4091 , 4091 , 4092 , 4093 , 4094 , 4095 );
34
35 type saw_unload_array_t is array ( 0 to 4095 ) of integer range 0 to 4095 ;
36 constant saw_unload_array_c : saw_unload_array_t : =
37 ( 0 , 5 , 5 , 6 , 6 , 7 , 7 , 8 , 8 , 9 , 9 , 10 , 10 , 11 , 11 , 12 , 12 , 13 , 13 , 14 , 14 , 15 , 15 , 16 , 16 , 17 , 17 , 18 , 18 , 19 , 19 , 20 , 20 , 21 , 21 , 22 , 22 , 23 , 23 , 24 , 24 , 25 , 26 , 26 , 27 , 27 , 28 , 28 , 29 , 29 , 30 , 30 , 31 , 31 , 32 , 32 , 33 , 33 , 34 , 34 , 35 , 35 , 36 , 36 , 37 , 37 , 38 , 38 , 39 , 39 , 40 , 40 , 41 , 41 , 42 , 42 , 43 , 44 , 44 , 45 , 45 , 46 , 46 , 47 , 47 , 48 , 48 , 49 , 49 , 50 , 50 , 51 , 51 , 52 , 52 , 53 , 53 , 54 , 55 , 55 , 56 , 56 , 57 , 57 , 58 , 58 , 59 , 59 , 60 , 60 , 61 , 61 , 62 , 62 , 63 , 64 , 64 , 65 , 65 , 66 , 66 , 67 , 67 , 68 , 68 , 69 , 69 , 70 , 71 , 71 , 72 , 72 , 73 , 73 , 74 , 74 , 75 , 75 , 76 , 76 , 77 , 78 , 78 , 79 , 79 , 80 , 80 , 81 , 81 , 82 , 82 , 83 , 84 , 84 , 85 , 85 , 86 , 86 , 87 , 87 , 88 , 88 , 89 , 90 , 90 , 91 , 91 , 92 , 92 , 93 , 93 , 94 , 95 , 95 , 96 , 96 , 97 , 97 , 98 , 98 , 99 , 100 , 100 , 101 , 101 , 102 , 102 , 103 , 103 , 104 , 105 , 105 , 106 , 106 , 107 , 107 , 108 , 108 , 109 , 110 , 110 , 111 , 111 , 112 , 112 , 113 , 114 , 114 , 115 , 115 , 116 , 116 , 117 , 118 , 118 , 119 , 119 , 120 , 120 , 121 , 121 , 122 , 123 , 123 , 124 , 124 , 125 , 125 , 126 , 127 , 127 , 128 , 128 , 129 , 129 , 130 , 131 , 131 , 132 , 132 , 133 , 134 , 134 , 135 , 135 , 136 , 136 , 137 , 138 , 138 , 139 , 139 , 140 , 140 , 141 , 142 , 142 , 143 , 143 , 144 , 145 , 145 , 146 , 146 , 147 , 147 , 148 , 149 , 149 , 150 , 150 , 151 , 152 , 152 , 153 , 153 , 154 , 154 , 155 , 156 , 156 , 157 , 157 , 158 , 159 , 159 , 160 , 160 , 161 , 162 , 162 , 163 , 163 , 164 , 164 , 165 , 166 , 166 , 167 , 167 , 168 , 169 , 169 , 170 , 170 , 171 , 172 , 172 , 173 , 173 , 174 , 175 , 175 , 176 , 176 , 177 , 178 , 178 , 179 , 179 , 180 , 181 , 181 , 182 , 182 , 183 , 184 , 184 , 185 , 185 , 186 , 187 , 187 , 188 , 188 , 189 , 190 , 190 , 191 , 192 , 192 , 193 , 193 , 194 , 195 , 195 , 196 , 196 , 197 , 198 , 198 , 199 , 199 , 200 , 201 , 201 , 202 , 203 , 203 , 204 , 204 , 205 , 206 , 206 , 207 , 207 , 208 , 209 , 209 , 210 , 211 , 211 , 212 , 212 , 213 , 214 , 214 , 215 , 215 , 216 , 217 , 217 , 218 , 219 , 219 , 220 , 220 , 221 , 222 , 222 , 223 , 224 , 224 , 225 , 225 , 226 , 227 , 227 , 228 , 229 , 229 , 230 , 230 , 231 , 232 , 232 , 233 , 234 , 234 , 235 , 236 , 236 , 237 , 237 , 238 , 239 , 239 , 240 , 241 , 241 , 242 , 242 , 243 , 244 , 244 , 245 , 246 , 246 , 247 , 248 , 248 , 249 , 249 , 250 , 251 , 251 , 252 , 253 , 253 , 254 , 255 , 255 , 256 , 256 , 257 , 258 , 258 , 259 , 260 , 260 , 261 , 262 , 262 , 263 , 264 , 264 , 265 , 265 , 266 , 267 , 267 , 268 , 269 , 269 , 270 , 271 , 271 , 272 , 273 , 273 , 274 , 275 , 275 , 276 , 277 , 277 , 278 , 278 , 279 , 280 , 280 , 281 , 282 , 282 , 283 , 284 , 284 , 285 , 286 , 286 , 287 , 288 , 288 , 289 , 290 , 290 , 291 , 292 , 292 , 293 , 294 , 294 , 295 , 296 , 296 , 297 , 298 , 298 , 299 , 299 , 300 , 301 , 301 , 302 , 303 , 303 , 304 , 305 , 305 , 306 , 307 , 307 , 308 , 309 , 309 , 310 , 311 , 311 , 312 , 313 , 313 , 314 , 315 , 315 , 316 , 317 , 317 , 318 , 319 , 319 , 320 , 321 , 321 , 322 , 323 , 324 , 324 , 325 , 326 , 326 , 327 , 328 , 328 , 329 , 330 , 330 , 331 , 332 , 332 , 333 , 334 , 334 , 335 , 336 , 336 , 337 , 338 , 338 , 339 , 340 , 340 , 341 , 342 , 342 , 343 , 344 , 345 , 345 , 346 , 347 , 347 , 348 , 349 , 349 , 350 , 351 , 351 , 352 , 353 , 353 , 354 , 355 , 355 , 356 , 357 , 358 , 358 , 359 , 360 , 360 , 361 , 362 , 362 , 363 , 364 , 364 , 365 , 366 , 367 , 367 , 368 , 369 , 369 , 370 , 371 , 371 , 372 , 373 , 373 , 374 , 375 , 376 , 376 , 377 , 378 , 378 , 379 , 380 , 380 , 381 , 382 , 383 , 383 , 384 , 385 , 385 , 386 , 387 , 387 , 388 , 389 , 390 , 390 , 391 , 392 , 392 , 393 , 394 , 394 , 395 , 396 , 397 , 397 , 398 , 399 , 399 , 400 , 401 , 401 , 402 , 403 , 404 , 404 , 405 , 406 , 406 , 407 , 408 , 409 , 409 , 410 , 411 , 411 , 412 , 413 , 414 , 414 , 415 , 416 , 416 , 417 , 418 , 419 , 419 , 420 , 421 , 421 , 422 , 423 , 424 , 424 , 425 , 426 , 426 , 427 , 428 , 429 , 429 , 430 , 431 , 431 , 432 , 433 , 434 , 434 , 435 , 436 , 437 , 437 , 438 , 439 , 439 , 440 , 441 , 442 , 442 , 443 , 444 , 444 , 445 , 446 , 447 , 447 , 448 , 449 , 450 , 450 , 451 , 452 , 452 , 453 , 454 , 455 , 455 , 456 , 457 , 458 , 458 , 459 , 460 , 460 , 461 , 462 , 463 , 463 , 464 , 465 , 466 , 466 , 467 , 468 , 469 , 469 , 470 , 471 , 471 , 472 , 473 , 474 , 474 , 475 , 476 , 477 , 477 , 478 , 479 , 480 , 480 , 481 , 482 , 483 , 483 , 484 , 485 , 486 , 486 , 487 , 488 , 488 , 489 , 490 , 491 , 491 , 492 , 493 , 494 , 494 , 495 , 496 , 497 , 497 , 498 , 499 , 500 , 500 ,
38 501 , 502 , 503 , 503 , 504 , 505 , 506 , 506 , 507 , 508 , 509 , 509 , 510 , 511 , 512 , 512 , 513 , 514 , 515 , 515 , 516 , 517 , 518 , 518 , 519 , 520 , 521 , 521 , 522 , 523 , 524 , 524 , 525 , 526 , 527 , 527 , 528 , 529 , 530 , 531 , 531 , 532 , 533 , 534 , 534 , 535 , 536 , 537 , 537 , 538 , 539 , 540 , 540 , 541 , 542 , 543 , 543 , 544 , 545 , 546 , 547 , 547 , 548 , 549 , 550 , 550 , 551 , 552 , 553 , 553 , 554 , 555 , 556 , 556 , 557 , 558 , 559 , 560 , 560 , 561 , 562 , 563 , 563 , 564 , 565 , 566 , 566 , 567 , 568 , 569 , 570 , 570 , 571 , 572 , 573 , 573 , 574 , 575 , 576 , 577 , 577 , 578 , 579 , 580 , 580 , 581 , 582 , 583 , 584 , 584 , 585 , 586 , 587 , 587 , 588 , 589 , 590 , 591 , 591 , 592 , 593 , 594 , 594 , 595 , 596 , 597 , 598 , 598 , 599 , 600 , 601 , 602 , 602 , 603 , 604 , 605 , 605 , 606 , 607 , 608 , 609 , 609 , 610 , 611 , 612 , 613 , 613 , 614 , 615 , 616 , 616 , 617 , 618 , 619 , 620 , 620 , 621 , 622 , 623 , 624 , 624 , 625 , 626 , 627 , 628 , 628 , 629 , 630 , 631 , 632 , 632 , 633 , 634 , 635 , 636 , 636 , 637 , 638 , 639 , 639 , 640 , 641 , 642 , 643 , 643 , 644 , 645 , 646 , 647 , 647 , 648 , 649 , 650 , 651 , 651 , 652 , 653 , 654 , 655 , 656 , 656 , 657 , 658 , 659 , 660 , 660 , 661 , 662 , 663 , 664 , 664 , 665 , 666 , 667 , 668 , 668 , 669 , 670 , 671 , 672 , 672 , 673 , 674 , 675 , 676 , 676 , 677 , 678 , 679 , 680 , 681 , 681 , 682 , 683 , 684 , 685 , 685 , 686 , 687 , 688 , 689 , 689 , 690 , 691 , 692 , 693 , 694 , 694 , 695 , 696 , 697 , 698 , 698 , 699 , 700 , 701 , 702 , 703 , 703 , 704 , 705 , 706 , 707 , 707 , 708 , 709 , 710 , 711 , 712 , 712 , 713 , 714 , 715 , 716 , 717 , 717 , 718 , 719 , 720 , 721 , 721 , 722 , 723 , 724 , 725 , 726 , 726 , 727 , 728 , 729 , 730 , 731 , 731 , 732 , 733 , 734 , 735 , 736 , 736 , 737 , 738 , 739 , 740 , 741 , 741 , 742 , 743 , 744 , 745 , 746 , 746 , 747 , 748 , 749 , 750 , 751 , 751 , 752 , 753 , 754 , 755 , 756 , 756 , 757 , 758 , 759 , 760 , 761 , 761 , 762 , 763 , 764 , 765 , 766 , 766 , 767 , 768 , 769 , 770 , 771 , 771 , 772 , 773 , 774 , 775 , 776 , 777 , 777 , 778 , 779 , 780 , 781 , 782 , 782 , 783 , 784 , 785 , 786 , 787 , 787 , 788 , 789 , 790 , 791 , 792 , 793 , 793 , 794 , 795 , 796 , 797 , 798 , 799 , 799 , 800 , 801 , 802 , 803 , 804 , 804 , 805 , 806 , 807 , 808 , 809 , 810 , 810 , 811 , 812 , 813 , 814 , 815 , 816 , 816 , 817 , 818 , 819 , 820 , 821 , 822 , 822 , 823 , 824 , 825 , 826 , 827 , 828 , 828 , 829 , 830 , 831 , 832 , 833 , 834 , 834 , 835 , 836 , 837 , 838 , 839 , 840 , 840 , 841 , 842 , 843 , 844 , 845 , 846 , 847 , 847 , 848 , 849 , 850 , 851 , 852 , 853 , 853 , 854 , 855 , 856 , 857 , 858 , 859 , 860 , 860 , 861 , 862 , 863 , 864 , 865 , 866 , 866 , 867 , 868 , 869 , 870 , 871 , 872 , 873 , 873 , 874 , 875 , 876 , 877 , 878 , 879 , 880 , 880 , 881 , 882 , 883 , 884 , 885 , 886 , 887 , 887 , 888 , 889 , 890 , 891 , 892 , 893 , 894 , 894 , 895 , 896 , 897 , 898 , 899 , 900 , 901 , 901 , 902 , 903 , 904 , 905 , 906 , 907 , 908 , 909 , 909 , 910 , 911 , 912 , 913 , 914 , 915 , 916 , 916 , 917 , 918 , 919 , 920 , 921 , 922 , 923 , 924 , 924 , 925 , 926 , 927 , 928 , 929 , 930 , 931 , 932 , 932 , 933 , 934 , 935 , 936 , 937 , 938 , 939 , 940 , 940 , 941 , 942 , 943 , 944 , 945 , 946 , 947 , 948 , 948 , 949 , 950 , 951 , 952 , 953 , 954 , 955 , 956 , 957 , 957 , 958 , 959 , 960 , 961 , 962 , 963 , 964 , 965 , 965 , 966 , 967 , 968 , 969 , 970 , 971 , 972 , 973 , 974 , 974 , 975 , 976 , 977 , 978 , 979 , 980 , 981 , 982 , 983 , 984 , 984 , 985 , 986 , 987 , 988 , 989 , 990 , 991 , 992 , 993 , 993 , 994 , 995 , 996 , 997 , 998 , 999 , 1000 ,
39 1001 , 1002 , 1003 , 1003 , 1004 , 1005 , 1006 , 1007 , 1008 , 1009 , 1010 , 1011 , 1012 , 1013 , 1013 , 1014 , 1015 , 1016 , 1017 , 1018 , 1019 , 1020 , 1021 , 1022 , 1023 , 1023 , 1024 , 1025 , 1026 , 1027 , 1028 , 1029 , 1030 , 1031 , 1032 , 1033 , 1034 , 1034 , 1035 , 1036 , 1037 , 1038 , 1039 , 1040 , 1041 , 1042 , 1043 , 1044 , 1045 , 1045 , 1046 , 1047 , 1048 , 1049 , 1050 , 1051 , 1052 , 1053 , 1054 , 1055 , 1056 , 1057 , 1057 , 1058 , 1059 , 1060 , 1061 , 1062 , 1063 , 1064 , 1065 , 1066 , 1067 , 1068 , 1069 , 1069 , 1070 , 1071 , 1072 , 1073 , 1074 , 1075 , 1076 , 1077 , 1078 , 1079 , 1080 , 1081 , 1082 , 1082 , 1083 , 1084 , 1085 , 1086 , 1087 , 1088 , 1089 , 1090 , 1091 , 1092 , 1093 , 1094 , 1095 , 1095 , 1096 , 1097 , 1098 , 1099 , 1100 , 1101 , 1102 , 1103 , 1104 , 1105 , 1106 , 1107 , 1108 , 1109 , 1109 , 1110 , 1111 , 1112 , 1113 , 1114 , 1115 , 1116 , 1117 , 1118 , 1119 , 1120 , 1121 , 1122 , 1123 , 1124 , 1125 , 1125 , 1126 , 1127 , 1128 , 1129 , 1130 , 1131 , 1132 , 1133 , 1134 , 1135 , 1136 , 1137 , 1138 , 1139 , 1140 , 1141 , 1141 , 1142 , 1143 , 1144 , 1145 , 1146 , 1147 , 1148 , 1149 , 1150 , 1151 , 1152 , 1153 , 1154 , 1155 , 1156 , 1157 , 1158 , 1158 , 1159 , 1160 , 1161 , 1162 , 1163 , 1164 , 1165 , 1166 , 1167 , 1168 , 1169 , 1170 , 1171 , 1172 , 1173 , 1174 , 1175 , 1176 , 1177 , 1177 , 1178 , 1179 , 1180 , 1181 , 1182 , 1183 , 1184 , 1185 , 1186 , 1187 , 1188 , 1189 , 1190 , 1191 , 1192 , 1193 , 1194 , 1195 , 1196 , 1197 , 1198 , 1199 , 1199 , 1200 , 1201 , 1202 , 1203 , 1204 , 1205 , 1206 , 1207 , 1208 , 1209 , 1210 , 1211 , 1212 , 1213 , 1214 , 1215 , 1216 , 1217 , 1218 , 1219 , 1220 , 1221 , 1222 , 1223 , 1223 , 1224 , 1225 , 1226 , 1227 , 1228 , 1229 , 1230 , 1231 , 1232 , 1233 , 1234 , 1235 , 1236 , 1237 , 1238 , 1239 , 1240 , 1241 , 1242 , 1243 , 1244 , 1245 , 1246 , 1247 , 1248 , 1249 , 1250 , 1251 , 1252 , 1253 , 1253 , 1254 , 1255 , 1256 , 1257 , 1258 , 1259 , 1260 , 1261 , 1262 , 1263 , 1264 , 1265 , 1266 , 1267 , 1268 , 1269 , 1270 , 1271 , 1272 , 1273 , 1274 , 1275 , 1276 , 1277 , 1278 , 1279 , 1280 , 1281 , 1282 , 1283 , 1284 , 1285 , 1286 , 1287 , 1288 , 1289 , 1290 , 1291 , 1292 , 1292 , 1293 , 1294 , 1295 , 1296 , 1297 , 1298 , 1299 , 1300 , 1301 , 1302 , 1303 , 1304 , 1305 , 1306 , 1307 , 1308 , 1309 , 1310 , 1311 , 1312 , 1313 , 1314 , 1315 , 1316 , 1317 , 1318 , 1319 , 1320 , 1321 , 1322 , 1323 , 1324 , 1325 , 1326 , 1327 , 1328 , 1329 , 1330 , 1331 , 1332 , 1333 , 1334 , 1335 , 1336 , 1337 , 1338 , 1339 , 1340 , 1341 , 1342 , 1343 , 1344 , 1345 , 1346 , 1347 , 1348 , 1349 , 1350 , 1351 , 1352 , 1353 , 1354 , 1355 , 1356 , 1357 , 1358 , 1359 , 1360 , 1361 , 1362 , 1363 , 1364 , 1365 , 1366 , 1367 , 1368 , 1369 , 1370 , 1371 , 1372 , 1373 , 1374 , 1375 , 1376 , 1377 , 1378 , 1379 , 1380 , 1381 , 1382 , 1383 , 1384 , 1385 , 1386 , 1387 , 1388 , 1389 , 1390 , 1391 , 1392 , 1393 , 1394 , 1395 , 1396 , 1397 , 1398 , 1399 , 1400 , 1401 , 1402 , 1403 , 1404 , 1405 , 1406 , 1407 , 1408 , 1409 , 1410 , 1411 , 1412 , 1413 , 1414 , 1415 , 1416 , 1417 , 1418 , 1419 , 1420 , 1421 , 1422 , 1423 , 1424 , 1425 , 1426 , 1427 , 1428 , 1429 , 1430 , 1431 , 1432 , 1433 , 1434 , 1435 , 1436 , 1437 , 1438 , 1439 , 1440 , 1441 , 1442 , 1443 , 1444 , 1445 , 1446 , 1447 , 1448 , 1449 , 1450 , 1451 , 1452 , 1453 , 1454 , 1455 , 1456 , 1457 , 1458 , 1459 , 1460 , 1461 , 1462 , 1463 , 1464 , 1465 , 1466 , 1467 , 1468 , 1469 , 1470 , 1471 , 1472 , 1473 , 1474 , 1475 , 1476 , 1477 , 1478 , 1479 , 1480 , 1482 , 1483 , 1484 , 1485 , 1486 , 1487 , 1488 , 1489 , 1490 , 1491 , 1492 , 1493 , 1494 , 1495 , 1496 , 1497 , 1498 , 1499 , 1500 ,
40 1501 , 1502 , 1503 , 1504 , 1505 , 1506 , 1507 , 1508 , 1509 , 1510 , 1511 , 1512 , 1513 , 1514 , 1515 , 1516 , 1517 , 1518 , 1519 , 1520 , 1521 , 1522 , 1523 , 1525 , 1526 , 1527 , 1528 , 1529 , 1530 , 1531 , 1532 , 1533 , 1534 , 1535 , 1536 , 1537 , 1538 , 1539 , 1540 , 1541 , 1542 , 1543 , 1544 , 1545 , 1546 , 1547 , 1548 , 1549 , 1550 , 1551 , 1552 , 1553 , 1554 , 1555 , 1557 , 1558 , 1559 , 1560 , 1561 , 1562 , 1563 , 1564 , 1565 , 1566 , 1567 , 1568 , 1569 , 1570 , 1571 , 1572 , 1573 , 1574 , 1575 , 1576 , 1577 , 1578 , 1579 , 1580 , 1581 , 1582 , 1583 , 1585 , 1586 , 1587 , 1588 , 1589 , 1590 , 1591 , 1592 , 1593 , 1594 , 1595 , 1596 , 1597 , 1598 , 1599 , 1600 , 1601 , 1602 , 1603 , 1604 , 1605 , 1606 , 1607 , 1609 , 1610 , 1611 , 1612 , 1613 , 1614 , 1615 , 1616 , 1617 , 1618 , 1619 , 1620 , 1621 , 1622 , 1623 , 1624 , 1625 , 1626 , 1627 , 1628 , 1629 , 1631 , 1632 , 1633 , 1634 , 1635 , 1636 , 1637 , 1638 , 1639 , 1640 , 1641 , 1642 , 1643 , 1644 , 1645 , 1646 , 1647 , 1648 , 1649 , 1650 , 1652 , 1653 , 1654 , 1655 , 1656 , 1657 , 1658 , 1659 , 1660 , 1661 , 1662 , 1663 , 1664 , 1665 , 1666 , 1667 , 1668 , 1669 , 1671 , 1672 , 1673 , 1674 , 1675 , 1676 , 1677 , 1678 , 1679 , 1680 , 1681 , 1682 , 1683 , 1684 , 1685 , 1686 , 1687 , 1688 , 1690 , 1691 , 1692 , 1693 , 1694 , 1695 , 1696 , 1697 , 1698 , 1699 , 1700 , 1701 , 1702 , 1703 , 1704 , 1705 , 1707 , 1708 , 1709 , 1710 , 1711 , 1712 , 1713 , 1714 , 1715 , 1716 , 1717 , 1718 , 1719 , 1720 , 1721 , 1723 , 1724 , 1725 , 1726 , 1727 , 1728 , 1729 , 1730 , 1731 , 1732 , 1733 , 1734 , 1735 , 1736 , 1737 , 1739 , 1740 , 1741 , 1742 , 1743 , 1744 , 1745 , 1746 , 1747 , 1748 , 1749 , 1750 , 1751 , 1752 , 1753 , 1755 , 1756 , 1757 , 1758 , 1759 , 1760 , 1761 , 1762 , 1763 , 1764 , 1765 , 1766 , 1767 , 1769 , 1770 , 1771 , 1772 , 1773 , 1774 , 1775 , 1776 , 1777 , 1778 , 1779 , 1780 , 1781 , 1782 , 1784 , 1785 , 1786 , 1787 , 1788 , 1789 , 1790 , 1791 , 1792 , 1793 , 1794 , 1795 , 1797 , 1798 , 1799 , 1800 , 1801 , 1802 , 1803 , 1804 , 1805 , 1806 , 1807 , 1808 , 1809 , 1811 , 1812 , 1813 , 1814 , 1815 , 1816 , 1817 , 1818 , 1819 , 1820 , 1821 , 1822 , 1824 , 1825 , 1826 , 1827 , 1828 , 1829 , 1830 , 1831 , 1832 , 1833 , 1834 , 1835 , 1837 , 1838 , 1839 , 1840 , 1841 , 1842 , 1843 , 1844 , 1845 , 1846 , 1847 , 1848 , 1850 , 1851 , 1852 , 1853 , 1854 , 1855 , 1856 , 1857 , 1858 , 1859 , 1860 , 1862 , 1863 , 1864 , 1865 , 1866 , 1867 , 1868 , 1869 , 1870 , 1871 , 1872 , 1874 , 1875 , 1876 , 1877 , 1878 , 1879 , 1880 , 1881 , 1882 , 1883 , 1884 , 1886 , 1887 , 1888 , 1889 , 1890 , 1891 , 1892 , 1893 , 1894 , 1895 , 1897 , 1898 , 1899 , 1900 , 1901 , 1902 , 1903 , 1904 , 1905 , 1906 , 1907 , 1909 , 1910 , 1911 , 1912 , 1913 , 1914 , 1915 , 1916 , 1917 , 1918 , 1920 , 1921 , 1922 , 1923 , 1924 , 1925 , 1926 , 1927 , 1928 , 1929 , 1931 , 1932 , 1933 , 1934 , 1935 , 1936 , 1937 , 1938 , 1939 , 1940 , 1942 , 1943 , 1944 , 1945 , 1946 , 1947 , 1948 , 1949 , 1950 , 1952 , 1953 , 1954 , 1955 , 1956 , 1957 , 1958 , 1959 , 1960 , 1961 , 1963 , 1964 , 1965 , 1966 , 1967 , 1968 , 1969 , 1970 , 1971 , 1973 , 1974 , 1975 , 1976 , 1977 , 1978 , 1979 , 1980 , 1981 , 1983 , 1984 , 1985 , 1986 , 1987 , 1988 , 1989 , 1990 , 1991 , 1993 , 1994 , 1995 , 1996 , 1997 , 1998 , 1999 , 2000 ,
41 2001 , 2003 , 2004 , 2005 , 2006 , 2007 , 2008 , 2009 , 2010 , 2011 , 2013 , 2014 , 2015 , 2016 , 2017 , 2018 , 2019 , 2020 , 2021 , 2023 , 2024 , 2025 , 2026 , 2027 , 2028 , 2029 , 2030 , 2031 , 2033 , 2034 , 2035 , 2036 , 2037 , 2038 , 2039 , 2040 , 2042 , 2043 , 2044 , 2045 , 2046 , 2047 , 2048 , 2049 , 2050 , 2052 , 2053 , 2054 , 2055 , 2056 , 2057 , 2058 , 2059 , 2061 , 2062 , 2063 , 2064 , 2065 , 2066 , 2067 , 2068 , 2070 , 2071 , 2072 , 2073 , 2074 , 2075 , 2076 , 2077 , 2079 , 2080 , 2081 , 2082 , 2083 , 2084 , 2085 , 2086 , 2088 , 2089 , 2090 , 2091 , 2092 , 2093 , 2094 , 2095 , 2097 , 2098 , 2099 , 2100 , 2101 , 2102 , 2103 , 2104 , 2106 , 2107 , 2108 , 2109 , 2110 , 2111 , 2112 , 2113 , 2115 , 2116 , 2117 , 2118 , 2119 , 2120 , 2121 , 2122 , 2124 , 2125 , 2126 , 2127 , 2128 , 2129 , 2130 , 2132 , 2133 , 2134 , 2135 , 2136 , 2137 , 2138 , 2139 , 2141 , 2142 , 2143 , 2144 , 2145 , 2146 , 2147 , 2149 , 2150 , 2151 , 2152 , 2153 , 2154 , 2155 , 2156 , 2158 , 2159 , 2160 , 2161 , 2162 , 2163 , 2164 , 2166 , 2167 , 2168 , 2169 , 2170 , 2171 , 2172 , 2173 , 2175 , 2176 , 2177 , 2178 , 2179 , 2180 , 2181 , 2183 , 2184 , 2185 , 2186 , 2187 , 2188 , 2189 , 2191 , 2192 , 2193 , 2194 , 2195 , 2196 , 2197 , 2199 , 2200 , 2201 , 2202 , 2203 , 2204 , 2205 , 2207 , 2208 , 2209 , 2210 , 2211 , 2212 , 2213 , 2215 , 2216 , 2217 , 2218 , 2219 , 2220 , 2221 , 2223 , 2224 , 2225 , 2226 , 2227 , 2228 , 2229 , 2231 , 2232 , 2233 , 2234 , 2235 , 2236 , 2237 , 2239 , 2240 , 2241 , 2242 , 2243 , 2244 , 2245 , 2247 , 2248 , 2249 , 2250 , 2251 , 2252 , 2253 , 2255 , 2256 , 2257 , 2258 , 2259 , 2260 , 2262 , 2263 , 2264 , 2265 , 2266 , 2267 , 2268 , 2270 , 2271 , 2272 , 2273 , 2274 , 2275 , 2276 , 2278 , 2279 , 2280 , 2281 , 2282 , 2283 , 2285 , 2286 , 2287 , 2288 , 2289 , 2290 , 2291 , 2293 , 2294 , 2295 , 2296 , 2297 , 2298 , 2300 , 2301 , 2302 , 2303 , 2304 , 2305 , 2306 , 2308 , 2309 , 2310 , 2311 , 2312 , 2313 , 2315 , 2316 , 2317 , 2318 , 2319 , 2320 , 2322 , 2323 , 2324 , 2325 , 2326 , 2327 , 2328 , 2330 , 2331 , 2332 , 2333 , 2334 , 2335 , 2337 , 2338 , 2339 , 2340 , 2341 , 2342 , 2344 , 2345 , 2346 , 2347 , 2348 , 2349 , 2350 , 2352 , 2353 , 2354 , 2355 , 2356 , 2357 , 2359 , 2360 , 2361 , 2362 , 2363 , 2364 , 2366 , 2367 , 2368 , 2369 , 2370 , 2371 , 2373 , 2374 , 2375 , 2376 , 2377 , 2378 , 2380 , 2381 , 2382 , 2383 , 2384 , 2385 , 2387 , 2388 , 2389 , 2390 , 2391 , 2392 , 2394 , 2395 , 2396 , 2397 , 2398 , 2399 , 2401 , 2402 , 2403 , 2404 , 2405 , 2406 , 2408 , 2409 , 2410 , 2411 , 2412 , 2413 , 2415 , 2416 , 2417 , 2418 , 2419 , 2420 , 2422 , 2423 , 2424 , 2425 , 2426 , 2427 , 2429 , 2430 , 2431 , 2432 , 2433 , 2434 , 2436 , 2437 , 2438 , 2439 , 2440 , 2441 , 2443 , 2444 , 2445 , 2446 , 2447 , 2449 , 2450 , 2451 , 2452 , 2453 , 2454 , 2456 , 2457 , 2458 , 2459 , 2460 , 2461 , 2463 , 2464 , 2465 , 2466 , 2467 , 2468 , 2470 , 2471 , 2472 , 2473 , 2474 , 2476 , 2477 , 2478 , 2479 , 2480 , 2481 , 2483 , 2484 , 2485 , 2486 , 2487 , 2488 , 2490 , 2491 , 2492 , 2493 , 2494 , 2496 , 2497 , 2498 , 2499 , 2500 ,
42 2501 , 2503 , 2504 , 2505 , 2506 , 2507 , 2509 , 2510 , 2511 , 2512 , 2513 , 2514 , 2516 , 2517 , 2518 , 2519 , 2520 , 2522 , 2523 , 2524 , 2525 , 2526 , 2527 , 2529 , 2530 , 2531 , 2532 , 2533 , 2535 , 2536 , 2537 , 2538 , 2539 , 2540 , 2542 , 2543 , 2544 , 2545 , 2546 , 2548 , 2549 , 2550 , 2551 , 2552 , 2553 , 2555 , 2556 , 2557 , 2558 , 2559 , 2561 , 2562 , 2563 , 2564 , 2565 , 2567 , 2568 , 2569 , 2570 , 2571 , 2572 , 2574 , 2575 , 2576 , 2577 , 2578 , 2580 , 2581 , 2582 , 2583 , 2584 , 2586 , 2587 , 2588 , 2589 , 2590 , 2591 , 2593 , 2594 , 2595 , 2596 , 2597 , 2599 , 2600 , 2601 , 2602 , 2603 , 2605 , 2606 , 2607 , 2608 , 2609 , 2611 , 2612 , 2613 , 2614 , 2615 , 2617 , 2618 , 2619 , 2620 , 2621 , 2622 , 2624 , 2625 , 2626 , 2627 , 2628 , 2630 , 2631 , 2632 , 2633 , 2634 , 2636 , 2637 , 2638 , 2639 , 2640 , 2642 , 2643 , 2644 , 2645 , 2646 , 2648 , 2649 , 2650 , 2651 , 2652 , 2654 , 2655 , 2656 , 2657 , 2658 , 2660 , 2661 , 2662 , 2663 , 2664 , 2666 , 2667 , 2668 , 2669 , 2670 , 2672 , 2673 , 2674 , 2675 , 2676 , 2677 , 2679 , 2680 , 2681 , 2682 , 2683 , 2685 , 2686 , 2687 , 2688 , 2689 , 2691 , 2692 , 2693 , 2694 , 2695 , 2697 , 2698 , 2699 , 2700 , 2702 , 2703 , 2704 , 2705 , 2706 , 2708 , 2709 , 2710 , 2711 , 2712 , 2714 , 2715 , 2716 , 2717 , 2718 , 2720 , 2721 , 2722 , 2723 , 2724 , 2726 , 2727 , 2728 , 2729 , 2730 , 2732 , 2733 , 2734 , 2735 , 2736 , 2738 , 2739 , 2740 , 2741 , 2742 , 2744 , 2745 , 2746 , 2747 , 2748 , 2750 , 2751 , 2752 , 2753 , 2755 , 2756 , 2757 , 2758 , 2759 , 2761 , 2762 , 2763 , 2764 , 2765 , 2767 , 2768 , 2769 , 2770 , 2771 , 2773 , 2774 , 2775 , 2776 , 2777 , 2779 , 2780 , 2781 , 2782 , 2784 , 2785 , 2786 , 2787 , 2788 , 2790 , 2791 , 2792 , 2793 , 2794 , 2796 , 2797 , 2798 , 2799 , 2800 , 2802 , 2803 , 2804 , 2805 , 2807 , 2808 , 2809 , 2810 , 2811 , 2813 , 2814 , 2815 , 2816 , 2817 , 2819 , 2820 , 2821 , 2822 , 2824 , 2825 , 2826 , 2827 , 2828 , 2830 , 2831 , 2832 , 2833 , 2834 , 2836 , 2837 , 2838 , 2839 , 2841 , 2842 , 2843 , 2844 , 2845 , 2847 , 2848 , 2849 , 2850 , 2851 , 2853 , 2854 , 2855 , 2856 , 2858 , 2859 , 2860 , 2861 , 2862 , 2864 , 2865 , 2866 , 2867 , 2869 , 2870 , 2871 , 2872 , 2873 , 2875 , 2876 , 2877 , 2878 , 2879 , 2881 , 2882 , 2883 , 2884 , 2886 , 2887 , 2888 , 2889 , 2890 , 2892 , 2893 , 2894 , 2895 , 2897 , 2898 , 2899 , 2900 , 2901 , 2903 , 2904 , 2905 , 2906 , 2908 , 2909 , 2910 , 2911 , 2912 , 2914 , 2915 , 2916 , 2917 , 2919 , 2920 , 2921 , 2922 , 2923 , 2925 , 2926 , 2927 , 2928 , 2930 , 2931 , 2932 , 2933 , 2934 , 2936 , 2937 , 2938 , 2939 , 2941 , 2942 , 2943 , 2944 , 2945 , 2947 , 2948 , 2949 , 2950 , 2952 , 2953 , 2954 , 2955 , 2957 , 2958 , 2959 , 2960 , 2961 , 2963 , 2964 , 2965 , 2966 , 2968 , 2969 , 2970 , 2971 , 2972 , 2974 , 2975 , 2976 , 2977 , 2979 , 2980 , 2981 , 2982 , 2984 , 2985 , 2986 , 2987 , 2988 , 2990 , 2991 , 2992 , 2993 , 2995 , 2996 , 2997 , 2998 , 3000 ,
43 3001 , 3002 , 3003 , 3004 , 3006 , 3007 , 3008 , 3009 , 3011 , 3012 , 3013 , 3014 , 3016 , 3017 , 3018 , 3019 , 3020 , 3022 , 3023 , 3024 , 3025 , 3027 , 3028 , 3029 , 3030 , 3032 , 3033 , 3034 , 3035 , 3036 , 3038 , 3039 , 3040 , 3041 , 3043 , 3044 , 3045 , 3046 , 3048 , 3049 , 3050 , 3051 , 3053 , 3054 , 3055 , 3056 , 3057 , 3059 , 3060 , 3061 , 3062 , 3064 , 3065 , 3066 , 3067 , 3069 , 3070 , 3071 , 3072 , 3074 , 3075 , 3076 , 3077 , 3078 , 3080 , 3081 , 3082 , 3083 , 3085 , 3086 , 3087 , 3088 , 3090 , 3091 , 3092 , 3093 , 3095 , 3096 , 3097 , 3098 , 3100 , 3101 , 3102 , 3103 , 3104 , 3106 , 3107 , 3108 , 3109 , 3111 , 3112 , 3113 , 3114 , 3116 , 3117 , 3118 , 3119 , 3121 , 3122 , 3123 , 3124 , 3126 , 3127 , 3128 , 3129 , 3131 , 3132 , 3133 , 3134 , 3135 , 3137 , 3138 , 3139 , 3140 , 3142 , 3143 , 3144 , 3145 , 3147 , 3148 , 3149 , 3150 , 3152 , 3153 , 3154 , 3155 , 3157 , 3158 , 3159 , 3160 , 3162 , 3163 , 3164 , 3165 , 3167 , 3168 , 3169 , 3170 , 3172 , 3173 , 3174 , 3175 , 3177 , 3178 , 3179 , 3180 , 3181 , 3183 , 3184 , 3185 , 3186 , 3188 , 3189 , 3190 , 3191 , 3193 , 3194 , 3195 , 3196 , 3198 , 3199 , 3200 , 3201 , 3203 , 3204 , 3205 , 3206 , 3208 , 3209 , 3210 , 3211 , 3213 , 3214 , 3215 , 3216 , 3218 , 3219 , 3220 , 3221 , 3223 , 3224 , 3225 , 3226 , 3228 , 3229 , 3230 , 3231 , 3233 , 3234 , 3235 , 3236 , 3238 , 3239 , 3240 , 3241 , 3243 , 3244 , 3245 , 3246 , 3248 , 3249 , 3250 , 3251 , 3253 , 3254 , 3255 , 3256 , 3258 , 3259 , 3260 , 3261 , 3263 , 3264 , 3265 , 3266 , 3268 , 3269 , 3270 , 3271 , 3273 , 3274 , 3275 , 3276 , 3278 , 3279 , 3280 , 3281 , 3283 , 3284 , 3285 , 3286 , 3288 , 3289 , 3290 , 3291 , 3293 , 3294 , 3295 , 3296 , 3298 , 3299 , 3300 , 3301 , 3303 , 3304 , 3305 , 3306 , 3308 , 3309 , 3310 , 3312 , 3313 , 3314 , 3315 , 3317 , 3318 , 3319 , 3320 , 3322 , 3323 , 3324 , 3325 , 3327 , 3328 , 3329 , 3330 , 3332 , 3333 , 3334 , 3335 , 3337 , 3338 , 3339 , 3340 , 3342 , 3343 , 3344 , 3345 , 3347 , 3348 , 3349 , 3350 , 3352 , 3353 , 3354 , 3355 , 3357 , 3358 , 3359 , 3361 , 3362 , 3363 , 3364 , 3366 , 3367 , 3368 , 3369 , 3371 , 3372 , 3373 , 3374 , 3376 , 3377 , 3378 , 3379 , 3381 , 3382 , 3383 , 3384 , 3386 , 3387 , 3388 , 3389 , 3391 , 3392 , 3393 , 3395 , 3396 , 3397 , 3398 , 3400 , 3401 , 3402 , 3403 , 3405 , 3406 , 3407 , 3408 , 3410 , 3411 , 3412 , 3413 , 3415 , 3416 , 3417 , 3419 , 3420 , 3421 , 3422 , 3424 , 3425 , 3426 , 3427 , 3429 , 3430 , 3431 , 3432 , 3434 , 3435 , 3436 , 3437 , 3439 , 3440 , 3441 , 3443 , 3444 , 3445 , 3446 , 3448 , 3449 , 3450 , 3451 , 3453 , 3454 , 3455 , 3456 , 3458 , 3459 , 3460 , 3461 , 3463 , 3464 , 3465 , 3467 , 3468 , 3469 , 3470 , 3472 , 3473 , 3474 , 3475 , 3477 , 3478 , 3479 , 3480 , 3482 , 3483 , 3484 , 3486 , 3487 , 3488 , 3489 , 3491 , 3492 , 3493 , 3494 , 3496 , 3497 , 3498 , 3499 ,
44 3501 , 3502 , 3503 , 3505 , 3506 , 3507 , 3508 , 3510 , 3511 , 3512 , 3513 , 3515 , 3516 , 3517 , 3518 , 3520 , 3521 , 3522 , 3524 , 3525 , 3526 , 3527 , 3529 , 3530 , 3531 , 3532 , 3534 , 3535 , 3536 , 3538 , 3539 , 3540 , 3541 , 3543 , 3544 , 3545 , 3546 , 3548 , 3549 , 3550 , 3551 , 3553 , 3554 , 3555 , 3557 , 3558 , 3559 , 3560 , 3562 , 3563 , 3564 , 3565 , 3567 , 3568 , 3569 , 3571 , 3572 , 3573 , 3574 , 3576 , 3577 , 3578 , 3579 , 3581 , 3582 , 3583 , 3585 , 3586 , 3587 , 3588 , 3590 , 3591 , 3592 , 3593 , 3595 , 3596 , 3597 , 3599 , 3600 , 3601 , 3602 , 3604 , 3605 , 3606 , 3607 , 3609 , 3610 , 3611 , 3613 , 3614 , 3615 , 3616 , 3618 , 3619 , 3620 , 3621 , 3623 , 3624 , 3625 , 3627 , 3628 , 3629 , 3630 , 3632 , 3633 , 3634 , 3636 , 3637 , 3638 , 3639 , 3641 , 3642 , 3643 , 3644 , 3646 , 3647 , 3648 , 3650 , 3651 , 3652 , 3653 , 3655 , 3656 , 3657 , 3658 , 3660 , 3661 , 3662 , 3664 , 3665 , 3666 , 3667 , 3669 , 3670 , 3671 , 3673 , 3674 , 3675 , 3676 , 3678 , 3679 , 3680 , 3681 , 3683 , 3684 , 3685 , 3687 , 3688 , 3689 , 3690 , 3692 , 3693 , 3694 , 3696 , 3697 , 3698 , 3699 , 3701 , 3702 , 3703 , 3704 , 3706 , 3707 , 3708 , 3710 , 3711 , 3712 , 3713 , 3715 , 3716 , 3717 , 3719 , 3720 , 3721 , 3722 , 3724 , 3725 , 3726 , 3728 , 3729 , 3730 , 3731 , 3733 , 3734 , 3735 , 3736 , 3738 , 3739 , 3740 , 3742 , 3743 , 3744 , 3745 , 3747 , 3748 , 3749 , 3751 , 3752 , 3753 , 3754 , 3756 , 3757 , 3758 , 3760 , 3761 , 3762 , 3763 , 3765 , 3766 , 3767 , 3769 , 3770 , 3771 , 3772 , 3774 , 3775 , 3776 , 3777 , 3779 , 3780 , 3781 , 3783 , 3784 , 3785 , 3786 , 3788 , 3789 , 3790 , 3792 , 3793 , 3794 , 3795 , 3797 , 3798 , 3799 , 3801 , 3802 , 3803 , 3804 , 3806 , 3807 , 3808 , 3810 , 3811 , 3812 , 3813 , 3815 , 3816 , 3817 , 3819 , 3820 , 3821 , 3822 , 3824 , 3825 , 3826 , 3828 , 3829 , 3830 , 3831 , 3833 , 3834 , 3835 , 3837 , 3838 , 3839 , 3840 , 3842 , 3843 , 3844 , 3846 , 3847 , 3848 , 3849 , 3851 , 3852 , 3853 , 3855 , 3856 , 3857 , 3858 , 3860 , 3861 , 3862 , 3864 , 3865 , 3866 , 3867 , 3869 , 3870 , 3871 , 3873 , 3874 , 3875 , 3876 , 3878 , 3879 , 3880 , 3882 , 3883 , 3884 , 3885 , 3887 , 3888 , 3889 , 3891 , 3892 , 3893 , 3894 , 3896 , 3897 , 3898 , 3900 , 3901 , 3902 , 3903 , 3905 , 3906 , 3907 , 3909 , 3910 , 3911 , 3912 , 3914 , 3915 , 3916 , 3918 , 3919 , 3920 , 3922 , 3923 , 3924 , 3925 , 3927 , 3928 , 3929 , 3931 , 3932 , 3933 , 3934 , 3936 , 3937 , 3938 , 3940 , 3941 , 3942 , 3943 , 3945 , 3946 , 3947 , 3949 , 3950 , 3951 , 3952 , 3954 , 3955 , 3956 , 3958 , 3959 , 3960 , 3961 , 3963 , 3964 , 3965 , 3967 , 3968 , 3969 , 3971 , 3972 , 3973 , 3974 , 3976 , 3977 , 3978 , 3980 , 3981 , 3982 , 3983 , 3985 , 3986 , 3987 , 3989 , 3990 , 3991 , 3992 , 3994 , 3995 , 3996 , 3998 , 3999 , 4000 ,
45 4002 , 4003 , 4004 , 4005 , 4007 , 4008 , 4009 , 4011 , 4012 , 4013 , 4014 , 4016 , 4017 , 4018 , 4020 , 4021 , 4022 , 4024 , 4025 , 4026 , 4027 , 4029 , 4030 , 4031 , 4033 , 4034 , 4035 , 4036 , 4038 , 4039 , 4040 , 4042 , 4043 , 4044 , 4046 , 4047 , 4048 , 4049 , 4051 , 4052 , 4053 , 4055 , 4056 , 4057 , 4058 , 4060 , 4061 , 4062 , 4064 , 4065 , 4066 , 4068 , 4069 , 4070 , 4071 , 4073 , 4074 , 4075 , 4077 , 4078 , 4079 , 4080 , 4082 , 4083 , 4084 , 4086 , 4087 , 4088 , 4090 , 4091 , 4092 , 4093 , 4095 );
46
47 type zustaende is ( Z00 , Z01 );
48 signal z : zustaende : = Z00 ;
49 signal index : integer range 0 to 4095 ;
50 signal preindex : integer range 0 to 4095 ;
51 signal newindex : integer range 0 to 4095 : = 0 ;
52 signal phase : unsigned ( 31 downto 0 ) : = ( others => '0' );
53 signal saegezahn_inv_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
54 signal saegezahn_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
55 signal rechteck_u : unsigned ( 11 downto 0 ) : = ( others => '0' );
56
57 begin
58 process begin
59 wait until rising_edge ( clk );
60 if control = x"00000000" then
61 if run = x"00000001" then
62 z <= Z00 ;
63 if newindex = 0 then
64 phase <= ( phase + microsteps );
65 elsif newindex /= 0 then
66 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
67 end if ;
68 elsif run = x"00000002" then
69 z <= Z01 ;
70 if newindex = 0 then
71 phase <= ( phase - microsteps );
72 elsif newindex /= 0 then
73 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
74 end if ;
75 end if ;
76 elsif control = x"00000001" then
77 if y < x"00000000" then
78 z <= Z00 ;
79 if newindex = 0 then
80 phase <= ( phase + microsteps );
81 elsif newindex /= 0 then
82 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
83 end if ;
84 elsif y > x"00000000" then
85 z <= Z01 ;
86 if newindex = 0 then
87 phase <= ( phase - microsteps );
88 elsif newindex /= 0 then
89 phase <= to_unsigned ( newindex , 12 ) & x"00000" ;
90 end if ;
91 end if ;
92 end if ;
93 end process ;
94
95
96 index <= to_integer ( phase ( 31 downto 20 ));
97
98 process
99 variable dir : std_logic : = '0' ;
100 begin
101 wait until rising_edge ( clk );
102 case z is
103 when Z00 =>
104 if ( dir = '0' ) then
105 saegezahn_inv_u <= to_unsigned ( saw_load_array_c ( index ), saegezahn_inv_u 'length );
106 preindex <= saw_load_array_c ( index );
107 newindex <= 0 ;
108 dir : = '0' ;
109 elsif ( dir = '1' ) then
110 for i in 0 to 4095 loop
111 if ((( saw_load_array_c ( i )) = preindex ) or (( saw_load_array_c ( i )) = preindex + 1 ) or (( saw_load_array_c ( i )) = preindex -1 )) then
112 newindex <= i ;
113 exit ;
114 end if ;
115 end loop ;
116 dir : = '0' ;
117 end if ;
118 when Z01 =>
119 if ( dir = '1' ) then
120 saegezahn_inv_u <= to_unsigned ( saw_unload_array_c ( index ), saegezahn_inv_u 'length );
121 preindex <= saw_unload_array_c ( index );
122 newindex <= 0 ;
123 dir : = '1' ;
124 elsif ( dir = '0' ) then
125 for i in 0 to 4095 loop
126 if ((( saw_unload_array_c ( i )) = preindex ) or (( saw_unload_array_c ( i )) = preindex + 1 ) or (( saw_unload_array_c ( i )) = preindex -1 )) then
127 newindex <= i ;
128 exit ;
129 end if ;
130 end loop ;
131 dir : = '1' ;
132 end if ;
133 end case ;
134 end process ;
135
136 saegezahn_u <= phase ( 31 downto 20 );
137
138 process begin
139 wait until rising_edge ( clk );
140 if ( saegezahn_u >= x"555" and saegezahn_u <= x"DDD" ) then
141 rechteck_u <= x"FFF" ;
142 else
143 rechteck_u <= x"000" ;
144 end if ;
145 end process ;
146
147
148 -- convert output values
149 saegezahn_inv <= "0011" & std_logic_vector ( saegezahn_inv_u );
150 saegezahn <= "0011" & std_logic_vector ( saegezahn_u );
151 rechteck <= "0011" & std_logic_vector ( rechteck_u );
152
153 end bhv ;
von
Michael W. (Gast)
19.08.2014 19:35
Was bewirkt denn die "saw unload" Tabelle?
von
Jan Lang (Gast)
19.08.2014 20:14
Die wird durchlaufen, wenn die Richtung wechselt, also bei linkslauf und
bei rechtslauf die saw_load tabelle
von
Lothar M.
(Firma: Titel)
(lkmiller )
(Moderator )
19.08.2014 21:16
Lang schrieb:
> Unschön ist der kurze Einbruch beim Wechsel (20ns), ich habs es aber
> nicht ohne hinbekommen...
Hört sich nach einem Latency-Effekt an. Da ist irgendwas einen Takt
früher umgeschaltet als was anderes. Und beides zusammen ergibt den
Ausgang. Mit dem Simulator sollte man das herausfinden können...
von
Jan Lang (Gast)
19.08.2014 21:51
Ok, ich untersuch das mal. Aber kriegt ihr es kompiliert, oder könnte
das daher kommen?
von
Lang (Gast)
20.08.2014 11:13
Also ich krieg es nicht hin, dass mein Ausgang nicht diesen kurzen
Sprung macht, denn dafür müsste ich theoretisch eine Variable haben, die
ich aus zwei Prozessen toggeln könnte, aber sowas geht ja nicht.
Also eigentlich müsste, solange "newindex" ungleich 0 ist, der Ausgang
den letzten Wert halten und erst wenn phase den neuen Wert von
"newindex" wirklich zugewiesen bekommen hat, darf der Ausgang mit dem
neuen index Wert weiterfahren...
Wie gesagt, im Prinzip geht es ja, ich krieg es nur nicht kompiliert,
obwohl es sich in Modelsim kompilieren lässt.
von
Lang (Gast)
20.08.2014 15:00
Ok, liegt wohl an den for loops...
von
Michael W. (Gast)
28.08.2014 11:05
Ich verstehe nach wie vor nicht, wozu nur bei einem "dir" eine Tabelle
zugegriffen wird. Du willst da irgend was dynamisch laden, denke ich.
In Modelsim geht sowas, klar ...
von
Daniel (Gast)
29.08.2014 09:20
Lang schrieb:
> Also ich krieg es nicht hin, dass mein Ausgang nicht diesen kurzen
> Sprung macht, denn dafür müsste ich theoretisch eine Variable haben, die
> ich aus zwei Prozessen toggeln könnte, aber sowas geht ja nicht.
In der Realität wird dein DA-Wandler diesen Sprung wegintegrieren, ist
aber trotzdem nicht schön.
Um die Simulation stimmig zu machen (gleiche Latenz), muß die Zuweisung
zu saegezahn_u mit in den Prozess, wo saegezahn_inv_u zugewiesen wird.
Wenn dann noch rechteck_u ebenfalls aus phase bestimmt wird, haben
erstmal alle Ausgänge die gleiche Latenz.
Ich geb den Zuständen immer Namen. Z00 und Z01 ist nicht wirklich
aussagekräftig.
Vielleicht kannst Du nochmal die Idee hinter z und dir erläutern?
Irgendiwe steige ich da nicht durch...
Daniel
von
Michael W. (Gast)
20.09.2014 13:51
Ich glaube, der TO blickt inzwischen selber nicht mehr durch mit seinem
Code...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.