Project Description

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.

Bob Lineberry is the CEL’s lab instructor. He provides invaluable assistance in difficult courses. For example, he wrote a brief and informative Sensor Conditioning and Data Acquisition Guide for students in Embedded System Design. Since he is so good at working one-on-one with students, he was given the role of Professor Oak.

The game takes place in the CEL, which looks a lot like what you would expect a computer engineering lab to look like.

Dr. Martin teaches ECE 2504 (Introduction to Computer Engineering), which covers Karnaugh mapping.

Instructor Thweatt teaches ECE 3504 (Digital Design I), which covers incompletely-specified circuits.

 

Dr. Plassmann teaches ECE 3574 (Applied Software Engineering), which covers threading and process synchronization.

Dr. Jones teaches ECE 4534, which is a capstone design course notorious for being devilishly hard.

Since much of ECE 4534 involves generating lots of code in a short amount of time, it can be hard to tell the difference between something that appears to work, and something that actually works. Dr. Jones’ question cannot be answered correctly in the game, leaving the student in the CEL indefinitely.