Reference no: EM132783843
Assessment - To introduce the principle of design choice for a digital system and become aware of its impact on circuit design and implementation.
Brief Description - To design and build a series of pulse generators using different implementation methods and levels of design abstraction.
Aims
To introduce the principle of design choice for a digital system and become aware of its impact on circuit design and implementation.
Learning outcome 1: Appreciate the impact of design choice
Learning outcome 2: Understand the benefits of aformal finite state machine design procedure
Learning outcome 3: appreciate the problems that non formal design procedures cause
Learning outcome 4: use a commercial circuit simulator to verify adesign.
Learning outcome 5: Implement a design in Verilog HDL Learning outcome 6: Appreciate the benefits of HDLs
Part 1
• Implement the Lab introduction example solutions, seeBBL.
• Open a new project, ideally use the MX7000 device but you must record which device you use. Remember, no spaces in directory path or project/filenames. H:drive is best as its backed up. However, you can you local memory sticks but back themup!
• Open a new design file, check it saves to <project name>. bdf
• Copy and paste the template solution available on BBL. Open up the template, select all and then copy and paste into<projectname>.bdf
• Complete the design, saving regularly. Use the boolean equations given in lectures. SeeBBL
• Compile and correct all compile errors. Note the warning messages, some are not important, but some are! Check you have disk space to compile your circuit, it generates large files!
• Open up a new waveform file. Set the end time and grid spacing, bring is all inputs, output, and registers (post fitted) into the waveformfile.
• Ensure everything has sensible names, groups appropriately and displayed correctly!
• Save the file, it should save to <projectname>.wavautomatically.
• Using appropriate input stimuli, simulate the design to verify it is /or is not working. If it is not working, identify the error and record the process you followed to correct them in your lab book (word document!). You might wish to use some of these examples in your finalreport.
• Modify your solution to the above to produce the following designspecification.
Implement and verify a digital system which will enable a pulse ½ the period (50us) of the clock signal to be selected every 5 clock periods (500us) or every 10 clock periods (1ms) depending on the setting of a single input.
Hint: can the output of the lecture solution be modified in some way? i.e. how can you produce a pulse ½ period of the clock.
The implementation should be a synchronous sequential circuit and not make use of clear or preset controls on the flip-flops. You may assume that you have a 10 Khz clock signal that can be used as the clock input to the pulse generator.
• Investigate and explain the delays in the circuit. i.e. what happens after the clock edge? Ensure you record the device used, different devices will have different timings.
• Using the information about the delays, determine the (approx.) maximum clock speed of the systems. Hint: what is the critical delaypath?
Discuss the design/designs & implementation merits and shortcomings (if any) in your final report and add examples of evidence that show you are meeting the LOs.
Part 2 (This should be almost complete after the first lab)
Quartus has a 4-bit binary counter called "4count" it will be explained in lectures, the data sheet is on BBL. However, you should experiment with it and try to work it out first. It has asynchronous and synchronous functions.
• Investigate synchronous and asynchronous reset function of4count.
• Investigate using a binary counter with a ‘clear'/'reset' facility as an alternativeto the finite state machine in part 1. Hint: this is a counter and decoding output solution.
• Make sure you explain the design process in your report. Always start with a STD and synthesis down to logic gates. Try to summarise the Top Down process used. Don't just copy the solution! NO marks for a workingsolution.
Discuss the design/designs & implementation merits and shortcomings (if any) in your final report and add examples of evidence that show you are meeting the LOs.
Part 3 (This should be designed before the start of the second lab)
• Design and build a programmable pulse generator in which the repetitive periodof 50µs pulses can easily be varied between 100µs and 800µs in steps of 100µs. Hints will be given inseminars.
• Use the Quartus simulator to show that your design is valid and/or explain why it is not working correctly. Print outs of your circuit and simulation results are to be submitted with your report to verify that the implementation is atrue
representation of the design.
Make sure you generate a formal specification, select architecture and show the top down design process. Explain and design choices. NO marks for a correctly working solution on the process.
Discuss the design/designs & implementation merits and short comings (if any) in your final report and add examples of evidence that show you are meeting the LOs.
Part 4 ( During lab 2 you should try to write some Verilog code and simulate it)
a) Implement and verify your design for PART 2 above using a gate level HDL Verilog description. Your description should be identical down i.e. use of names and actual gates. However, you are allowed to replace the 4count modules with one I have given in lectures, either the gate level or function level counter module. Examples will be given inlectures.
b) Implement and verify your behavioural description (i.e. STD) for PART 3 using a pure functional level HDL Verilogdescription.
You should use a signal functional level module, it should not use any gate level Verilog or make use of the "assign" operator.
It is expected that part 4 will mostly be done after the second lab period, but you should ensure that during the second lab period you have simulated some gate level and functional level code.
Attachment:- Digital system.rar