Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mini Projects are done batch wise, in batches of two. This need not be the same as the batch
formed for Lab Exercises, you can choose your project partner. You can choose to do it alone
if you prefer. CPU project can be done by up to 3 batches together. Please go through the
literature for clarification on algorithms. Choose the appropriate device for the design to fit
in. Documentation should consist of the following. Mini project should be demonstrated on
FPGA Board. A specific project is allotted to a maximum of 3 batches.
Once you decide on the project partner, send me an email with names of batch members and
a list of at least 5 projects in the order of preference. I would allot project on first come first
basis.
Go through the references and evolve a realistic specification for the project. You are free to
choose the format for various registers. Concentrate on the core functionality first. Take care
of various issues like timing, synchronization (at various levels), interlocks, contention,
arbitration, overflow, underflow, initialisation, reliability, (fault tolerance), scalability etc.
You can use Digilent BASYS3 Board or Digilent ZYBO FPGA Board for implementation,
these FPGAs has built-in ADC (XADC).
Following Pmods that can be interface to these boards are available. Keypad, LCD Display,
ADC, and DAC.
Only few references are provided, search the IEEE Explore, ACM Digital Library and
Internet for additional literature.
Mini Projects
1
2. Hardware SORT (One student Project)
Design hardware to sort 8-bit numbers stored in an array. Core functionality can consist of a
variable length array.
2
11. Digital PLL Implementation
Implement a DPLL, this should be designed to have minimum synchronization time, i.e. if
input clock changes, within minimum clock cycles output should be synchronized.
3
18. Audio Player 2
Play out a stored wave file through Line Out Codec in ZYBO Board, output it to Line out
through Codec
19. UART
Design a UART. Baud rate is fixed. Use a single clock, 16 times the baud rate as the system
clock. A control register sets the number of data bits (7 or 8), number of stop bits (1 or 2) and
the parity scheme (odd/even/none). Interrupt (INT) line goes high on Receive buffer full,
transmit buffer empty, Parity error, receive buffer overflow and Transmit buffer overflow.
These should be controllable through an Interrupt mask register and the individual status
should be available in an Interrupt status register. The registers Transmit buffer, receive
buffer, Control Register, Interrupt mask register and Interrupt status register should be
accessible through the microprocessor bus interface (CS/, RD/, WR/, A2-A0, D7-D0). Serial
transmission pins are (CLK, TxD, RxD).
Reference:
a. USART 8251 data sheet, UART 16550 data sheet
b. “Digital Systems Design Using VHDL”. By Charles H Roth
20. Floating-point multiplication unit with 16-bit significant and 8-bit exponent
Reference:
“Computer Architecture A Quantitative Approach”. By John L Hennessy & David A
Patterson. Appendix. A
21. Floating-point adder unit with 16-bit significant and 8-bit exponent
Reference:
“Computer Architecture A Quantitative Approach”. By John L Hennessy & David A
Patterson. Appendix. A
22. Floating-point Divider unit with 16-bit significant and 8-bit exponent
You can either use boards with ADC and DAC to apply signals and get output. Or Simulate
in MATLAB and get Digital inputs and store it in BRAM of FPGA and display Digital
output, you can also take this output to MATLAB and plot it
4
25. Image Filter
Store 32 x 32 Gray scale image in BRAM of FPGA, do some filtering (e.g. Denoising) and
display the output.
Calculate Active Power, Reactive Power and Power factor. You can simulate voltage and
current input through signal supplied through ADC.