Andrew Canis, Ph.D.
Hi! I am a Ph.D. graduate of the Department of Electrical and Computer Engineering at the University of Toronto, Canada. Specifically, I focus on software for programming field programmable gate arrays (FPGAs), which are integrated circuits that can be programmed to implement arbitrary digital logic described by a hardware description language.
Implementing a design on an FPGA instead of a processor can offer orders of magnitude improvement in energy efficiency and performance for some applications. However, a frequent complaint among FPGA users is that FPGAs are hard to program. The root of this problem is that engineers are accustomed to software development using C, which is vastly simpler than the circuit design and verification required for FPGA development.
My research goal is to make FPGAs easier to program for software engineers.
I wrote the initial code for LegUp, an open-source high-level synthesis tool being developed at the University of Toronto. The LegUp framework allows researchers to improve C to Verilog synthesis without building an infrastructure from scratch. We now have many contributors and I'm very proud of how far the project has come. Our long-term vision is to make FPGA programming easier for software developers. Check out our website:
I received my B.A.Sc in Computer Engineering from the University of Waterloo, Canada in 2008. Here are a few co-op work placements I've had over the years:
I have served as a teaching assistant at Univerity of Toronto since 2008:
My curriculum vitae can be found here.
Please refer to my Google Scholar Page.
Office: Pratt 392
Department of Electrical and Computer Engineering
University of Toronto
10 King's College Road
Toronto, ON Canada
Thanks to the Canadian government for their very generous scholarships through the Natural Sciences and Engineering Research Council (NSERC) and the Ontario Graduate Scholarship (OGS) for funding my academic research. Also thanks to Altera for their generous funding for the LegUp project.