Development Support for TESLA 3000 MPB

The TESLA 3000 MPB was developed for NxtPhase by Fidus in Ottawa.  It went fairly well, until the prototype board would just not recognize the Ethernet NIC, at all.  Michael Miller asked Elecsys to investigate.

I insisted that we boot LINUX on the board.  Fidus advised that it was not feasible to do so.  I persisted, and after about a week’s work (customizing the boot parameters and hacking the kernel a bit), I had it booting to LINUX with a small laptop hard drive.  Sure enough, the Ethernet NIC would not come up, even though it was fully supported by the installed LINUX driver.

By instrumenting the driver with printk() and observing the result of loading and unloading the driver in the system log, I determined that it was a short between two lines on the PCI bus to the NIC.  When Fidus took a close look at the Gerber files, they discovered that the design rules were too tight on the PCI bus on a deep inside layer of the PCB.  The PCB was corrected and remade, and the NIC worked.

Later, there was an issue with the operation speed of the MPB core.  Fidus was doing the FPGA development in VHDL on Synopsys, but did not have the resources to continue.  I took over the development under Synopsys, having to establish VPN to Fidus to obtain the license for it to run.  I suspected that the Synopsys tools, as good as they were, could be responsible for my inability to get appropriate performance from the FPGA.  I ported the VHDL out from Synopsys back to Xilinx ISE, a byproduct of which was that we could do full development stand-alone in Winnipeg, which was nice.

With a few tweaks, I was able to get the MPB FPGA to simulate out at better-than-required full speed operation, which was proved out in actual operation.  I mapped a path to higher speed operation, anticipated as a requirement for future product development.