package Atomic1_Pkg is type Four_Bits is mod 2 ** 4; type R16 is record F1 : Four_Bits; F2 : Four_Bits; F3 : Four_Bits; F4 : Four_Bits; end record; for R16 use record F1 at 0 range 0 .. 3; F2 at 0 range 4 .. 7; F3 at 0 range 8 .. 11; F4 at 0 range 12 .. 15; end record; type R32 is record F1 : Four_Bits; F2 : Four_Bits; F3 : Four_Bits; F4 : Four_Bits; F5 : Four_Bits; F6 : Four_Bits; F7 : Four_Bits; F8 : Four_Bits; end record; for R32 use record F1 at 0 range 0 .. 3; F2 at 0 range 4 .. 7; F3 at 0 range 8 .. 11; F4 at 0 range 12 .. 15; F5 at 0 range 16 .. 19; F6 at 0 range 20 .. 23; F7 at 0 range 24 .. 27; F8 at 0 range 28 .. 31; end record; C_16 : constant R16 := (2, 3, 5, 7); C_32 : constant R32 := (1, 1, 2, 3, 5, 8, 13, 5); V_16 : R16; pragma Atomic (V_16); V_32 : R32; pragma Atomic (V_32); end Atomic1_Pkg;