首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
COMP1027程序讲解、Java,c++,Python编程语言辅导 辅导Python编程|讲解SPSS
项目预算:
开发周期:
发布时间:
要求地区:
COMP1027 – Computer Fundamentals
Session Semester Autumn
Module Name Computer Fundamentals Code COMP1027
Module Convenor(s)
(CW Convenor in Bold)
Amr Ahmed
Coursework Name Exercise 3 (part 3 of the Coursework) Weight 20%
Deliverable
(a brief description of what is
to be handed-in; e.g.
‘software’, ‘report’,
‘presentation’, etc.)
Please see details (last page) in the assignment document (below), including
list and description of the required tasks and details of the submission.
Group Submission ONLY
Details explained in the “Submission Details” section (last page, below)
Format
(summary of the technical
format of deliverable, e.g.
“C source code as zip file”,
“pdf file, 2000 word max”,
“ppt file, 10 slides max”, etc.)
As explained in the “Submission Details”, (last pages, below).
All the required files.
Issue Date 9
th November 2020 (HACK already started in Lab on 5th Nov)
Submission Date November 2020 (22:00) nd 22
Submission Mechanism Online, through moodle.
Late Policy
(University of Nottingham
default will apply, if blank)
Feedback Date Usual 15 working days.
Feedback Mechanism Online, on moodle.
Instructions See the Ex3 document (below)
Assessment Criteria All chips & code will be tested through testing scripts.
Developed and working properly full mark of the component
(unless there is any concern of any cutting corners/plagiarism,….etc.).
Missing any required file(s), using different formats, naming,…etc. will attract
presentation penalty.
Marks of this Ex3 submission will be modified by multiplying by a
factor from the VIVA process, which can heavily affect the final mark
(depending on the demonstrated understanding of the group &
individuals in the viva)
COMP1027 – Computer Fundamentals
2
Exercise 3: The Hack Computer (All together)
(Covering Teaching Weeks 7-9)
[ GROUP Submissions are Assessed, worth 20%]
Introduction
In total, the coursework (lab work, split into multiple submissions, and assignments) is worth
50% of your final mark.
This exercise has TWO parts, as you can see below. But first, in Task 0, you need to download
the files required for this exercise, which specifies the folder structure and names for the
submission.
Task 0: Download Files [ALL]
Ex3-Files.zip provides all the sekelton .hdl and .asm (as well as most of the related tst and cmp
files).
Download the Ex3-Files.zip file, from the “Exercise 3” area on moodle.
Extract the files and fill in the required HDL and Assembly codes, as per the tasks in this
document (both part1 and part2, in there respective folders).
MAINTAIN the same folder structure, file names, and all test & compare files, when you
submit. You can add any additional files you may need to get your submissions working
properly.
Marking note
See the associated “Marking Sheet”, on moodle, for the breakdown of marks.
You are allowed to use Built-in chips, for chips/gates already done in the previous exercises
and/or any auxiliary chips that you may need (except any of those that are required, to be
developed, in this exercise 3 itself).
All chips & code will be tested through testing scripts.
Marks of this Ex3 submission will be modified by multiplying by a factor from the VIVA process,
which can heavily affect the final mark (depending on the demonstrated understanding of the group &
individuals in the viva)
This exercise has TWO parts.
COMP1027 – Computer Fundamentals
3
Part 1: Assembly Code [ 35% of Ex3 marks]
In this part of the assignment, you are required to provide two Assembly
programs (for the HACK computer) to the following tasks:
a. An Assembly code that does Multiplication: [GROUP]
Implement a multiplication Assembly code that multiplies R1 (RAM[1]) and
R2 (RAM[2]) and stores the result in R3 (RAM[3]).
Hint: Obviously, there is no multiplication instruction/code to use (the underlying
ALU can only add numbers). So, how do you perform a multiplication for two
numbers A and B? Well, you can just add A for B-numbers of times. For example,
if B is 3, then A x B is the same as A + A + A. Here, you would treat A as a stored
constant while B is a variable that you keep track of.
If you make no progress. Why don’t you implement the “algorithm” in CLanguage
and use what you learn from the “Addition” example, demonstrated in
details in the lecture and lab, to come out with the corresponding machine code for
this task.
b. An Assembly code that does Factorial: [GROUP]
o Implement an Assembly program to calculate the factorial of a given
number n, F(n). A factorial of a number is given by:
F(n) = n*(n-1)*(n-2)*......*2*1
o The user should enter the value of the number n into R0. i.e. RAM[0]
o The factorial result F(n) should be saved in RAM[1].
SUBMISSION: SUBMIT your answers, i.e., completed Mult.asm and Factorial.asm
files (and all associated tst and cmp files).
P.T.O
COMP1027 – Computer Fundamentals
4
Part 2: The Hack Computer [65% of Ex3 marks]
Context, Description, and suggestions:
In the previous exercises and lab sessions, we used combinatorial and sequential logic
circuits to construct many of the various core logic circuits that form the basis of a CPU and
Memory.
This exercise concludes all the effort by completing the construction of the Hack computer,
i.e. putting it all together and have the Hack Computer working & executing instructions.
o Firstly, The Memory will be built according to the Hack architecture.
o Secondly, the CPU will combine the ALU and other circuits. But you’ll need to
develop the “Control Unit” that manages the data flow and execution of instructions.
o Finally, all are connected together as one chip (the “Computer”)
o You should go through Lecture slides, Chapter 5 and Appendix A of the primary text
carefully.
More lab reading resources are available at www.nand2tetris.org/05.php. In particular, go to
the Resources subsection, download “Chapter 5” (and relevant appendices).
Note that for this exercise, all tasks are made in Group work. You are encouraged to break
your group into subgroups, each working on a different task. You should finish your tasks
faster this way. However, you must maintain communication between subgroups, that is,
every single member is expected to be able to explain the design & implementation for each
individual task (this will be verified during the VIVA examination, after the submission).
NOTEs:
Do not worry if you didn’t manage to complete any of the previous exercises, or your
implementation (from previous exercises) doesn’t work correctly since nand2tetris provides
built-in implementations (implemented in Java) of all the required chips. To ensure you use
these built-in implementations, we recommend you keep the files for this exercise away from
the previous exercises (and you MUST maintain the provided folder structure).
All files, for Part2, will be under ONE folder (i.e. NO Sub-folder
under Part2). Please see & stick to the provided zip file & its folder
structure & file names
Task A: Memory [GROUP]
Implement the Memory chip.
Hint: The specification for the memory chip is described in the lecture and Chapter 5. Note
that you would have to use RAM16K, Screen, and Keyboard ‘parts’ (built-in, but you should
refresh yourself with its interface specifications in Chapter 5, for the latter two).
COMP1027 – Computer Fundamentals
5
If you make no progress. You need to understand what makes a memory chip – there is this
need for addressing/selecting “memory banks”. How do you select between 3 outputs
(RAM16K, Screen, Keyboard)? (Mux4Way*? DMux4Way*?). You still need to
interpret/decode a 15-bit address and pass them through to the right “memory banks”
(RAM16K, Screen, or Keyboard). The memory addresses are already given to you (e.g.
lecture slides, and Chapter 5). The ‘logic’ for interpretation/decoding would make more sense
once you convert them to binary. You would note that only certain address bits are crucial for
selection.
SUBMISSION: SUBMIT your answers, i.e., completed Memory.hdl file (and associated tst
and cmp files).
Task B: CPU [GROUP]
Implement the CPU chip.
Hint: This may be the most challenging task – So, give it enough attention. The CPU
implementation (framework) is given in the lecture and Chapter 5, Section 5.3.1. In general,
the CPU as a complex logical gate would fetch and execute instructions in their
corresponding A- and C-Instruction codes (16-bits long).
If you make no progress. Look at the Chip diagram of CPU implementation in the lecture
and in Chapter 5. Adopt a divide-and-conquer approach, that is, try to solve the problem by
parts. Use this skeleton and compare with the Chip diagram:
// Instruction decode
// Use a combination of elementary logical gates to decode the instructions
// You should first decode between A and C-Instructions,
// then the computation and destination
.
.
And (a=cInst, b=instruction[4], out=destD);
.
.
// A register and input mux
Mux?? (…);
?? (…);
ARegister (…);
// D register
DRegister(in=aluOut, load=destD, out=dReg);
// ALU and input mux
Mux16 (…);
ALU (…);
COMP1027 – Computer Fundamentals
6
// PC with jump test
// Use a combination of elementary logical gates to implement the truth table for jump
// functions, given in lectures.
// For example, try to figure out why one implementation would make use of:
// Or (a=jle, b=jgt, out=jmp);
.
.
PC (in=aReg, reset=reset, inc=true, load=jmp, out[0..14]=pc);
NOTE: the above pseoudo-code is for illustration purposes only. It may NOT be complete/accurate for the HDL
similar. You only use it as a guide/hint.
SUBMISSION: SUBMIT your answers, i.e., completed CPU.hdl file (and associated tst and
cmp files). You are also required to submit a full circuit diagram of your CPU implementation.
Task C: Computer [GROUP]
Implement the Computer chip.
Hint: This is easy, and as a bonus only 3-lines of code:
CPU (inM=??, instruction=??, reset=??, writeM=??, outM=??, addressM=??, pc=??);
Memory (in=??, load=??, address=??, out=??);
ROM32K (address=??, out=??);
The provided zip file contains couple of test files (e.g. ComputerMax, ComputerAdd,
ComputerRect), to test your Computer chip. Make sure to utilize them and properly test your
chip before submission.
SUBMISSION: SUBMIT your answers, i.e., completed Computer.hdl file (and associated
tst and cmp files).
P.T.O
COMP1027 – Computer Fundamentals
7
FINAL SUBMISSION INSTRUCTIONS
1. For All Tasks, students are required to work in small groups (as listed).
2. Each group will have ONE submission ONLY (by one nominated member of the group).
3. The nominated member, for each group, should notify us about the submission and indicate
which group he/she represents.
4. We reserve the right to ask all/some students to explain any/all of their submitted work at
any time. Failure to answer/respond appropriately could affect your marks.
5. The group submission must be submitted through Moodle as a ZIP archive containing all
the requested files (same folder structure as per the downloaded file). The ZIP file should
be named as CSF-Ex3-XX.zip, where XX is the Group Number.
6. NOTE about the Compressed File:
a. Use .ZIP format ONLY (any other compression formats is NOT acceptable and will
result in you losing marks for not adhering to instructions).
b. Compress the whole folder structure/tree only (see the provided zip file, for an
example). i.e. Avoid compressing each individual folder/file. Nested compression will
prevent the marking process and could result in marking scripts failing, and hence
losing a lot (if not all) of marks.
Click on the “Exercise 3” link under “Coursework Submission”. Take note of the
Deadline 22nd November 2020, 22:00.
Any submission after this will be subject to the usual penalty rule.
There will be a VIVA (oral examination) after the submission. The result of
the viva could highly affect the final mark of the group and individuals
(depending on the demonstrated understanding in the viva).
------------------------------------------- Best Wishes -----------------------------------------------
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代写math 1151, autumn 2024 w...
2024-11-14
代做comp4336/9336 mobile dat...
2024-11-14
代做eesa01 lab 2: weather an...
2024-11-14
代写comp1521 - 24t3 assignme...
2024-11-14
代写nbs8020 - dissertation s...
2024-11-14
代做fin b377f technical anal...
2024-11-14
代做ceic6714 mini design pro...
2024-11-14
代做introduction to computer...
2024-11-14
代做cs 353, fall 2024 introd...
2024-11-14
代做phy254 problem set #3 fa...
2024-11-14
代写n1569 financial risk man...
2024-11-14
代写csci-ua.0202 lab 3: enco...
2024-11-14
代写econ2226: chinese econom...
2024-11-14
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!