by Expertise

Communications

  • Implemented a command/response interface under TCP/IP, allowing a user to telnet into the product and display status or request control. This, in concert with Python scripts that ran on the PC, controlled testing of the target under test via a TCP/IP interface.
  • Designed and coded communications software which implemented token bus communication over an RS-485 line.

Machine Control

  • Developed a control computer for a computer aided manufacturing system for making glass bottles.   Flinging molten gobs of glass under computer control provided challenges both of timing and safety.
  • Was the digital project lead on a bulk mail inspection device created for the US Post Office.
  • Designed and implemented code for a high-speed document scanner, both in the feeder and overall control subsystems.

Multi-thread/Multi-core/SIMD

  • Improved computationally intense mathematical functionality by implementing in SSE, Intel's Streaming SIMD Extensions.
  • Spread computationally intense processing across cores to improve performance.
  • Provided tuning capability which allowed optimization of the data used by the code.  This improvement was a result of increased use of each core's cache.

System on a Chip (SOC)

  • Used Xilinx tools to configure MicroBlaze hardware and develop applications. This involved crafting VHDL interfaces as well as use of ISE and EDK.
  • Maintained this configuration across versions of the tools, adding devices as the development required.

Kernel/Device Driver

  • Wrote a serial driver for SysV Unix that utilized FIFOs in the UART for reliable high speed operation.
  • Configured Xilinx' Xilkernel and wrote driver and multitasking code using it. Implemented code using both Xilinx devices as well as devices custom to the project.
  • Configured and used TI's DSP/BIOS kernel for a sensor project.
  • Designed and coded an operating system kernel that fea­tured deferred task­ing (with and without delay) and cancel facilities. Also provided directives for scheduling high-resolution timers.
  • Ported a pty (pseudo-tty) driver to SysV Unix.
  • Provided an event driven kernel in which each task was inherently a finite state machine.

Finite State Machine Design

  • Helped develop a methodology with which to specify telephone signaling systems. A finite state machine method was used to describe the sequencing involved in various systems. Guided and reviewed signaling systems descriptions both here and in Europe.
  • Designed the user interface for control of industrial equipment utilizing FSMs.  This not only provided a clean path between requirements and implementation, but eliminated a plethora of anomalies in the version it replaced.  
  • Implemented an industrial communications protocol utilizing finite state machines both for design and implementation.

Signal Processing

  • Wrote code to perform FFTs across cores as part of a RADAR project.
  • Analyzed FIR filters both for accuracy as well as computational intensity (MIPS required).
  • Wrote code that reduced noise (clutter) in the processing of RADAR images.

CUDA

  • Successfully completed the proof of concept implementation of a next generation electronic counter-measure system which performed the required signal processing in Nvidia CUDA cores, rather than FPGA logic.  
  • This provided increased agility as well as simplified debug capability. 
  • The multiple cores provided by the CUDA architecture allowed throughput results previously achievable only with FPGA solutions.