Q. What's up with these A, B, and C decoders? Do I have to design those? A. In the Matloff handout, the lines coming out of the decoders are connected to tri-states in the regfile, allowing only selected data to be put onto the A and B bus. With the C decoder, it is possible to have none of the lines active, depending on the ENC bit. For this lab, you do not have to explicitly define decoders - you may have the A, B, C, ENC and subcycle4 lines hooked up directly to your regfile. Inside your regfile, you may use MUXes instead of tri-states. Q. Hey! Where does the memory go? It's not on the diagram! A. Remember, the memory needs to be connected to the MAR and MBR. Q. Well, then why is there only one line from the MBR to memory? A. The diagram assumes a bi-directional bus from the MBR to memory. You can use two seperate buses instead. Q. What should my subcycle generator generate? A. Your subcycle generator should generate something that looks like: _ _ _ _ _ _ clk __| |_| |_| |_| |_| |_| |_ _ _ 1 __| |_____________| |_____ _ _ 2 ______| |_____________| |_ _ 3 __________| |_____________ _ 4 ______________| |_________ You can create a normal clock input, and feed it into your subcycle generator - your generator should output a similar-looking waveform. Q. Hey... aren't you supposed to be DIVIDING the clock signal? A. Well, yeah.. technically.. but this will probably be easier for you and the grader. :) Q. What are these .mif files? How do I make them? When MaxPlus compiles the LPM_ROM and LPM_RAM_DQ components, it needs to know what values are inside of them initially. It does this by looking at .mif files. A .mif file is just a simple text file (you can look at it with a text editor), which basically sets the data values at each address. You can set components to initialize to these values by right-clicking the component, selecting "Edit Ports and Parameters", and then setting LPM_FILE to the .mif filename. To make a .mif file, grab the mc2mif.tar.gz file. Be sure to read the README on how to use mic2mif and mac2mif! Q. Ok. So I got all the parts built and assembled. How do I know if the darn thing works? A. *IMPORTANT* (This will probably also be posted seperately) You need to add an additional output port to your register file. This output should be directly connected to the AC. This way, you can add this line to your waveform and be able to check the AC every step of the way. Hopefully, at one point in the simulation, the AC will contain the negative of the determinant! It's also extremely helpful to add lots and lots of pins to your circuit and waveform for debugging! Q. Hey! It worked! So now I'm thinking about doing the extra credit. A. Cool. Note that the extra credit portion of the lab will be completely seperate from lab 2. You will need to turn in lab 2 as usual, and still need to get it graded, etc. Also, your lab 2 must be 100% correct before you can do the extra credit. Once your lab 2 has been graded, then you may go onto the EC. Lab 2 EC will allow you to download your circuit onto an actual hardware board, and watch it run. Your part of the EC will require you to add some additional interface logic to your circuit. The interface logic will be provided, so all you really need to do is wire it up in MaxPlus. Also note however, that in order to download to the board, your circuit must compile and simulate under TIMING, and also fit onto the physical device. In fact, you may have to shave the MAR (and the RAM) to 7 bits to make it fit.