Microsoft Word - project-ALU You have designed and validated various components using VHDL throughout the semester using Xilinx Vivado. In your final VHDL project, you are to design a 16-bit ALU using...

1 answer below »
This is VHDL programming assignment, the instructions is attach follow up. Also i need explanation of what you did because i have to present this in class and i have to know all the detail please. let me know if you have any question



Microsoft Word - project-ALU You have designed and validated various components using VHDL throughout the semester using Xilinx Vivado. In your final VHDL project, you are to design a 16-bit ALU using previously designed components as well as a few new ones. Note that there is no extension for this project and late submissions will get 0. In your report, you need to add necessary comments in each VHDL code (including design and testbench) and provide explanations on the waveforms. Code Submission Guidelines: · Each problem in a homework is a Xilinx workspace folder o Name each workspace folder with a decent name (e.g, hw1_prob1_xor) · Zip all workspace folders in one zip folder · Name the zip file in the following format: ceng4354_hwnumber_yourlastname.zip (e.g., ceng4354_hw1_koc.zip) Project Description: Design the 16-bit Arithmetic Logic Unit (ALU) shown in the figure below. A (16-bit), B (16-bit), Opcode (3-bit), and Mode (1-bit) are the inputs; and ALUOut (16-bit) and Cout (1-bit) are the outputs of the design. A and B hold the values of the operands. Mode and Opcode together indicate the type of the operation performed by ALU. In your project, you can either use previously developed components or design new ones. However, it is recommended to reuse the components you already designed in previous assignments. Components:  Design the Arithmetic Unit that consists of one 16-bit adder, 16-bit subtractor, 16-bit incrementer, and 8-bit multiplier. The least-significant eight bits of A and B are used as inputs of the multiplier. The output will be 16-bit. (This unit was designed previously)  Design a 16-bit Logic Unit which performs the following operations: A and B, A or B, A nand B, A nor B, A xor B, A xnor B, Not A and Not B.(This unit was designed previously)  Design a 16-bit Shifter unit with A, B, Type and Direction as inputs and ShiftOut as output. The value of A should be shifted by the value specified in B. The “Direction” bit is used to determine whether to shift left (0) or right (1) and the “Type” bit is used to determine whether to Shift (0) or Rotate (1) the data. (This unit was designed previously)  Design a 16-bit 2-to-1 Multiplexer. The MUXes are utilized in order to route the outputs of functional units to ALU output. (This Multiplexer was designed previously)  Design the controller that is responsible for generating the required control signals for all functional blocks in your design. Select is used to select the functional unit for the corresponding operation in Arithmetic Unit. Sel1 and Sel2 are utilized as select signals of MUXes. Sel_Cout is used to control the cout of ALU, its value is “1” when ALU doing arithmetical operations; otherwise, it is “0”. Direction bit determines the direction of shift operation and Type bit determines the way of shifting. Opcode is used to select the type of operation and could be used as input to all three functional units. Each block shown in the figure should be an independent component that you will route using a port map in your final design (The ALU). Inputs A, B are connected to the three blocks in the ALU: Arithmetic Unit, Shifter Unit and the Logic Unit (not shown). NOTE: · The 8-bit multiplier has only 16 bits as output, so the carry out of the Arithmetic Unit must be 0 when a multiplication operation is performed. · The carry out of the Arithmetic Unit must be 1 after incremental operation is performed when current A’s value is 0xFFFF. For example: If current value of A = 0xFFFF, then A = A + 1 = 0x0000 and carry out = 1. Figure 1: ALU Diagram The following table summarizes the overall behavior of the ALU: Mode Opcode Operation 0 000 A nor B 0 001 A nand B 0 010 A or B 0 011 A and B 0 100 A xor B 0 101 A xnor B 0 110 Not A 0 111 Not B 1 000 A * B 1 001 A + B 1 010 A – B 1 011 Increment A ( A +1) 1 100 Shift Left(A,B) 1 101 Shift Right(A,B) 1 110 Rotate Left(A,B) 1 111 Rotate Right(A,B) Your test bench must include a “good” set of test cases that would test the functionality of your designs. Any missing particular case would make you lose points. The test bench is what determines whether your design is working or not. So, make sure you think well about how to CENG 4354 Digital System Design CENG 4354 Digital System Design CENG 4354 Digital System Design design one. In your report, make sure to include the VHDL codes of the newly designed components along with their test benches and the commented waveforms. If you are using a previously designed component without any changes, state this in the report and only include source code of the component. Grading Guidelines: 1. Arithmetic Unit 5 pts 2. Logic Unit 5 pts 3. Shifter Unit 5 pts 4. MUX 5 pts 5. Controller 15 pts 6. Good test bench 10 pts 7. Commented waveforms 10 pts 8. ALU Design 45 pts Total: 100pts
Answered 3 days AfterApr 16, 2022

Answer To: Microsoft Word - project-ALU You have designed and validated various components using VHDL...

Sathishkumar answered on Apr 18 2022
88 Votes
Main (ALU)
16-bit Arithmetic Logic Unit (ALU) contains A (16-bit), B (16-bit), Opcode (3-bit), and
Mode (1-bit) are the inputs; and ALUOut (16-bit) and Cout (1-bit) are the outputs of the design. A and B hold the values of the operands. Mode and Opcode together indicate the type of the operation performed by ALU.
Components used in ALU is
1. Controller
2. Arithmetic Unit
3. Shift unit
4. Logical Unit
5. 2-to-1 Multiplexer
Controller
Controller is used to generate control signals for other units such as arithmetic unit, logical unit, shift unit and multiplexers.
opcode...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here