Digital Design - Project Assignment 1 - Fall 2008 | ECE 3550, Assignments of Digital Systems Design

Material Type: Assignment; Professor: Grantner; Class: Digital Design; Subject: Electrical & Computer Engineer; University: Western Michigan University; Term: Fall 2008;

Typology: Assignments

Pre 2010

Uploaded on 07/22/2009

koofers-user-5el
koofers-user-5el 🇺🇸

9 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ECE 3550 DIGITAL DESIGN
FALL 2008
Project Assignment #1
(Team Project)
Total: 40 pts. (10 % of the course grade)
Due 4:00pm, Tuesday, October 21, 2008
Design, simulate, build, and demonstrate the correct operation of the serial data
processing module specified below. A functional block diagram is given on Page 2.
Use one Xilinx Spartan3E FPGA chip (the one that is mounted on your Xilinx Nexys 2
Board), as well as off-the-shelf ICs and other parts (as needed). Input signals are to be
driven by micro switches, output signals are to be displayed by Bar-LED Units. Pay
attention to the control of the bi-directional I/O Port of the ‘HC299 Shift Register: after
an operand has been loaded into the shift register the micro switches should be
electronically separated from the port (by means of a Three-State buffer chip) to allow
displaying the contents of the shift register. You may assume that the input signals to the
system are properly synchronized with respect to the CLK signal (i.e., you will set/reset
them that way). Make sure that your CLK signal will be bounce-free.You are to
provide for your own Nexys 2 Board,Circuit Bread Board and electronic parts,
respectively.
Description of Operation
Initially, signal DONE (output) is asserted (High), signal OVF (arithmetic overflow,
output) is deasserted (Low), signal outputs OP_LD (Operand Load) and RES_LD
(Result Load) are also deasserted (Low). Signal START (input) should be in deasserted
(Low) state. The two shift registers must be in Hold Mode, i.e., their contents are being
displayed on Bar-LED modules and the image won’t change while a train of clock pulses
is received.
In order to begin with a new arithmetic operation, the user should set up the two
operands (Operand_1 and Operand_2 in 8-bit,in2’s complement representation)
using DIP Switches and then assert the START signal. In response, the System
Controller (SC) should deassert DONE, and assert OP_LD.While OP_LD is high,the
SC should first load in parallel (broadside) the two operands into the associated shift
registers (‘HC299 Universal Shift Register with 3-State Outputs, or compatible part).
After the parallel load is executed the SC should control the shifting of the two operands
from the shift registers into temporary storage registers on the Spartan3E chip by
placing the shift registers in Shift Right Mode. At any time during the load process
signal START should be deasserted by the user. After the two operands are moved into
the storage registers signal OP_LD should be deasserted by the SC.
After the two operands are secured in their storage registers the arithmetic operation
should performed as follows: RES = (Operand_2 Operand_1) signed-divided by 8,
where Operand_1 stands for the data received from Shift Register #1, Operand_2
stands for the data received from Shift Register #2 and RES stands for the result in 8-bit,
2’s complement representation. The SC should then shift out the bits of RES into
Shift Register #1 and simultaneously assert signal RES_LD. When the shift out
operation is concluded RES_LD should be deasserted and DONE should be asserted.
pf3

Partial preview of the text

Download Digital Design - Project Assignment 1 - Fall 2008 | ECE 3550 and more Assignments Digital Systems Design in PDF only on Docsity!

ECE 3550 DIGITAL DESIGN

FALL 2008

Project Assignment # (Team Project) Total: 40 pts. (10 % of the course grade) Due 4:00pm, Tuesday, October 21, 2008

Design, simulate, build, and demonstrate the correct operation of the serial data processing module specified below. A functional block diagram is given on Page 2. Use one Xilinx Spartan3E FPGA chip (the one that is mounted on your Xilinx Nexys 2 Board), as well as off-the-shelf ICs and other parts (as needed). Input signals are to be driven by micro switches , output signals are to be displayed by Bar-LED Units. Pay attention to the control of the bi-directional I/O Port of the ‘HC299 Shift Register: after an operand has been loaded into the shift register the micro switches should be electronically separated from the port (by means of a Three-State buffer chip) to allow displaying the contents of the shift register. You may assume that the input signals to the system are properly synchronized with respect to the CLK signal (i.e., you will set/reset them that way). Make sure that your CLK signal will be bounce-free. You are to provide for your own Nexys 2 Board , Circuit Bread Board and electronic parts , respectively.

Description of Operation Initially, signal DONE (output) is asserted (High), signal OVF (arithmetic overflow, output) is deasserted (Low), signal outputs OP_LD (Operand Load) and RES_LD (Result Load) are also deasserted (Low). Signal START (input) should be in deasserted (Low) state. The two shift registers must be in Hold Mode , i.e., their contents are being displayed on Bar-LED modules and the image won’t change while a train of clock pulses is received.

In order to begin with a new arithmetic operation , the user should set up the two operands ( Operand_1 and Operand_2 in 8-bit , in 2’s complement representation ) using DIP Switches and then assert the START signal. In response, the System Controller (SC) should deassert DONE, and assert OP_LD. While OP_LD is high , the SC should first load in parallel (broadside) the two operands into the associated shift registers ( ‘HC299 Universal Shift Register with 3-State Outputs , or compatible part). After the parallel load is executed the SC should control the shifting of the two operands from the shift registers into temporary storage registers on the Spartan3E chip by placing the shift registers in Shift Right Mode. At any time during the load process signal START should be deasserted by the user. After the two operands are moved into the storage registers signal OP_LD should be deasserted by the SC. After the two operands are secured in their storage registers the arithmetic operation should performed as follows: RES = (Operand_2 – Operand_1) signed-divided by 8 , where Operand_1 stands for the data received from Shift Register #1, Operand_ stands for the data received from Shift Register #2 and RES stands for the result in 8-bit , 2’s complement representation. The SC should then shift out the bits of RES into Shift Register #1 and simultaneously assert signal RES_LD. When the shift out operation is concluded RES_LD should be deasserted and DONE should be asserted.

OVF should only be asserted if an arithmetic overflow has occurred. Both shift registers should now be in Hold Mode. The whole operation may be repeated at this point

Assume 8-bit 2’s complement representation for the two operands (that is, you will be setting up the data in 2’s complement form, and the results will also be generated in 2’s complement form). The system shouldn’t change its state (RES remains unchanged) by receiving CLK pulses while the DONE signal is asserted (Hold Mode). You should provide for a RESET# signal ( active low ) to reset the whole system to its initial state at any time.

In order to facilitate the testing and debugging of the project a set of test data along with the expected results will be posted on the Class Web Page.

Tasks a) Give the control algorithm for the System Controller (SC) in the form of an ASM chart along with comments. (4 pts.) b) Draw a detailed schematic diagram for the whole system. Clearly show the partitioning of the system into standard ICs, other parts, and the FPGA chip. If you have implemented any logic functions external to the FPGA then you should document them by Boolean expressions. (6 pts.) c) Use the Xilinx ISE 10.1i tools along with Mentor Graphics ModelSim to develop the FPGA segment of the system. You should prove the correctness of your design by post-route simulation. Turn in the printouts of your design files ( .vhd , and .do files, as well as sections of your Pad Report with the resource utilization and the device pinout diagram , respectively), and your simulation timing diagrams. Comment on your simulation results. Your comments should refer to each pair of operands applied along with the result and the status of the OVF signal. Hint : Force pin assignments for your signals through the User Constraints Utility so when you need to modify your VHDL design file then you can still keep the wiring to the Nexys 2 Board unchanged. (10 pts.) d) Build the whole system using your Nexys 2 Board and your Bread Board and demonstrate its correct operation to the course instructor. (15 pts.)

e) Submit a Project Report. (5 pts.)

Each Team should submit a joint Project Report. The report should have the main sections as follows: Introduction , Design , Design Evaluation , and Conclusion. Your solutions to Tasks a) to d) should be represented in the report. Demonstrations will be arranged in the Microcomputer Lab, Room B-214. Dates and times will be posted.

Note : you will lose 4 pts. by each day your project ( a demonstrated circuit along with the report ) is tardy. No credit will be given if the project is late by five business days.