代写Computer Fundamentals / COMP1027 (CSF) / Semester 1代写C/C++程序

Computer Fundamentals / COMP1027 (CSF) / Semester 1

Module Assessment Sheet for 2024-2025

Assessment Name Coursework 1

Weight 40%

Description and Deliverable(s)

This coursework has THREE parts, as detailed below:

Part 1 focuses on Elementary Logic Gates

Part 2 focuses on Combinatorial & Sequential Circuits

Part 3 focuses on The Hack Computer

Important Notes

1. For this coursework, all tasks are made as a MINI GROUP WORK. You are encouraged to divide the different tasks among yourselves, within the group. You should finish your tasks faster this way. However, you must maintain a healthy communication between yourselves to avoid conflict and delay in completing this coursework by the stipulated deadline. The effectiveness of your group will be assessed via the peer assessment.

2. You MUST maintain the provided folder structures. All files for Parts 1, 2 and 3 will be under THREE folders. Three additional sub-folders will be added for part 3 to reflect sections 3.1, 3.2 and 3.3. Please be observant to this and abide to the provided zip file as well as its folder and sub-folder structure and file names.

Files to Download

CW1-Files.zip provides all the skeleton .hdl and .asm (as well as most of the related .tst and .cmp files).

1. Download the zip file, from the “Coursework 1” area on Moodle.

2. Extract the files and fill in the required HDL and Assembly codes, as per the detailed instructions given in this assessment sheet.

MAINTAIN the same folder structure, file name, and all test and compare files when you submit. You can add any additional files you may need to get your submissions working correctly.

Part 1 focuses on Elementary Logic Gates

Tessa is a talented baker who wishes to open her own café in 2025. In order to realise her dreams, she needs to secure a location whereby her café can be open, purchased relevant furniture, enlist several helpers, and prepare a set of delightful choices for the customers to choose from. For the short-term, she will be happy to successfully fulfil two to three of the four conditions, namely a location and furniture or menu.

1. Generate a truth table to represent the conditions that Tessa needs to fulfil to ensure her café is successfully operational by February 2025. Please represent location, furniture, helpers and menu as A, B, C, and D in your truth table. Output should be represented as F.

2. Based on the truth table in (1), write out the pre-simplified expression followed by the simplified expression using the Basic Identities of Boolean Algebra in Figure 1. You are required to show your working details (Boolean Function, Boolean Expressions, Simplifications, …, etc.) in the Truth Table and Simplification.docx.

Figure 1

3. Based on your answers in (1) and (2), respectively, implement a Tessa decision chip that prioritise what she needs to address to ensure a timely opening of her café. NOTE: to ensure that your test cases are aligned with our test cases, please only use 1-bit input.

SUBMISSION: SUBMIT *your* completed Tessa.hdl file. (and all associated testing scripts & compare files) and Truth Table and Simplication.pdf. NOTE: we’ll also use our own test versions during marking.

Part 2 focuses on Combinatorial & Sequential Circuits

1. Implement an ALU chip (MyALU), of your own design, that computes 20 functions (the 18 functions covered in the lecture, in addition to the X XOR Y and X XNOR Y).

2. Table 1 shows the functions (Output), as per the required order and the 5 control bits (C4, C3, C2, C1, C0) with some samples of their values (you are required to complete them according to the Decimal values in the left column).

3. The .hdl skeleton is provided, but you will need to create your .tst and .cmp files for this chip.

Table 1: MyALU Functions (Output)

SUBMISSION: SUBMIT your answers, i.e., completed MyALU.hdl files. (And all associated testing scripts & compare files).

Part 3 focuses on The Hack Computer

Additional Information

• In your 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 part 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.

(i). Firstly, the MEMORY will be built according to the HACK architecture.

(ii). 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.

(iii). Finally, all are connected as one chip (the “Computer”).

• You should go through the Lecture slides, Chapter 5, and Appendix A of the primary text carefully.

• More lab reading resources are available at www.nan2tetris.org/05.php. In particular, “Chapter 5” and its relevant appendices.

SECTION 3.1: Assembly Code

In section 3.1, you are required to provide two Assembly programs (for the HACK computer) performing the following tasks:

a) An Assembly code that does Power:

• Implement an Assembly program to calculate the exponential power of a given number m, P(m, e).

For example: if m = 2 and e = 5 then P(m, e) would be 2*2*2*2*2 = 32.

• The user should enter the value of the number m into R0, i.e., RAM[0] and e into R1, e.g., RAM[1].

• The result P(m, e) should be saved in RAM[2].

• SPECIAL CASE: In ne – if e is ZERO, your program should store 1 in RAM[0] and end the program.

b) An Assembly code that does Factorial:

• 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

• The user should enter the value of the number n into R0, i.e., RAM[0].

• The factorial result F(n) should be saved in RAM[1].

SUBMISSION: SUBMIT your answers, i.e., completed Power.asm & Factorial.asm files. (And associated tst & cmp files).

SECTION 3.2: The HACK Computer

Task A: Memory

• 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).

• 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 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 & cmp files).

Task B: CPU

• Implement the CPU chip.

Hint: This may be the most challenging task – so, give it ample 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], ut=destD);

:

:

// A register and input mux

Mux??(…);

?? (…);

ARegister (…);

// D register

DRegister(in=aluOut, load=destD, ut=dReg);

// ALU and input mux

Mux16 (…);

ALU (…);

// 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, ut=jump);

:

:

PC (in=aReg, reset=reset, inc=true, load=jump, out[0..14]=pc);

Note: the above pseudo-code is for illustration purposes only. It may NOT be complete/accurate for the HDL Simulator. You should only use it as a guide/hint.

SUBMISSION: SUBMIT your answers, i.e., completed CPU.hdl file. (And associated tst & cmp files). See section 3.3 for details of additional tasks.

Task C: Computer

• Implement the Computer chip.

Hint: This is easy and as a bonus only 3-lines of code:

CPU (inM=??, instruction=??, reset=??, WriteM=??, utM=??, address=??, pc=??);

Memory (in=??, load=??, address=??, ut=??);

ROM32K (address=??, ut=??);

• The provided zip file contains a couple of test files (e.g., ComputerMax, ComputerAdd, ComputerRect), to test your Computer chip. Make sure to utilise them and properly test your chip before submission.

SUBMISSION: SUBMIT your answers, i.e., completed Computer.hdl file. (And associated tst & cmp files).

SECTION 3.3: Circuitry Diagram and Justification

In section 3.2 – task B, you would have designed a circuitry diagram prior to implementing the CPU chip. As such, you are required to submit your full circuit diagram of your CPU implementation, along with a 2-page summary justifying your circuitry design. Focus should be on part(s) of your CPU that you creatively designed and implemented, which are different to the default design we discussed in the lecture. Within folder PART 3 in the provided zip file contains a Word document (Justification.docx) for you to add your justification. Please make sure to fill your details (e.g., name and studentID) as well as your fellow group team members. Also, please indicate clearly which group are you from. NOTE: your justification should not exceed 2 pages - additional pages will incur a 5% marks penalty for each page. You may add relevant figures and tables to support your justification.

SUBMISSION: SUBMIT your answers, i.e., completed Circuitry Diagram.pdf and Justification.pdf files.




热门主题

课程名

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
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图