# Mapping Signal Processing Algorithms to Architectures

- Institution: IIT Madras
- Department: Electrical Engineering
- Teacher: Prof. Nitin Chandrachoodan
- Level: Undergraduate
- Language: English
- Subjects: Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/108106149)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/108106149)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

## Lectures

1. [Introduction: Objectives and Pre-requisites](https://invisiblenetwork.ai/learn/nptel/108106149/4b5c8f91377b) (Video)
2. [Review of digital logic](https://invisiblenetwork.ai/learn/nptel/108106149/b08bccdf08fb) (Video)
3. [Timing and Power in digital circuits](https://invisiblenetwork.ai/learn/nptel/108106149/6c1ca99591c3) (Video)
4. [Implementation Costs and Metrics](https://invisiblenetwork.ai/learn/nptel/108106149/e2ab349ae235) (Video)
5. [Example: Audio processing](https://invisiblenetwork.ai/learn/nptel/108106149/f4a07578dab7) (Video)
6. [Example: AlexNet](https://invisiblenetwork.ai/learn/nptel/108106149/05399981809b) (Video)
7. [Architecture cost components](https://invisiblenetwork.ai/learn/nptel/108106149/318b65c22add) (Video)
8. [Examples of Architectures](https://invisiblenetwork.ai/learn/nptel/108106149/f4b04eb0daa9) (Video)
9. [Multi-objective Optimization](https://invisiblenetwork.ai/learn/nptel/108106149/ab1ed775dffc) (Video)
10. [Number representation](https://invisiblenetwork.ai/learn/nptel/108106149/baff1f74d55d) (Video)
11. [Scientific notation and Floating point](https://invisiblenetwork.ai/learn/nptel/108106149/7ebc3ee4afe7) (Video)
12. [Basic FIR filter](https://invisiblenetwork.ai/learn/nptel/108106149/67ba6386f9c6) (Video)
13. [Serial FIR filter architectures](https://invisiblenetwork.ai/learn/nptel/108106149/c9ca15a3395f) (Video)
14. [Simple programmable architecture](https://invisiblenetwork.ai/learn/nptel/108106149/7dd328e924d8) (Video)
15. [Block diagrams and SFGs](https://invisiblenetwork.ai/learn/nptel/108106149/4a472166980e) (Video)
16. [Dataflow Graphs](https://invisiblenetwork.ai/learn/nptel/108106149/17e9af0f538c) (Video)
17. [Iteration period](https://invisiblenetwork.ai/learn/nptel/108106149/cb66ba003358) (Video)
18. [FIR filter iteration period](https://invisiblenetwork.ai/learn/nptel/108106149/c699215b5ba3) (Video)
19. [IIR filter iteration period](https://invisiblenetwork.ai/learn/nptel/108106149/561debeb57db) (Video)
20. [Computation Model](https://invisiblenetwork.ai/learn/nptel/108106149/9b1a305b22eb) (Video)
21. [Constraint analysis for IPB computation](https://invisiblenetwork.ai/learn/nptel/108106149/ef150c5afc7b) (Video)
22. [Motivational examples for IPB](https://invisiblenetwork.ai/learn/nptel/108106149/6b69971c0f69) (Video)
23. [General IPB computation](https://invisiblenetwork.ai/learn/nptel/108106149/ecb8e1fc83f4) (Video)
24. [Sample period calculation](https://invisiblenetwork.ai/learn/nptel/108106149/9454afdd0d03) (Video)
25. [Parallel architecture](https://invisiblenetwork.ai/learn/nptel/108106149/da1b4cf0484a) (Video)
26. [Odd-even register reuse](https://invisiblenetwork.ai/learn/nptel/108106149/b2dda0c65701) (Video)
27. [Power consumption](https://invisiblenetwork.ai/learn/nptel/108106149/727f7f010a4f) (Video)
28. [Pipelining](https://invisiblenetwork.ai/learn/nptel/108106149/d6cb1ee61a4f) (Video)
29. [Pipelining FIR filter](https://invisiblenetwork.ai/learn/nptel/108106149/bcc8d610bda6) (Video)
30. [Time-invariant systems](https://invisiblenetwork.ai/learn/nptel/108106149/105c5eb9dc3e) (Video)
31. [Valid pipelining examples](https://invisiblenetwork.ai/learn/nptel/108106149/2b0cd972b737) (Video)
32. [Feedforward cutsets](https://invisiblenetwork.ai/learn/nptel/108106149/9239f24b46da) (Video)
33. [Balanced pipeline](https://invisiblenetwork.ai/learn/nptel/108106149/b5d246cb6a68) (Video)
34. [Retiming basic concept](https://invisiblenetwork.ai/learn/nptel/108106149/fe8bad08f383) (Video)
35. [Example and uses of retiming](https://invisiblenetwork.ai/learn/nptel/108106149/98cf9c2b7898) (Video)
36. [Resource sharing: adder example](https://invisiblenetwork.ai/learn/nptel/108106149/550544e1826b) (Video)
37. [Changing iteration period](https://invisiblenetwork.ai/learn/nptel/108106149/b7e8d5bcbb53) (Video)
38. [Hardware assumptions and constraint analysis](https://invisiblenetwork.ai/learn/nptel/108106149/7af9efbf81f1) (Video)
39. [Mathematical formulation](https://invisiblenetwork.ai/learn/nptel/108106149/7d4bd0d5198e) (Video)
40. [Examples with formulation](https://invisiblenetwork.ai/learn/nptel/108106149/133c9638cd1e) (Video)
41. [Example: Biquad filter](https://invisiblenetwork.ai/learn/nptel/108106149/8a2c875caf55) (Video)
42. [Hardware architecture](https://invisiblenetwork.ai/learn/nptel/108106149/a795e79caf54) (Video)
43. [Review biquad folding sets](https://invisiblenetwork.ai/learn/nptel/108106149/a049c3ecf8f5) (Video)
44. [Complete biquad hardware](https://invisiblenetwork.ai/learn/nptel/108106149/460b29698eb5) (Video)
45. [DEMO: FFT in Vivado HLS](https://invisiblenetwork.ai/learn/nptel/108106149/65a641286ee8) (Video)
46. [DEMO: FFT synthesis](https://invisiblenetwork.ai/learn/nptel/108106149/0f1128989891) (Video)
47. [Obtaining a folding schedule](https://invisiblenetwork.ai/learn/nptel/108106149/c28e86014f62) (Video)
48. [ASAP schedule](https://invisiblenetwork.ai/learn/nptel/108106149/762a3ae42195) (Video)
49. [Utilization Efficiency](https://invisiblenetwork.ai/learn/nptel/108106149/96d8d209124f) (Video)
50. [ALAP schedule](https://invisiblenetwork.ai/learn/nptel/108106149/4d82a1b08472) (Video)
51. [Iteration period bound and scheduling](https://invisiblenetwork.ai/learn/nptel/108106149/3b4b8a6a6032) (Video)
52. [Retiming for scheduling](https://invisiblenetwork.ai/learn/nptel/108106149/15a24b6adad6) (Video)
53. [Blocked schedules](https://invisiblenetwork.ai/learn/nptel/108106149/ae022c6a99af) (Video)
54. [Overlapped schedules](https://invisiblenetwork.ai/learn/nptel/108106149/282105e14dfb) (Video)
55. [Improved blocked schedule](https://invisiblenetwork.ai/learn/nptel/108106149/edf9a3a526a5) (Video)
56. [Allocation, Binding and Scheduling](https://invisiblenetwork.ai/learn/nptel/108106149/fb147eb26570) (Video)
57. [DEMO: Analyze FFT implementation](https://invisiblenetwork.ai/learn/nptel/108106149/f3edc5d683da) (Video)
58. [DEMO: FFT interface](https://invisiblenetwork.ai/learn/nptel/108106149/81dc89fa29ff) (Video)
59. [Scheduling: problem formulation](https://invisiblenetwork.ai/learn/nptel/108106149/bf1e91a3dd63) (Video)
60. [Example: differential equation solver](https://invisiblenetwork.ai/learn/nptel/108106149/80014a60e57f) (Video)
61. [Heuristic approaches to scheduling](https://invisiblenetwork.ai/learn/nptel/108106149/2bfd768a7064) (Video)
62. [Mathematical formulation](https://invisiblenetwork.ai/learn/nptel/108106149/9a9dad04ddb1) (Video)
63. [ILP formulation](https://invisiblenetwork.ai/learn/nptel/108106149/54fd9b4d93a1) (Video)
64. [List scheduling](https://invisiblenetwork.ai/learn/nptel/108106149/6b57d54bd92e) (Video)
65. [Hardware model](https://invisiblenetwork.ai/learn/nptel/108106149/2e7b6c2bb411) (Video)
66. [Force Directed Scheduling](https://invisiblenetwork.ai/learn/nptel/108106149/70d3d2a2296b) (Video)
67. [DEMO: HLS on FFT](https://invisiblenetwork.ai/learn/nptel/108106149/e54367a662e4) (Video)
68. [DEMO: FFT Simulation and Optimization](https://invisiblenetwork.ai/learn/nptel/108106149/ed4e1e1f67e2) (Video)
69. [DEMO: CPU interfacing](https://invisiblenetwork.ai/learn/nptel/108106149/3d20ff310398) (Video)
70. [Software Compilation](https://invisiblenetwork.ai/learn/nptel/108106149/7cd29bf87a6d) (Video)
71. [Optimization Examples](https://invisiblenetwork.ai/learn/nptel/108106149/40bcf8503c8f) (Video)
72. [Loop optimizations 1](https://invisiblenetwork.ai/learn/nptel/108106149/326e854d8dd3) (Video)
73. [Loop optimizations 2](https://invisiblenetwork.ai/learn/nptel/108106149/bebc7b071299) (Video)
74. [Loop optimizations 3](https://invisiblenetwork.ai/learn/nptel/108106149/30053b10aea0) (Video)
75. [Software pipelining 1](https://invisiblenetwork.ai/learn/nptel/108106149/c6ce1c7f68a3) (Video)
76. [Software pipelining 2](https://invisiblenetwork.ai/learn/nptel/108106149/95f083b81d23) (Video)
77. [FFT Optimization](https://invisiblenetwork.ai/learn/nptel/108106149/d75d81e314f1) (Video)
78. [Demo: Vivado setup](https://invisiblenetwork.ai/learn/nptel/108106149/385bf2dea85d) (Video)
79. [Background: CPUs and FPGAs](https://invisiblenetwork.ai/learn/nptel/108106149/5b2be1a7cea2) (Video)
80. [Demo: Vivado HLS FFT IP Export](https://invisiblenetwork.ai/learn/nptel/108106149/9331533949b7) (Video)
81. [Demo: Vivado ILA and VIO on hardware](https://invisiblenetwork.ai/learn/nptel/108106149/01be1153cc22) (Video)
82. [Demo: FFT on FPGA board](https://invisiblenetwork.ai/learn/nptel/108106149/90587213ebe7) (Video)
83. [Demo: Simulating SoC and SDK](https://invisiblenetwork.ai/learn/nptel/108106149/ea94827cf752) (Video)
84. [Background: Understanding ELF files](https://invisiblenetwork.ai/learn/nptel/108106149/4b9fb54bb180) (Video)
85. [On-chip communication basics](https://invisiblenetwork.ai/learn/nptel/108106149/321affcecc19) (Video)
86. [Many-to-Many communication](https://invisiblenetwork.ai/learn/nptel/108106149/b41883a622d3) (Video)
87. [AXI bus handshaking](https://invisiblenetwork.ai/learn/nptel/108106149/07b326855002) (Video)
88. [AXI bus (contd)](https://invisiblenetwork.ai/learn/nptel/108106149/8cab88a70d8a) (Video)
89. [Demo: Microblaze processor on FPGA](https://invisiblenetwork.ai/learn/nptel/108106149/3d906e35eaba) (Video)
90. [Demo: Performance counter AXI peripheral](https://invisiblenetwork.ai/learn/nptel/108106149/10817dd3ee2d) (Video)
91. [Demo: HW accelerator for FPGA](https://invisiblenetwork.ai/learn/nptel/108106149/6ed7c7663919) (Video)
92. [DMA and arbitration](https://invisiblenetwork.ai/learn/nptel/108106149/fdbf42ecd991) (Video)
93. [Network-on-chip basics](https://invisiblenetwork.ai/learn/nptel/108106149/c067f6cd6da5) (Video)
94. [NoC - topologies and metrics](https://invisiblenetwork.ai/learn/nptel/108106149/0e5839e2eef7) (Video)
95. [NoC - routing](https://invisiblenetwork.ai/learn/nptel/108106149/fd6f827af70e) (Video)
96. [NoC - switching and flow control](https://invisiblenetwork.ai/learn/nptel/108106149/db93a3fd370f) (Video)
97. [Systolic Arrays - Background](https://invisiblenetwork.ai/learn/nptel/108106149/72e6eabc2816) (Video)
98. [Systolic Arrays - Examples](https://invisiblenetwork.ai/learn/nptel/108106149/b7c1ae8b24d6) (Video)
99. [CORDIC algorithm](https://invisiblenetwork.ai/learn/nptel/108106149/0ef75f5f8c41) (Video)
100. [Parallel implementation of FIR filters](https://invisiblenetwork.ai/learn/nptel/108106149/4367a9d2ec10) (Video)
101. [Unfolding Transformation](https://invisiblenetwork.ai/learn/nptel/108106149/9bc6c5ced437) (Video)
102. [Lookahead Transformation](https://invisiblenetwork.ai/learn/nptel/108106149/47e876e348e8) (Video)
103. [Introduction to GPUs and Matrix multiplication](https://invisiblenetwork.ai/learn/nptel/108106149/d0ac286c49e1) (Video)
104. [Live Session 09-08-2019](https://invisiblenetwork.ai/learn/nptel/108106149/4b5c8f91377b-2) (Video)
105. [Live Session 27-08-2019](https://invisiblenetwork.ai/learn/nptel/108106149/b08bccdf08fb-2) (Video)
