At Virginia Tech, ECE 4514 (Digital Design II) is a senior-level design technical elective taught in Verilog. The Verilog language differs from traditional programming languages in that it is actually synthesized into hardware, as opposed to compiled into executable software. Once synthesized, a Verilog-generated bitstream can be programmed onto a field-programmable gate array (FPGA), and the FPGA will assume the physical form implied by the Verilog source.
The course culminates in a final project,where students are expected to propose and develop a project of substantial complexity. In May 2011, my roommate developed Ecémon for his final project in the course. At the time, I had taken the course the year before, but my roommate’s professor allowed me to provide assistance with the graphics. My job involved taking graphic files required for use in the game and converting them to 2-bit grayscale GIFs. From there, I wrote a PHP script that parsed GIF images and outputted the body of Verilog modules that could be used as sprites on the FPGA. My roommate provided me with a representative design for the Verilog structure, and I replicated his format with my image-parsing script. Additionally, I developed a text-generation script that took in strings and converted them to Verilog sprites. This script accounted for the fixed number of characters that could fit on a single line, and inserted newlines where appropriate.
The idea behind the project was to take the concept of Pokémon and apply it to Virginia Tech’s ECE department. In Pokémon, trainers explore a virtual world and are challenged by their peers to battle their creatures. In Ecémon, a student wanders the Computer Engineering Lab (CEL) and encounters professors in the lab. Professors ask the student questions relating to courses that they regularly teach, and many of the graphics and interface design were borrowed from the original Pokémon GameBoy game.
The player inputted data to the game by the means of a PS/2 keyboard, and data was outputted via VGA to a monitor. The Spartan S3E Board provided the project’s FPGA chip, and the entire project was written entirely in Verilog. Since the Spartan S3E board’s VGA module supports 3-bit color, a special cable had to be developed to convert these signals to 2-bit grayscale signals used by the original GameBoy game.