OS Driver Software Dev
Technologies involved: c, systems programming, hardware aware programming
I created a driver to interface the high-speed networking IP to an in-house operating system that runs on ARM and MicroBlaze. The software programs the part to probabilistically cover all possible configurations and generates realistic, randomized network traffic to pass through the networking IP. There is not much more I can say about this because the OS is proprietary, but ask me about any specifics and I'll tell you what I can!
Xilinx (Summer 2017)
This summer was mostly work that involves classified designs and testing strategies that I simply can't write about. I'll tell ya what I can, though!
Technologies involved: python, lab hardware setup & debug, digital design, bit manipulation
The specific technology that I solidified the procedure for is classified, but the gist is this: when a customer comes to my team with a problem, there is a way that the part can be specifically checked for issues in the silicon. That technology is embedded into the part, but the procedure was not there for it to be used. I created that procedure, documented it, found issues with it, and reasoned about some black-box systems to manipulate the output. The most interesting part was being presented with a system that I could control the input and observe the output and continually changing the input to finally generate the target output.
Technologies involved: system verilog, arm, Vivado, digital design
I connected the ARM core to in-house storage IP, configured the core to generate a first stage boot loader, and used that to download the software that I created for the OS onto a new testing setup. Luckily, hardware design was interspersed throughout the internship.