Project 12 (ecs03)

Feb 8, 2010

Objective

Implement all the chips described in ECS chapter 3. The only building blocks that you can use are primitive DFF gates, chips that you will build on top of them, and chips described in previous chapters.

Requirements

Read ECS chapter 3.

Read Appendix A.6 and A.7.

Read the Hardware Simulator Tutorial parts IV and V.

Within your src directory, create a subdir named project03. Extract the contents of project03.zip into it.

Your file structure should now look like:

[DIR_OF_YOUR_CHOICE]/
  cs498/
    src/
      project00/
      project01/
      project02/
      project03/
    tecs-software-suite-2.5/

Add, commit and push the new files.

cd src/project03
git add *
git commit -m "Adding project03 files. Hruuuunnnhhh!"
git push

Again, be sure to commit often. I usually commit one time per each .hdl once I know it's passing my tests. Push any time you want to show your work (I recommend pushing every other day to show me what you've done).

Boilerplate .hdl files have been provided for you as usual. Follow the usual workflow.

Chip (HDL)

Function

Test script

Compare file

DFF Data Flip-Flop (primitive)      
Bit 1-bit binary cell Bit.tst Bit.cmp
Register 16-bit Register Register.tst Register.cmp
RAM8 16-bit / 8-register memory RAM8.tst RAM8.cmp
RAM64 16-bit / 64-register memory RAM64.tst RAM64.cmp
RAM512 16-bit / 512-register memory RAM512.tst RAM512.cmp
RAM4K 16-bit / 4096-register memory RAM4K.tst RAM4K.cmp
RAM16K 16-bit / 16384-register memory RAM16K.tst RAM16K.cmp
PC 16-bit Program Counter PC.tst PC.cmp

The Data Flip-Flop (DFF) gate is considered primitive and thus there is no need to build it: when the simulator encounters a DFF gate in an HDL program, it automatically invokes the built-in tools/builtInChips/DFF.hdl implementation.

Note the subdirectories of this project. When constructing RAM chips from smaller RAM chips, it is recommend that you use built-in versions of the latter. Otherwise, the simulator may run very slowly or even out of (real) memory space, since large RAM chips contain tens of thousands of lower level chips, and all these chips are kept in memory (as software objects) by the simulator. For this reason, the RAM512.hdl, RAM4K.hdl, and RAM16K.hdl programs are in a separate directory. This way, the recursive descent construction of the RAM4K and RAM16K chips stops with the RAM512 chip, while the lower-level chips from which the RAM512 is made are treated as built-in (since the simulator does not find them in this directory). In other words, leave the directory structure alone when working on the chips.

Grading Criteria (400 pts)

I must be able to pull your repo at 5PM on Friday, February 12 and I should see your project03 files.

Your repository must show a history of work. You should be committing every time you complete a chip. A repository log showing one commit with a message like "project03 done" is not acceptable.

This is due by 5PM on Friday, February 12.