The following guidelines apply to lab reports in CS256 - Computer Organization and Architecture.
Organization and Structure¶
In place of the “Experiment/Methodology” and “Results/Analysis/Discussion” sections from the main technical report guidelines, CS256 lab reports should contain a separate section for each circuit in the lab.
In each of those sections, include, as relevant:
- The goal of that circuit (its specification, inputs, outputs, and what it’s for).
- Your designs (schematics).
- Descriptions and explanations* of the designs and any novel or non-trivial parts of the circuit (anything that hasn’t been presented and explained in an earlier lab).
- Rationale for any non-obvious choices you made in the design.
- Your testing procedure — explain what you were testing and how you tested it.
- All data recorded — explain what it means. Is it correct? How do you know? Does it match your expectations?
- Answers to any questions asked in the lab instructions for this circuit. Clearly mark each with Question: followed by the text of the question (or a paraphrase), then write your answer (which should always include explanation, not just a single number, etc.).
* Good explanations take some work. Do not just restate the contents of the diagram in words; that is redundant (e.g., “the gate output is connected through a resistor and an LED to ground” – the diagram already says that). Instead, explain why the circuit is connected that way. Why do these connections make a circuit with the desired behavior? Explain the novel parts (anything new in this lab), the non-obvious parts, and the general high-level view of it all.
If any questions are asked or discussion points are noted outside of the context of a specific circuit, add a “Discussion” section following all circuit sections to address those.
If you have described a circuit or subcircuit in a previous lab, you may simply refer back to that lab instead of describing it again. The LED output subcircuit, for example, should be described in the first lab report, but others can simply mention that they used the now-standard output subcircuit.
Digital Logic: Circuit Diagrams and Truth Tables¶
There are two ways to include circuit diagrams in your report (which must be a PDF, remember): 1) use software, or 2) draw them by hand and scan them. I highly recommend using software, because it will be far cleaner than hand-drawn circuits unless you use straightedges and excellent drafting techniques.
Always make sure you are using correct symbols for circuit elements. This image has good examples, and as a bonus, it can even be opened in software like Inkscape to reuse those elements without having to recreate them. Further schematic conventions to follow:
- Circuits are often drawn with current and/or data flowing from left to right.
- +5V is always up, and ground is, by convention, almost always drawn pointing downward with a wire entering from above.
- Resistors should be labeled with their resistance values.
- LEDs have arrows “emitting” from them to indicate that they are light-emitting (without those arrows, the symbol is that of a standard diode, which is a different device).
- Label points in the circuit if they will be referred to in the text. For example, if D0 and D1 are points in the circuit that have their own logical values (in truth tables), they should be labeled clearly.
Circuits need to be easy to read. Follow the above guidelines, and also make sure it is well organized, with a sensible layout, limited wire crossings, no excessive turns in the wires, etc. Look at some sample circuit diagrams online; most found in this search are well laid-out, for example.
Note that Logisim is good for drawing circuits with logic gates, but it doesn’t do LEDs or resistors correctly for our purposes. This will not be an issue for any lab reports after the first one, after which you no longer need to draw LEDs or resistors. For that first lab report, though, feel free to copy (with attribution) the output subcircuit diagram from the lab instructions. Then draw your logic circuits with labeled inputs and outputs and state in the text that inputs are controlled via the provided input module and outputs are observed using the output subcircuit (both shown and explained earlier).
In truth tables, clearly separate inputs from outputs. Follow the convention that the only the only vertical line in the table is one between inputs and outputs, and the only horizontal line separates column headers from data below. Those few lines gives a cleaner look that is easier to read than a fully-lined table, and it follows conventions that help familiar readers more quickly locate information. Also, word processors’ defaults often span a table across the full page width, but most truth tables don’t need to be this large. They’re easier to read when more compact.
Capitalize all logic gate names: AND, OR, NOT, NAND, etc.
Drawing with Software¶
Circuit Drawing Software describes several applications that can work well for this.
Drawing by Hand¶
I don’t recommend this; software produces better results more quickly in most cases.
If drawing circuits by hand, they must be very neat. Use straightedges to keep lines straight; grid paper will aid in aligning and spacing wires and circuit elements; plan out the layout before starting; and so on.
Scanners are available around campus (many copiers can scan, and Ames should have scanners available). Use scanning settings that make the image clear but not too large: 300x300dpi black-and-white is probably good. Ask staff for assistance finding good settings (I know people are available to help in Ames). If your report PDF is several megabytes large, your images are probably far higher resolution than they need to be.
“Scanning” a drawing by taking a photo with a camera will almost never produce clean, professional results.