1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 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 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286
|
-- Instrument tuner
-- Frequency of operation is 819200 Hz, obtained by dividing a
-- 3276000 Hz quartz by four
-- Author: Frdric Ptrot
entity tuner is
port (
ck : in bit;
d : in bit;
o : out bit_vector(0 to 22);
vdd : in bit;
vss : in bit
);
end tuner;
architecture dataflow of tuner is
signal start : bit;
-- input handling
signal d_reg : reg_bit register; -- previous value of input
-- incrementer related things
signal incr_out : bit_vector (14 downto 0); -- incrementer's result
signal incr_cry : bit_vector (15 downto 0); -- incrementer's carry
signal incr_reg : reg_vector (14 downto 0) register; -- incrementer register
-- normalizer related things
-- reg must be at most 381 and cannot be less than 190 (hopefully)
constant c382 : bit_vector(14 downto 0) := "000_0001_0111_1110";
-- we must substract 190 from the shifted result
constant c191 : bit_vector (8 downto 0) := "0_1011_1111";
signal test_out : bit_vector (14 downto 0);
signal test_cry : bit_vector (15 downto 0);
signal norm_out : bit_vector (14 downto 0);
signal norm_reg : reg_vector (14 downto 0) register;
signal subs_out : bit_vector (8 downto 0);
signal subs_cry : bit_vector (9 downto 0);
signal deco_reg : reg_vector (7 downto 0) register;
begin
input : block (ck = '1' and not ck'STABLE)
begin
d_reg <= guarded d;
end block;
start <= (not d_reg) and d;
-- compute the result out of the incrementer
-- maximum value is 30582 for an very flat A (26.8 Hz)
-- incr_out <= incr_reg + 1
incr_out <= incr_reg xor incr_cry(14 downto 0);
incr_cry (0) <= '1';
incr_cry (15 downto 1) <= (incr_reg and incr_cry (14 downto 0));
incr : block (ck = '1' and not ck'stable)
begin
incr_reg <= guarded incr_out when start = '0' else B"000000000000000";
end block;
-- normalize the incrementer output: shift until it reaches the
-- [17D, BE] range values, and then subtract BE to fit between 0 and
-- whatever
-- test_out <= norm_reg - c382 = norm_reg + not c382 + 1
test_out <= norm_reg xor not(c382) xor test_cry(14 downto 0);
test_cry (0) <= '1';
test_cry (15 downto 1) <= (norm_reg and test_cry (14 downto 0)) or
(not(c382) and test_cry (14 downto 0)) or
(norm_reg and not(c382) ) ;
-- loop until norm reg is less than 17E, keep its value otherwise
-- norm_out <= norm_reg >> 2 if (norm_reg - c382) > 0
-- norm_reg otherwise
norm_out <= '0' & norm_reg(14 downto 1) when test_out(14) = '0'
else norm_reg;
-- load norm_reg with incr_out when start is true
norm : block (ck = '1' and not ck'stable)
begin
norm_reg <= guarded norm_out when start = '0' else incr_out;
end block;
subs_out <= norm_reg(8 downto 0) xor not(c191) xor subs_cry(8 downto 0);
subs_cry (0) <= '1';
subs_cry (9 downto 1) <= (norm_reg(8 downto 0) and subs_cry (8 downto 0)) or
(not(c191) and subs_cry (8 downto 0)) or
(norm_reg(8 downto 0) and not(c191));
deco : block (ck = '1' and not ck'stable)
begin
deco_reg <= guarded subs_out(7 downto 0) when test_out(14) = '1' else deco_reg;
end block;
with deco_reg select
o <= B"1000_0_0000_0111101_0011111" when B"10111110", -- 381 rb 380 (freq: 2161.258631)
B"1000_0_0000_0111101_0011111" when B"10111101", -- 380 rb 380 (freq: 2161.258631)
B"0100_0_0000_0111101_0011111" when B"10111100", -- 379 rb 377 (freq: 2175.174260)
B"0100_0_0000_0111101_0011111" when B"10111011", -- 378 rb 377 (freq: 2175.174260)
B"0100_0_0000_0111101_0011111" when B"10111010", -- 377 rb 377 (freq: 2175.174260)
B"0010_0_0000_0111101_0011111" when B"10111001", -- 376 rb 375 (freq: 2189.179488)
B"0010_0_0000_0111101_0011111" when B"10111000", -- 375 rb 375 (freq: 2189.179488)
B"0001_0_0000_0111101_0011111" when B"10110111", -- 374 rb 373 (freq: 2203.274890)
B"0001_0_0000_0111101_0011111" when B"10110110", -- 373 rb 373 (freq: 2203.274890)
B"0001_0_0000_0111101_0011111" when B"10110101", -- 372 rb 370 (freq: 2217.461048)
B"0001_0_0000_0111101_0011111" when B"10110100", -- 371 rb 370 (freq: 2217.461048)
B"0000_1_0000_0111101_0011111" when B"10110011", -- 370 rb 370 (freq: 2217.461048)
B"0000_0_1000_0111101_0011111" when B"10110010", -- 369 rb 368 (freq: 2231.738546)
B"0000_0_1000_0111101_0011111" when B"10110001", -- 368 rb 368 (freq: 2231.738546)
B"0000_0_0100_0111101_0011111" when B"10110000", -- 367 rb 365 (freq: 2246.107972)
B"0000_0_0100_0111101_0011111" when B"10101111", -- 366 rb 365 (freq: 2246.107972)
B"0000_0_0100_0111101_0011111" when B"10101110", -- 365 rb 365 (freq: 2246.107972)
B"0000_0_0010_0111101_0011111" when B"10101101", -- 364 rb 363 (freq: 2260.569918)
B"0000_0_0010_0111101_0011111" when B"10101100", -- 363 rb 363 (freq: 2260.569918)
B"0000_0_0001_0111101_0011111" when B"10101011", -- 362 rb 361 (freq: 2275.124980)
B"0000_0_0001_0111101_0011111" when B"10101010", -- 361 rb 361 (freq: 2275.124980)
B"1000_0_0000_0111101_0000000" when B"10101001", -- 360 r 358 (freq: 2289.773757)
B"1000_0_0000_0111101_0000000" when B"10101000", -- 359 r 358 (freq: 2289.773757)
B"1000_0_0000_0111101_0000000" when B"10100111", -- 358 r 358 (freq: 2289.773757)
B"0100_0_0000_0111101_0000000" when B"10100110", -- 357 r 356 (freq: 2304.516853)
B"0100_0_0000_0111101_0000000" when B"10100101", -- 356 r 356 (freq: 2304.516853)
B"0010_0_0000_0111101_0000000" when B"10100100", -- 355 r 354 (freq: 2319.354874)
B"0010_0_0000_0111101_0000000" when B"10100011", -- 354 r 354 (freq: 2319.354874)
B"0001_0_0000_0111101_0000000" when B"10100010", -- 353 r 352 (freq: 2334.288433)
B"0001_0_0000_0111101_0000000" when B"10100001", -- 352 r 352 (freq: 2334.288433)
B"0001_0_0000_0111101_0000000" when B"10100000", -- 351 r 349 (freq: 2349.318144)
B"0001_0_0000_0111101_0000000" when B"10011111", -- 350 r 349 (freq: 2349.318144)
B"0000_1_0000_0111101_0000000" when B"10011110", -- 349 r 349 (freq: 2349.318144)
B"0000_0_1000_0111101_0000000" when B"10011101", -- 348 r 347 (freq: 2364.444626)
B"0000_0_1000_0111101_0000000" when B"10011100", -- 347 r 347 (freq: 2364.444626)
B"0000_0_0100_0111101_0000000" when B"10011011", -- 346 r 345 (freq: 2379.668502)
B"0000_0_0100_0111101_0000000" when B"10011010", -- 345 r 345 (freq: 2379.668502)
B"0000_0_0010_0111101_0000000" when B"10011001", -- 344 r 343 (freq: 2394.990401)
B"0000_0_0010_0111101_0000000" when B"10011000", -- 343 r 343 (freq: 2394.990401)
B"0000_0_0001_0111101_0000000" when B"10010111", -- 342 r 341 (freq: 2410.410951)
B"0000_0_0001_0111101_0000000" when B"10010110", -- 341 r 341 (freq: 2410.410951)
B"1000_0_0000_1001111_0011111" when B"10010101", -- 340 mib 338 (freq: 2425.930790)
B"1000_0_0000_1001111_0011111" when B"10010100", -- 339 mib 338 (freq: 2425.930790)
B"1000_0_0000_1001111_0011111" when B"10010011", -- 338 mib 338 (freq: 2425.930790)
B"0100_0_0000_1001111_0011111" when B"10010010", -- 337 mib 336 (freq: 2441.550556)
B"0100_0_0000_1001111_0011111" when B"10010001", -- 336 mib 336 (freq: 2441.550556)
B"0010_0_0000_1001111_0011111" when B"10010000", -- 335 mib 334 (freq: 2457.270892)
B"0010_0_0000_1001111_0011111" when B"10001111", -- 334 mib 334 (freq: 2457.270892)
B"0001_0_0000_1001111_0011111" when B"10001110", -- 333 mib 332 (freq: 2473.092446)
B"0001_0_0000_1001111_0011111" when B"10001101", -- 332 mib 332 (freq: 2473.092446)
B"0001_0_0000_1001111_0011111" when B"10001100", -- 331 mib 330 (freq: 2489.015870)
B"0000_1_0000_1001111_0011111" when B"10001011", -- 330 mib 330 (freq: 2489.015870)
B"0000_0_1000_1001111_0011111" when B"10001010", -- 329 mib 328 (freq: 2505.041820)
B"0000_0_1000_1001111_0011111" when B"10001001", -- 328 mib 328 (freq: 2505.041820)
B"0000_0_0100_1001111_0011111" when B"10001000", -- 327 mib 326 (freq: 2521.170955)
B"0000_0_0100_1001111_0011111" when B"10000111", -- 326 mib 326 (freq: 2521.170955)
B"0000_0_0010_1001111_0011111" when B"10000110", -- 325 mib 324 (freq: 2537.403941)
B"0000_0_0010_1001111_0011111" when B"10000101", -- 324 mib 324 (freq: 2537.403941)
B"0000_0_0001_1001111_0011111" when B"10000100", -- 323 mib 321 (freq: 2553.741445)
B"0000_0_0001_1001111_0011111" when B"10000011", -- 322 mib 321 (freq: 2553.741445)
B"0000_0_0001_1001111_0011111" when B"10000010", -- 321 mib 321 (freq: 2553.741445)
B"1000_0_0000_1001111_0000000" when B"10000001", -- 320 mi 319 (freq: 2570.184141)
B"1000_0_0000_1001111_0000000" when B"10000000", -- 319 mi 319 (freq: 2570.184141)
B"0100_0_0000_1001111_0000000" when B"01111111", -- 318 mi 317 (freq: 2586.732707)
B"0100_0_0000_1001111_0000000" when B"01111110", -- 317 mi 317 (freq: 2586.732707)
B"0010_0_0000_1001111_0000000" when B"01111101", -- 316 mi 315 (freq: 2603.387823)
B"0010_0_0000_1001111_0000000" when B"01111100", -- 315 mi 315 (freq: 2603.387823)
B"0001_0_0000_1001111_0000000" when B"01111011", -- 314 mi 313 (freq: 2620.150175)
B"0001_0_0000_1001111_0000000" when B"01111010", -- 313 mi 313 (freq: 2620.150175)
B"0001_0_0000_1001111_0000000" when B"01111001", -- 312 mi 311 (freq: 2637.020456)
B"0000_1_0000_1001111_0000000" when B"01111000", -- 311 mi 311 (freq: 2637.020456)
B"0000_0_1000_1001111_0000000" when B"01110111", -- 310 mi 309 (freq: 2653.999358)
B"0000_0_1000_1001111_0000000" when B"01110110", -- 309 mi 309 (freq: 2653.999358)
B"0000_0_0100_1001111_0000000" when B"01110101", -- 308 mi 307 (freq: 2671.087581)
B"0000_0_0100_1001111_0000000" when B"01110100", -- 307 mi 307 (freq: 2671.087581)
B"0000_0_0010_1001111_0000000" when B"01110011", -- 306 mi 305 (freq: 2688.285831)
B"0000_0_0010_1001111_0000000" when B"01110010", -- 305 mi 305 (freq: 2688.285831)
B"0000_0_0001_1001111_0000000" when B"01110001", -- 304 mi 303 (freq: 2705.594814)
B"0000_0_0001_1001111_0000000" when B"01110000", -- 303 mi 303 (freq: 2705.594814)
B"1000_0_0000_1000111_0000000" when B"01101111", -- 302 fa 302 (freq: 2723.015243)
B"0100_0_0000_1000111_0000000" when B"01101110", -- 301 fa 300 (freq: 2740.547838)
B"0100_0_0000_1000111_0000000" when B"01101101", -- 300 fa 300 (freq: 2740.547838)
B"0010_0_0000_1000111_0000000" when B"01101100", -- 299 fa 298 (freq: 2758.193318)
B"0010_0_0000_1000111_0000000" when B"01101011", -- 298 fa 298 (freq: 2758.193318)
B"0001_0_0000_1000111_0000000" when B"01101010", -- 297 fa 296 (freq: 2775.952413)
B"0001_0_0000_1000111_0000000" when B"01101001", -- 296 fa 296 (freq: 2775.952413)
B"0001_0_0000_1000111_0000000" when B"01101000", -- 295 fa 294 (freq: 2793.825852)
B"0000_1_0000_1000111_0000000" when B"01100111", -- 294 fa 294 (freq: 2793.825852)
B"0000_0_1000_1000111_0000000" when B"01100110", -- 293 fa 292 (freq: 2811.814372)
B"0000_0_1000_1000111_0000000" when B"01100101", -- 292 fa 292 (freq: 2811.814372)
B"0000_0_0100_1000111_0000000" when B"01100100", -- 291 fa 290 (freq: 2829.918714)
B"0000_0_0100_1000111_0000000" when B"01100011", -- 290 fa 290 (freq: 2829.918714)
B"0000_0_0010_1000111_0000000" when B"01100010", -- 289 fa 288 (freq: 2848.139625)
B"0000_0_0010_1000111_0000000" when B"01100001", -- 288 fa 288 (freq: 2848.139625)
B"0000_0_0001_1000111_0000000" when B"01100000", -- 287 fa 286 (freq: 2866.477853)
B"0000_0_0001_1000111_0000000" when B"01011111", -- 286 fa 286 (freq: 2866.477853)
B"1000_0_0000_1111011_0011111" when B"01011110", -- 285 solb 285 (freq: 2884.934156)
B"0100_0_0000_1111011_0011111" when B"01011101", -- 284 solb 283 (freq: 2903.509292)
B"0100_0_0000_1111011_0011111" when B"01011100", -- 283 solb 283 (freq: 2903.509292)
B"0010_0_0000_1111011_0011111" when B"01011011", -- 282 solb 281 (freq: 2922.204028)
B"0010_0_0000_1111011_0011111" when B"01011010", -- 281 solb 281 (freq: 2922.204028)
B"0001_0_0000_1111011_0011111" when B"01011001", -- 280 solb 279 (freq: 2941.019133)
B"0001_0_0000_1111011_0011111" when B"01011000", -- 279 solb 279 (freq: 2941.019133)
B"0001_0_0000_1111011_0011111" when B"01010111", -- 278 solb 277 (freq: 2959.955382)
B"0000_0_0000_1111011_0011111" when B"01010110", -- 277 solb 277 (freq: 2959.955382)
B"0000_0_1000_1111011_0011111" when B"01010101", -- 276 solb 276 (freq: 2979.013555)
B"0000_0_0100_1111011_0011111" when B"01010100", -- 275 solb 274 (freq: 2998.194438)
B"0000_0_0100_1111011_0011111" when B"01010011", -- 274 solb 274 (freq: 2998.194438)
B"0000_0_0010_1111011_0011111" when B"01010010", -- 273 solb 272 (freq: 3017.498820)
B"0000_0_0010_1111011_0011111" when B"01010001", -- 272 solb 272 (freq: 3017.498820)
B"0000_0_0001_1111011_0011111" when B"01010000", -- 271 solb 270 (freq: 3036.927496)
B"0000_0_0001_1111011_0011111" when B"01001111", -- 270 solb 270 (freq: 3036.927496)
B"1000_0_0000_1111011_0000000" when B"01001110", -- 269 sol 269 (freq: 3056.481268)
B"0100_0_0000_1111011_0000000" when B"01001101", -- 268 sol 267 (freq: 3076.160939)
B"0100_0_0000_1111011_0000000" when B"01001100", -- 267 sol 267 (freq: 3076.160939)
B"0010_0_0000_1111011_0000000" when B"01001011", -- 266 sol 265 (freq: 3095.967322)
B"0010_0_0000_1111011_0000000" when B"01001010", -- 265 sol 265 (freq: 3095.967322)
B"0001_0_0000_1111011_0000000" when B"01001001", -- 264 sol 264 (freq: 3115.901231)
B"0001_0_0000_1111011_0000000" when B"01001000", -- 263 sol 262 (freq: 3135.963488)
B"0000_1_0000_1111011_0000000" when B"01000111", -- 262 sol 262 (freq: 3135.963488)
B"0000_0_1000_1111011_0000000" when B"01000110", -- 261 sol 260 (freq: 3156.154919)
B"0000_0_1000_1111011_0000000" when B"01000101", -- 260 sol 260 (freq: 3156.154919)
B"0000_0_0100_1111011_0000000" when B"01000100", -- 259 sol 259 (freq: 3176.476357)
B"0000_0_0010_1111011_0000000" when B"01000011", -- 258 sol 257 (freq: 3196.928637)
B"0000_0_0010_1111011_0000000" when B"01000010", -- 257 sol 257 (freq: 3196.928637)
B"0000_0_0001_1111011_0000000" when B"01000001", -- 256 sol 255 (freq: 3217.512603)
B"0000_0_0001_1111011_0000000" when B"01000000", -- 255 sol 255 (freq: 3217.512603)
B"1000_0_0000_1110111_0011111" when B"00111111", -- 254 lab 254 (freq: 3238.229102)
B"0100_0_0000_1110111_0011111" when B"00111110", -- 253 lab 252 (freq: 3259.078988)
B"0100_0_0000_1110111_0011111" when B"00111101", -- 252 lab 252 (freq: 3259.078988)
B"0010_0_0000_1110111_0011111" when B"00111100", -- 251 lab 250 (freq: 3280.063119)
B"0010_0_0000_1110111_0011111" when B"00111011", -- 250 lab 250 (freq: 3280.063119)
B"0001_0_0000_1110111_0011111" when B"00111010", -- 249 lab 249 (freq: 3301.182360)
B"0001_0_0000_1110111_0011111" when B"00111001", -- 248 lab 247 (freq: 3322.437581)
B"0000_1_0000_1110111_0011111" when B"00111000", -- 247 lab 247 (freq: 3322.437581)
B"0000_0_1000_1110111_0011111" when B"00110111", -- 246 lab 246 (freq: 3343.829657)
B"0000_0_0100_1110111_0011111" when B"00110110", -- 245 lab 244 (freq: 3365.359470)
B"0000_0_0100_1110111_0011111" when B"00110101", -- 244 lab 244 (freq: 3365.359470)
B"0000_0_0010_1110111_0011111" when B"00110100", -- 243 lab 243 (freq: 3387.027906)
B"0000_0_0001_1110111_0011111" when B"00110011", -- 242 lab 241 (freq: 3408.835858)
B"0000_0_0001_1110111_0011111" when B"00110010", -- 241 lab 241 (freq: 3408.835858)
B"1000_0_0000_1110111_0000000" when B"00110001", -- 240 la 239 (freq: 3430.784224)
B"1000_0_0000_1110111_0000000" when B"00110000", -- 239 la 239 (freq: 3430.784224)
B"0100_0_0000_1110111_0000000" when B"00101111", -- 238 la 238 (freq: 3452.873909)
B"0010_0_0000_1110111_0000000" when B"00101110", -- 237 la 236 (freq: 3475.105822)
B"0010_0_0000_1110111_0000000" when B"00101101", -- 236 la 236 (freq: 3475.105822)
B"0001_0_0000_1110111_0000000" when B"00101100", -- 235 la 235 (freq: 3497.480878)
B"0001_0_0000_1110111_0000000" when B"00101011", -- 234 la 233 (freq: 3520.000000)
B"0000_1_0000_1110111_0000000" when B"00101010", -- 233 la 233 (freq: 3520.000000)
B"0000_0_1000_1110111_0000000" when B"00101001", -- 232 la 232 (freq: 3542.664116)
B"0000_0_0100_1110111_0000000" when B"00101000", -- 231 la 230 (freq: 3565.474158)
B"0000_0_0100_1110111_0000000" when B"00100111", -- 230 la 230 (freq: 3565.474158)
B"0000_0_0010_1110111_0000000" when B"00100110", -- 229 la 229 (freq: 3588.431066)
B"0000_0_0001_1110111_0000000" when B"00100101", -- 228 la 227 (freq: 3611.535786)
B"0000_0_0001_1110111_0000000" when B"00100100", -- 227 la 227 (freq: 3611.535786)
B"1000_0_0000_0011111_0011111" when B"00100011", -- 226 sib 226 (freq: 3634.789270)
B"0100_0_0000_0011111_0011111" when B"00100010", -- 225 sib 225 (freq: 3658.192476)
B"0010_0_0000_0011111_0011111" when B"00100001", -- 224 sib 223 (freq: 3681.746367)
B"0010_0_0000_0011111_0011111" when B"00100000", -- 223 sib 223 (freq: 3681.746367)
B"0001_0_0000_0011111_0011111" when B"00011111", -- 222 sib 222 (freq: 3705.451914)
B"0001_0_0000_0011111_0011111" when B"00011110", -- 221 sib 220 (freq: 3729.310092)
B"0000_1_0000_0011111_0011111" when B"00011101", -- 220 sib 220 (freq: 3729.310092)
B"0000_0_1000_0011111_0011111" when B"00011100", -- 219 sib 219 (freq: 3753.321886)
B"0000_0_0100_0011111_0011111" when B"00011011", -- 218 sib 217 (freq: 3777.488284)
B"0000_0_0100_0011111_0011111" when B"00011010", -- 217 sib 217 (freq: 3777.488284)
B"0000_0_0010_0011111_0011111" when B"00011001", -- 216 sib 216 (freq: 3801.810281)
B"0000_0_0001_0011111_0011111" when B"00011000", -- 215 sib 215 (freq: 3826.288880)
B"1000_0_0000_0011111_0000000" when B"00010111", -- 214 si 213 (freq: 3850.925088)
B"1000_0_0000_0011111_0000000" when B"00010110", -- 213 si 213 (freq: 3850.925088)
B"0100_0_0000_0011111_0000000" when B"00010101", -- 212 si 212 (freq: 3875.719920)
B"0010_0_0000_0011111_0000000" when B"00010100", -- 211 si 211 (freq: 3900.674399)
B"0001_0_0000_0011111_0000000" when B"00010011", -- 210 si 209 (freq: 3925.789550)
B"0001_0_0000_0011111_0000000" when B"00010010", -- 209 si 209 (freq: 3925.789550)
B"0000_1_0000_0011111_0000000" when B"00010001", -- 208 si 208 (freq: 3951.066410)
B"0000_0_1000_0011111_0000000" when B"00010000", -- 207 si 207 (freq: 3976.506020)
B"0000_0_0100_0011111_0000000" when B"00001111", -- 206 si 205 (freq: 4002.109426)
B"0000_0_0100_0011111_0000000" when B"00001110", -- 205 si 205 (freq: 4002.109426)
B"0000_0_0010_0011111_0000000" when B"00001101", -- 204 si 204 (freq: 4027.877685)
B"0000_0_0001_0011111_0000000" when B"00001100", -- 203 si 203 (freq: 4053.811856)
B"1000_0_0000_1001110_0000000" when B"00001011", -- 202 do 201 (freq: 4079.913010)
B"1000_0_0000_1001110_0000000" when B"00001010", -- 201 do 201 (freq: 4079.913010)
B"0100_0_0000_1001110_0000000" when B"00001001", -- 200 do 200 (freq: 4106.182220)
B"0010_0_0000_1001110_0000000" when B"00001000", -- 199 do 199 (freq: 4132.620568)
B"0001_0_0000_1001110_0000000" when B"00000111", -- 198 do 198 (freq: 4159.229145)
B"0001_0_0000_1001110_0000000" when B"00000110", -- 197 do 196 (freq: 4186.009045)
B"0000_1_0000_1001110_0000000" when B"00000101", -- 196 do 196 (freq: 4186.009045)
B"0000_0_1000_1001110_0000000" when B"00000100", -- 195 do 195 (freq: 4212.961372)
B"0000_0_0100_1001110_0000000" when B"00000011", -- 194 do 194 (freq: 4240.087237)
B"0000_0_0010_1001110_0000000" when B"00000010", -- 193 do 193 (freq: 4267.387756)
B"0000_0_0001_1001110_0000000" when B"00000001", -- 192 do 191 (freq: 4294.864053)
B"0000_0_0001_1001110_0000000" when B"00000000", -- 191 do 191 (freq: 4294.864053)
B"0000_0_0000_1111111_1111111" when others;
end;
|