1# 2# Generated with CMSIS-DSP SDF Scripts. 3# The generated code is not covered by CMSIS-DSP license. 4# 5# The support classes and code is covered by CMSIS-DSP license. 6# 7 8import sys 9 10 11import numpy as np 12import cmsisdsp as dsp 13from cmsisdsp.sdf.nodes.simu import * 14from appnodes import * 15from custom import * 16 17DEBUGSCHED=False 18 19# 20# FIFO buffers 21# 22 23 24FIFOSIZE0=160 25buf0=np.zeros(FIFOSIZE0,dtype=np.int16) 26 27FIFOSIZE1=400 28buf1=np.zeros(FIFOSIZE1,dtype=np.int16) 29 30FIFOSIZE2=49 31buf2=np.zeros(FIFOSIZE2,dtype=np.int16) 32 33FIFOSIZE3=98 34buf3=np.zeros(FIFOSIZE3,dtype=np.int16) 35 36FIFOSIZE4=98 37buf4=np.zeros(FIFOSIZE4,dtype=np.int16) 38 39FIFOSIZE5=1 40buf5=np.zeros(FIFOSIZE5,dtype=np.int16) 41 42 43def scheduler(input_array,window,coef_q15,coef_shift,intercept_q15,intercept_shift): 44 sdfError=0 45 nbSchedule=0 46 debugCounter=13 47 48 # 49 # Create FIFOs objects 50 # 51 fifo0=FIFO(FIFOSIZE0,buf0) 52 fifo1=FIFO(FIFOSIZE1,buf1) 53 fifo2=FIFO(FIFOSIZE2,buf2) 54 fifo3=FIFO(FIFOSIZE3,buf3) 55 fifo4=FIFO(FIFOSIZE4,buf4) 56 fifo5=FIFO(FIFOSIZE5,buf5) 57 58 # 59 # Create node objects 60 # 61 audioWin = SlidingBuffer(400,240,fifo0,fifo1) 62 feature = Feature(400,1,fifo1,fifo2,window) 63 featureWin = SlidingBuffer(98,49,fifo2,fifo3) 64 fir = FIR(98,98,fifo3,fifo4) 65 kws = KWS(98,1,fifo4,fifo5,coef_q15,coef_shift,intercept_q15,intercept_shift) 66 sink = Sink(1,fifo5) 67 src = Source(160,fifo0,input_array) 68 69 while((sdfError==0) and (debugCounter > 0)): 70 nbSchedule = nbSchedule + 1 71 72 sdfError = src.run() 73 if sdfError < 0: 74 break 75 sdfError = audioWin.run() 76 if sdfError < 0: 77 break 78 sdfError = feature.run() 79 if sdfError < 0: 80 break 81 sdfError = src.run() 82 if sdfError < 0: 83 break 84 sdfError = audioWin.run() 85 if sdfError < 0: 86 break 87 sdfError = feature.run() 88 if sdfError < 0: 89 break 90 sdfError = src.run() 91 if sdfError < 0: 92 break 93 sdfError = audioWin.run() 94 if sdfError < 0: 95 break 96 sdfError = feature.run() 97 if sdfError < 0: 98 break 99 sdfError = src.run() 100 if sdfError < 0: 101 break 102 sdfError = audioWin.run() 103 if sdfError < 0: 104 break 105 sdfError = feature.run() 106 if sdfError < 0: 107 break 108 sdfError = src.run() 109 if sdfError < 0: 110 break 111 sdfError = audioWin.run() 112 if sdfError < 0: 113 break 114 sdfError = feature.run() 115 if sdfError < 0: 116 break 117 sdfError = src.run() 118 if sdfError < 0: 119 break 120 sdfError = audioWin.run() 121 if sdfError < 0: 122 break 123 sdfError = feature.run() 124 if sdfError < 0: 125 break 126 sdfError = src.run() 127 if sdfError < 0: 128 break 129 sdfError = audioWin.run() 130 if sdfError < 0: 131 break 132 sdfError = feature.run() 133 if sdfError < 0: 134 break 135 sdfError = src.run() 136 if sdfError < 0: 137 break 138 sdfError = audioWin.run() 139 if sdfError < 0: 140 break 141 sdfError = feature.run() 142 if sdfError < 0: 143 break 144 sdfError = src.run() 145 if sdfError < 0: 146 break 147 sdfError = audioWin.run() 148 if sdfError < 0: 149 break 150 sdfError = feature.run() 151 if sdfError < 0: 152 break 153 sdfError = src.run() 154 if sdfError < 0: 155 break 156 sdfError = audioWin.run() 157 if sdfError < 0: 158 break 159 sdfError = feature.run() 160 if sdfError < 0: 161 break 162 sdfError = src.run() 163 if sdfError < 0: 164 break 165 sdfError = audioWin.run() 166 if sdfError < 0: 167 break 168 sdfError = feature.run() 169 if sdfError < 0: 170 break 171 sdfError = src.run() 172 if sdfError < 0: 173 break 174 sdfError = audioWin.run() 175 if sdfError < 0: 176 break 177 sdfError = feature.run() 178 if sdfError < 0: 179 break 180 sdfError = src.run() 181 if sdfError < 0: 182 break 183 sdfError = audioWin.run() 184 if sdfError < 0: 185 break 186 sdfError = feature.run() 187 if sdfError < 0: 188 break 189 sdfError = src.run() 190 if sdfError < 0: 191 break 192 sdfError = audioWin.run() 193 if sdfError < 0: 194 break 195 sdfError = feature.run() 196 if sdfError < 0: 197 break 198 sdfError = src.run() 199 if sdfError < 0: 200 break 201 sdfError = audioWin.run() 202 if sdfError < 0: 203 break 204 sdfError = feature.run() 205 if sdfError < 0: 206 break 207 sdfError = src.run() 208 if sdfError < 0: 209 break 210 sdfError = audioWin.run() 211 if sdfError < 0: 212 break 213 sdfError = feature.run() 214 if sdfError < 0: 215 break 216 sdfError = src.run() 217 if sdfError < 0: 218 break 219 sdfError = audioWin.run() 220 if sdfError < 0: 221 break 222 sdfError = feature.run() 223 if sdfError < 0: 224 break 225 sdfError = src.run() 226 if sdfError < 0: 227 break 228 sdfError = audioWin.run() 229 if sdfError < 0: 230 break 231 sdfError = feature.run() 232 if sdfError < 0: 233 break 234 sdfError = src.run() 235 if sdfError < 0: 236 break 237 sdfError = audioWin.run() 238 if sdfError < 0: 239 break 240 sdfError = feature.run() 241 if sdfError < 0: 242 break 243 sdfError = src.run() 244 if sdfError < 0: 245 break 246 sdfError = audioWin.run() 247 if sdfError < 0: 248 break 249 sdfError = feature.run() 250 if sdfError < 0: 251 break 252 sdfError = src.run() 253 if sdfError < 0: 254 break 255 sdfError = audioWin.run() 256 if sdfError < 0: 257 break 258 sdfError = feature.run() 259 if sdfError < 0: 260 break 261 sdfError = src.run() 262 if sdfError < 0: 263 break 264 sdfError = audioWin.run() 265 if sdfError < 0: 266 break 267 sdfError = feature.run() 268 if sdfError < 0: 269 break 270 sdfError = src.run() 271 if sdfError < 0: 272 break 273 sdfError = audioWin.run() 274 if sdfError < 0: 275 break 276 sdfError = feature.run() 277 if sdfError < 0: 278 break 279 sdfError = src.run() 280 if sdfError < 0: 281 break 282 sdfError = audioWin.run() 283 if sdfError < 0: 284 break 285 sdfError = feature.run() 286 if sdfError < 0: 287 break 288 sdfError = src.run() 289 if sdfError < 0: 290 break 291 sdfError = audioWin.run() 292 if sdfError < 0: 293 break 294 sdfError = feature.run() 295 if sdfError < 0: 296 break 297 sdfError = src.run() 298 if sdfError < 0: 299 break 300 sdfError = audioWin.run() 301 if sdfError < 0: 302 break 303 sdfError = feature.run() 304 if sdfError < 0: 305 break 306 sdfError = src.run() 307 if sdfError < 0: 308 break 309 sdfError = audioWin.run() 310 if sdfError < 0: 311 break 312 sdfError = feature.run() 313 if sdfError < 0: 314 break 315 sdfError = src.run() 316 if sdfError < 0: 317 break 318 sdfError = audioWin.run() 319 if sdfError < 0: 320 break 321 sdfError = feature.run() 322 if sdfError < 0: 323 break 324 sdfError = src.run() 325 if sdfError < 0: 326 break 327 sdfError = audioWin.run() 328 if sdfError < 0: 329 break 330 sdfError = feature.run() 331 if sdfError < 0: 332 break 333 sdfError = src.run() 334 if sdfError < 0: 335 break 336 sdfError = audioWin.run() 337 if sdfError < 0: 338 break 339 sdfError = feature.run() 340 if sdfError < 0: 341 break 342 sdfError = src.run() 343 if sdfError < 0: 344 break 345 sdfError = audioWin.run() 346 if sdfError < 0: 347 break 348 sdfError = feature.run() 349 if sdfError < 0: 350 break 351 sdfError = src.run() 352 if sdfError < 0: 353 break 354 sdfError = audioWin.run() 355 if sdfError < 0: 356 break 357 sdfError = feature.run() 358 if sdfError < 0: 359 break 360 sdfError = src.run() 361 if sdfError < 0: 362 break 363 sdfError = audioWin.run() 364 if sdfError < 0: 365 break 366 sdfError = feature.run() 367 if sdfError < 0: 368 break 369 sdfError = src.run() 370 if sdfError < 0: 371 break 372 sdfError = audioWin.run() 373 if sdfError < 0: 374 break 375 sdfError = feature.run() 376 if sdfError < 0: 377 break 378 sdfError = src.run() 379 if sdfError < 0: 380 break 381 sdfError = audioWin.run() 382 if sdfError < 0: 383 break 384 sdfError = feature.run() 385 if sdfError < 0: 386 break 387 sdfError = src.run() 388 if sdfError < 0: 389 break 390 sdfError = audioWin.run() 391 if sdfError < 0: 392 break 393 sdfError = feature.run() 394 if sdfError < 0: 395 break 396 sdfError = src.run() 397 if sdfError < 0: 398 break 399 sdfError = audioWin.run() 400 if sdfError < 0: 401 break 402 sdfError = feature.run() 403 if sdfError < 0: 404 break 405 sdfError = src.run() 406 if sdfError < 0: 407 break 408 sdfError = audioWin.run() 409 if sdfError < 0: 410 break 411 sdfError = feature.run() 412 if sdfError < 0: 413 break 414 sdfError = src.run() 415 if sdfError < 0: 416 break 417 sdfError = audioWin.run() 418 if sdfError < 0: 419 break 420 sdfError = feature.run() 421 if sdfError < 0: 422 break 423 sdfError = src.run() 424 if sdfError < 0: 425 break 426 sdfError = audioWin.run() 427 if sdfError < 0: 428 break 429 sdfError = feature.run() 430 if sdfError < 0: 431 break 432 sdfError = src.run() 433 if sdfError < 0: 434 break 435 sdfError = audioWin.run() 436 if sdfError < 0: 437 break 438 sdfError = feature.run() 439 if sdfError < 0: 440 break 441 sdfError = src.run() 442 if sdfError < 0: 443 break 444 sdfError = audioWin.run() 445 if sdfError < 0: 446 break 447 sdfError = feature.run() 448 if sdfError < 0: 449 break 450 sdfError = src.run() 451 if sdfError < 0: 452 break 453 sdfError = audioWin.run() 454 if sdfError < 0: 455 break 456 sdfError = feature.run() 457 if sdfError < 0: 458 break 459 sdfError = src.run() 460 if sdfError < 0: 461 break 462 sdfError = audioWin.run() 463 if sdfError < 0: 464 break 465 sdfError = feature.run() 466 if sdfError < 0: 467 break 468 sdfError = src.run() 469 if sdfError < 0: 470 break 471 sdfError = audioWin.run() 472 if sdfError < 0: 473 break 474 sdfError = feature.run() 475 if sdfError < 0: 476 break 477 sdfError = src.run() 478 if sdfError < 0: 479 break 480 sdfError = audioWin.run() 481 if sdfError < 0: 482 break 483 sdfError = feature.run() 484 if sdfError < 0: 485 break 486 sdfError = src.run() 487 if sdfError < 0: 488 break 489 sdfError = audioWin.run() 490 if sdfError < 0: 491 break 492 sdfError = feature.run() 493 if sdfError < 0: 494 break 495 sdfError = src.run() 496 if sdfError < 0: 497 break 498 sdfError = audioWin.run() 499 if sdfError < 0: 500 break 501 sdfError = feature.run() 502 if sdfError < 0: 503 break 504 sdfError = src.run() 505 if sdfError < 0: 506 break 507 sdfError = audioWin.run() 508 if sdfError < 0: 509 break 510 sdfError = feature.run() 511 if sdfError < 0: 512 break 513 sdfError = featureWin.run() 514 if sdfError < 0: 515 break 516 sdfError = fir.run() 517 if sdfError < 0: 518 break 519 sdfError = kws.run() 520 if sdfError < 0: 521 break 522 sdfError = sink.run() 523 if sdfError < 0: 524 break 525 526 debugCounter = debugCounter - 1 527 return(nbSchedule,sdfError) 528