McGill ECSE 323 Winter 2010- Digital Systems and Design
This was a 5 credit course, and the primary reason of most of my all-nighters. That semester’s course was to design a Morse Code decoder machine whereby it receives a Morse Code and output the equivalent ASCII letter and back. The design was programmed using hardware language of VHDL (one of the hardware programming languages other than Verilog) and later programmed and demonstrated onto the ALTERA DE1 Board. I learnt a lot in this course, especially about encapsulating design, timing importance between machines and making hardware more reliable and efficient. Unfortunatley, the professor had taken down my final submission of the whole machine, AND the final report so i cant publish my works here. However, i can give you a picture to give you an idea what it’s like:
- This is an ALTERA DE1 Board which portrays the input 2E and output Morse(green LEDS). Almost every aspect of this picture is programmed, from the choice of LED shape design of ‘2E’ to the allocation of switches functions.The switches at the bottom is for the user to input what type of ASCII character in binary, with ‘0’s as ‘ON’ switch, depending on how you program it. The green light is actually moving Morse Codes, to inform the user that it has the correct Morse(3 green lights as dashes and one green as dots). Timing is very very crucial and very hard to program. This is due to fact that the board runs at a different time than the VHDL machine. For example, you need to ensure that the green light moves as slow as the eye can see but ALSO synchronizes with the programmed VHDL machine that transforms the input 2E into output Morse. We accommodated another switch to control that.The machine can also work the other way around,by entering Morse via pressing the blue switches (like how you SHOULD enter Morse Codes in the olden days) and output the LED output. Some careful thought has been given to consider how a human reacts to pressing a button and differentiating presses between a dash and a dot. TIMING SUCKS TO PROGRAM.