<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>J-Core already supports the primitives needed for DSP in fixed point math, it's used extensively in SEI's products built on SMP J-Core SoC designs.   An example is a (real time) GPS receiver, where all the digital filters, DLL/PLL, etc are in fixed point.   The MAC unit provides support for saturation, etc in hardware.  The rest of the GNSS calculations are done in soft floating point on the J2.</div><div><br></div><div>Actually, all of SEIs use cases have a single processing component to them... used in real production systems built on J2 or SMP J2.</div><div><br></div><div>The SMP J2, or even a single J2 will handily beat the consoles the original SH2 was in <a href="http://segaretro.org/Sega_Saturn">http://segaretro.org/Sega_Saturn</a>  The addition of an S-Core DSP or two, the release of which is a ToDo item, will let you do all the things below easily, and has things like fixed point vector rotation in hardware.</div><div><div><br></div></div><div>On Oct 20, 2017, at 06:24, Ken Phillis Jr <<a href="mailto:kphillisjr@gmail.com">kphillisjr@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><span>I stated this before, but the J2 Core is capable of handling 3D Math.</span><br><span>The trick is to use Fixed Point Arithmetic[1] to perform calculations.</span></div></blockquote><div><br></div><div>Have a look at the MAC unit in the J2.   It was designed for this sort of thing.</div><br><blockquote type="cite"><div><span>Step 1: Add Hardware Acceleration for Fixed Point Calculations</span><br><span>Step 2: Implement Hardware Vector Math.</span><br><span>Step 3: Implement a 3D Software Renderer for the Hardware</span><br></div></blockquote><div><br></div><div><div id="AppleMailSignature"><span style="background-color: rgba(255, 255, 255, 0);">Cheers,</span><div><span style="background-color: rgba(255, 255, 255, 0);">J</span></div><div><br></div></div></div>...<br><blockquote type="cite"><div><span>[1] Wikipedia: Fixed Point Arithmetic:</span><br><span><a href="https://en.wikipedia.org/wiki/Fixed-point_arithmetic">https://en.wikipedia.org/wiki/Fixed-point_arithmetic</a></span><br><span>[2] Wikipedia: Playstation 1 Console:</span><br><span><a href="https://en.wikipedia.org/wiki/PlayStation_(console)">https://en.wikipedia.org/wiki/PlayStation_(console)</a></span><br><span>[3] Wikipedia: Sega Saturn Console: <a href="https://en.wikipedia.org/wiki/Sega_Saturn">https://en.wikipedia.org/wiki/Sega_Saturn</a></span><br><span>[4] Wikipedia: Nintendo GameBoy Advance:</span><br><span><a href="https://en.wikipedia.org/wiki/Game_Boy_Advance">https://en.wikipedia.org/wiki/Game_Boy_Advance</a></span><br><span>[5] Wikipedia: Nintendo DS: <a href="https://en.wikipedia.org/wiki/Nintendo_DS">https://en.wikipedia.org/wiki/Nintendo_DS</a></span><br><span>[6] Github: Libfixmath: <a href="https://github.com/PetteriAimonen/libfixmath">https://github.com/PetteriAimonen/libfixmath</a></span><br><span>[7] Github: LibfixMatrix: <a href="https://github.com/PetteriAimonen/libfixmatrix">https://github.com/PetteriAimonen/libfixmatrix</a></span><br><span>[8] Github: Vector_lib: <a href="https://github.com/rampantpixels/vector_lib">https://github.com/rampantpixels/vector_lib</a></span><br><span>Note: This library uses Floating Point, so The math needs slight changes.</span><br><span>[9] Github: Tinyrenderer: <a href="https://github.com/ssloy/tinyrenderer">https://github.com/ssloy/tinyrenderer</a></span><br><span>Note: This tutorial is written against mostly Floating Point Math, but</span><br><span>it can be used with changes to make use of the Fixed point math.</span><br><span>_______________________________________________</span><br><span>J-core mailing list</span><br><span><a href="mailto:J-core@lists.j-core.org">J-core@lists.j-core.org</a></span><br><span><a href="http://lists.j-core.org/mailman/listinfo/j-core">http://lists.j-core.org/mailman/listinfo/j-core</a></span><br></div></blockquote></body></html>