Nathan – FPGA Developer/Scripting Expert
- Writes/debugs Python-based firmware test programs for a new device, including battery.
- Implement both C and Python elliptical curve cryptographic routines and test bench for digital signatures to validate battery packs.
- Responsible for the ROM contents on Veridian. Additionally, responsible for the new Flash programming and erase routines for the customer. Develops random test benches to exercise the Flash memory.
- Wrote a python emulator of the Veridian device. The ARM cortex M0+ core was modeled along with RAM, ROM, FLASH, UART and other blocks. The emulator reads the ELF file containing the binary code compiled by the Keil tools and provides a near clock accurate execution model of that code running on Veridian. This enables the Veridian ROM image to be debugged in advance of Silicon.
- Developed a flash emulation on an FPGA. Through a ROM based C program, emulates the Flash API library to allow the Veridian customer to develop their firmware on an FPGA with confidence that it will function on the silicon when it is finished.
- Developed a Verilog AMS generator to interface the digital and analog portions of Veridian together. This enabled the design team to simulate concurrently the digital and analog design databases.
- Developed a Verilog generator that instantiates the level shifters between the different power domains on Veridian. The Python programs read an Excel spreadsheet to get a template and then generate Verilog netlists as per that template.