Project #2 Updates
There have been a number of questions regarding the specification so here are some answers to help clear up the questions
- Can I use MSI devices for this project?
Yes, but I want to see you produce these and properly document them. E.g. use 1-bit adders to build a 4-bit adder and use that. Use 1-bit comparators to build an 8-bit comparator and use the 8-bit device. The decomposition of a problem into a bit-slice solution that can be cascaded is an important topic in the course.
- When does the car shift to gear N?
The car changes gears according to the speed and the gear selected by the user and the current speed. Remember, the system is combinational - so there is no concept of speeding up or slowing down. Here is a better summary of when to change to each gear. Let's call the gear selections Drive (D3), Drive in 2nd gear (D2), Drive in 1st gear (D1). If we have OverDrive engaged then we are in OD3. We then have the transmission selections which are 1st, 2nd, and 3rd gear.
Speed| OD3 | D3 | D2 | D1 |
0 | 1st | 1st | 1st | 1st |
| | | | |
15 |------|------|------| |
| 2nd | 2nd | 2nd | |
25 | | | |------|
|------|------| | 2nd |
40 | 3rd | 3rd | | |
| | | | |
50 | | |------|------|
| | | 3rd | 3rd |
60 |------| | | |
| 4th | | | |
Speeds are to be greater-than or equal-to the value stated to move you to the next higher gear. Less-than puts you in the lower numbered gear.
The above table is part of refining the requirements of a project. Typically a project starts with a simple verbal statement and gets refined. I'm looking for you to do the refinement - but to make sure we are all on the same page, the above is the current set of notes that management (me in this case) have signed off as the project goals. Remember, the inputs and outputs of this system are defined for you. You must stick to the specification. Some cases that are not defined. What happens if I pick reverse and 100mph? How about neutral and 10 mph?
- Is there a limit on the speed?
Sure, 85 mph. It's a cheap car with a small engine. But you never know when someone might modify the engine to squeeze a few more horses out of it boosting the speed a little more.
- What is the one-hot coding thing in the project?
I put this in on a whim. It does not change the project at all. I was expecting everyone to ask why I didn't put the gears in the transmission in order. The reason would have been that when the car was first built, it only had 3 gears and the designer chose to use 001, 010, and 100 for the codes. Later, a 4th gear was added forcing them to use another code 011. Notice that the initial numbering is one-hot (only one bit is set in each code). This can lead to some nice reductions in logic at the expense of future expansion and/or the use of extra bits.
- I know how to start the car, how do I shut it off?
You don't. The start controls the starter motor. The car magically turns off when the key is pulled out of the ignition. There is no way to indicate this in the project. The user will feel the rattling engine sputter to a complete stop and they will finally be able to hear again (seeing will return to normal when the smoke clears the garage).
Barry E. Mapen