sched.py 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  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. import sys
  8. import numpy as np
  9. import cmsisdsp as dsp
  10. from cmsisdsp.sdf.nodes.simu import *
  11. from appnodes import *
  12. from custom import *
  13. DEBUGSCHED=False
  14. #
  15. # FIFO buffers
  16. #
  17. FIFOSIZE0=160
  18. buf0=np.zeros(FIFOSIZE0,dtype=np.int16)
  19. FIFOSIZE1=400
  20. buf1=np.zeros(FIFOSIZE1,dtype=np.int16)
  21. FIFOSIZE2=49
  22. buf2=np.zeros(FIFOSIZE2,dtype=np.int16)
  23. FIFOSIZE3=98
  24. buf3=np.zeros(FIFOSIZE3,dtype=np.int16)
  25. FIFOSIZE4=98
  26. buf4=np.zeros(FIFOSIZE4,dtype=np.int16)
  27. FIFOSIZE5=1
  28. buf5=np.zeros(FIFOSIZE5,dtype=np.int16)
  29. def scheduler(input_array,window,coef_q15,coef_shift,intercept_q15,intercept_shift):
  30. sdfError=0
  31. nbSchedule=0
  32. debugCounter=13
  33. #
  34. # Create FIFOs objects
  35. #
  36. fifo0=FIFO(FIFOSIZE0,buf0)
  37. fifo1=FIFO(FIFOSIZE1,buf1)
  38. fifo2=FIFO(FIFOSIZE2,buf2)
  39. fifo3=FIFO(FIFOSIZE3,buf3)
  40. fifo4=FIFO(FIFOSIZE4,buf4)
  41. fifo5=FIFO(FIFOSIZE5,buf5)
  42. #
  43. # Create node objects
  44. #
  45. audioWin = SlidingBuffer(400,240,fifo0,fifo1)
  46. feature = Feature(400,1,fifo1,fifo2,window)
  47. featureWin = SlidingBuffer(98,49,fifo2,fifo3)
  48. fir = FIR(98,98,fifo3,fifo4)
  49. kws = KWS(98,1,fifo4,fifo5,coef_q15,coef_shift,intercept_q15,intercept_shift)
  50. sink = Sink(1,fifo5)
  51. src = Source(160,fifo0,input_array)
  52. while((sdfError==0) and (debugCounter > 0)):
  53. nbSchedule = nbSchedule + 1
  54. sdfError = src.run()
  55. if sdfError < 0:
  56. break
  57. sdfError = audioWin.run()
  58. if sdfError < 0:
  59. break
  60. sdfError = feature.run()
  61. if sdfError < 0:
  62. break
  63. sdfError = src.run()
  64. if sdfError < 0:
  65. break
  66. sdfError = audioWin.run()
  67. if sdfError < 0:
  68. break
  69. sdfError = feature.run()
  70. if sdfError < 0:
  71. break
  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 = featureWin.run()
  496. if sdfError < 0:
  497. break
  498. sdfError = fir.run()
  499. if sdfError < 0:
  500. break
  501. sdfError = kws.run()
  502. if sdfError < 0:
  503. break
  504. sdfError = sink.run()
  505. if sdfError < 0:
  506. break
  507. debugCounter = debugCounter - 1
  508. return(nbSchedule,sdfError)