Reference no: EM133684255
Computer Systems and Cyber Security
Task Description
ACME Toy Company is a national supplier of children's toys. They currently have software to manage their stock inventory but are very worried about hacking and cybersecurity so have decided to move their inventory system to a hardware solution.
You have been tasked to design the digital circuit to help manage their stock inventory and facilitate stock changes in their toy warehouse. The company finds that much of their stock movement happens differently across the year and they want their system to use the month as the main input. Each month is represented as a number from 0 to 11 in the circuit.
0 January
|
1 February
|
2 March
|
3 April
|
4 May
|
5 June
|
6 July
|
7 August
|
8 September
|
9 October
|
10November
|
11December
|
Stock movement through the months varies and needs to be considered across:
January (the beginning of the year needs more stock)
December (the end of the year needs less stock)
Odd months, February, April, June, August, October (are a bit slower)
Even months, March, May, July, September, November (have slightly increased activity)
Month values above 11 are not used and will result in an error displayed for that input.
Part A:
The implementation for this part must use only the three basic logic gates
(AND, OR, NOT).
Each AND gate and each OR gate can have only 2 inputs.
Each NOT gate can have only 1 input.
No other logic gates or circuits are permitted to be used in your circuit for Part A.
You are required to implement a circuit where the user (you) can input a value for the month (M) using values (M1, M2, M3 and M4).
The circuit decodes the M1, M2, M3 and M4 values using a decoder (see lecture notes) made up of only the permitted logic gates. There are five (5) needed outputs as noted in Table 1.
Table 1: Input and output values for Part A.
M
Value
|
|
INPUT
|
OUTPUT
|
M1
|
M2
|
M3
|
M4
|
January
|
Even
month
|
Odd
month
|
December
|
Error
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
2
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
3
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
4
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
5
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
6
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
7
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
8
|
1
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
9
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
10
|
1
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
11
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
12
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
13
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
1
|
14
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1
|
15
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
1
|
For Part A, each of the five (5) outputs will be displayed with a single output pin (green circle in Logisim) resulting in 5 outputs for your Part A circuit:
Part B:
With the Part A circuits in place, the company wants to both keep track of stock levels and manage any changes to stock across the months.
Stock is managed via pallets of toys in the warehouse, and this varies from no stock (0) to a full warehouse of 15 pallets. You will need to present the stock level on these (0-15) pallets with 4-bit memory.
When new stock arrives, or is sold, the stock levels/memory needs to be updated with any stock changes. These changes across the months are represented by a stock calculator that needs to be coded into the logic of the digital solution to be produced. There is a different stock calculator for undergraduate (1007ICT) and postgraduate (7611ICT) students. Please make sure you use the correct calculator in your circuit.
Postgraduate (7611ICT) Stock Calculator
For this part, you will need to implement the 4-bit memory of warehouse stock and add/remove any stock from the warehouse as directed by the stock calculator. The OUTPUTS Columns identifies for each row (January/even month/odd month/December, and error category) the value to add to the stock (January and even months) or subtract from the stock (odd months and December) using an adder/subtraction unit that you have built. The note shows the decimal value of the addition or subtraction.
This is driven by the output from Part A, i.e. indicating what month is currently being processed. The Error output should light an error LED in Part B.
Examples (based on the above table):
Month = 0 (January special case), stock value is increased by 2. Month = 5 (June = odd month), stock value is decreased by 1 Month = 8 (September = even month), stock value is increased by 1 Month = 11 (December special case), stock value is decreased by 3
Month = 14 (Error state), Error signal is generated, stock value does not change
Note this is only a sample of the possible months to aid in understanding the stock calculation table above. Your circuit will need to cover all months and error combinations.
Note:
For Part B you will need to add a button that is pressed by you after the Month
(M) values have been entered. This is to avoid adding input while you are adjusting the input pins for the M values (M1, M2, M3, M4). You will also need to build your own adder units that can also perform subtraction.
For Part B you must use only the following:
The three basic logic gates (AND, OR, NOT). Each AND gate and each OR gate can have only 2 inputs. Each NOT gate can have only 1 input.
XOR gates with 2 inputs (to build adder/full adder circuits)
The D FLIP-FLOP circuit from the Logisim circuit library. The prebuilt D FLIP-FLOP circuit can be used for the current stock level/memory.
Buttons.
Constants.
LED outputs.
Labelling
You must label each circuit and template that you construct with the Logisim Annotation tool and ensure that all the inputs are labelled as instructed in this task sheet. Each circuit page and subcircuit/template must be labelled with:
Your name
Your student number
An appropriate label for each input
An appropriate label for each output
An appropriate label for each subcircuit/template
Templates/Subcircuits
You will be required to use templates (Logisim calls these subcircuits) to simplify the overall circuit design. Instructions for using templates/subcircuits are available on the course site in the Assessment folder where you downloaded this assignment.
Note that when you create the template/subcircuit you must keep them within your single circuit file. Templates that are linked as separate files may not be able to be marked. To create a new template/subcircuit within your current file, use the Project menu and the Add Circuit menu item.
You are required to create a working and connected template/subcircuit for the following components:
The decoder
The Month logic (Table 1)
Part A circuit (for connecting into the Part B circuit)
A full adder
4-bit memory
Report
Your report 2 pages maximum must contain the following sections:
Your details: Name and student number
Screenshots of your circuit diagrams:
A screenshot of your whole circuit including both Part A and Part B. This screenshot may include subcircuits/templates.
A screenshot of your Part A circuit that shows the decoder and toy inventory logic sections. This screenshot may include subcircuits/templates.
A screenshot of the inner circuitry of your decoder. The inner circuitry refers to the actual logic gates and not the subcircuit/template drawing.
A screenshot of the inner circuitry of your toy inventory logic. The inner circuitry refers to the actual logic gates and not the subcircuit/template drawing.
If you have broken your toy inventory logic up into smaller subcircuits, show the inner circuitry for these also.
Circuit Function: A brief (maximum 300 word) description of your circuit describing concisely and correctly in your own words how the circuit operates.
Interview
To be held during the workshop sessions during Weeks 11 and 12. You will be asked to clearly demonstrate your understanding of your circuit and of its operation to your workshop demonstrator. This interview will also serve to receive individual feedback on your work.