Complete either of the two following Tasks as part of your GSoC 2021 application if you are applying for any nMigen related task.
First, read & understand the stream abstractions of the axiom nmigen gateware. For both tasks you are allowed (& required) to use existing code from the axiom nmigen-gateware.
Task1:
Build a core in nMigen in the context of https://github.com/apertus-open-source-cinema/nmigen-gateware that generates SMPTE color bars in a (build time) configurable resolution. The output should be an ImageStream. Simulate that core & write a Testbench that stores the image. Submit a Pull request against the nmigen-gateware repo.
resources:
* https://en.m.wikipedia.org/wiki/SMPTE_color_bars
* https://github.com/apertus-open-source-cinema/nmigen-gateware/blob/master/src/lib/bus/stream/stream.py
* https://github.com/apertus-open-source-cinema/nmigen-gateware/blob/master/src/lib/video/demo_source.py
Task2:
Build a core in nMigen in the context of https://github.com/apertus-open-source-cinema/nmigen-gateware that changes a gamma of a monochrome Image by a compile time selectable amount. Use a Memory to implement that.
The input & output should be an ImageStream. Simulate that core & write a Testbench that can read & write an image. Submit a Pull request against the nmigen-gateware repo.
resources:
* https://www.cambridgeincolour.com/tutorials/gamma-correction.htm
* https://github.com/apertus-open-source-cinema/nmigen-gateware/blob/master/src/lib/bus/stream/stream.py
* https://github.com/apertus-open-source-cinema/nmigen-gateware/blob/master/src/lib/compression/huffman_encoder.py (an example of a stream core that uses a memory)
To get in touch with any mentor check the [[ https://www.apertus.org/GSoC-Mentor-Contact-List | Mentor Contact List]].