Announcement
Please submit your report and source code using email subject "Project 2"
An extra two hour lecture will be given on Tue 18th March, 4:30 to 6:30 p.m.
The project demo will be held in the lab on Wed 23rd April, 10:30 a.m.
More information can be found here.
Course Information
| Lecturer: | Prof. Philip Leong | phwl@cse.cuhk.edu.hk | SHB 926 | Tel: 2609-8414 |
| TA: | TANG Wai Chung, Matthew | wctang@cse.cuhk.edu.hk | SHB 506 | Tel: 3163-4265 |
| Chim Fu Shing, Tim | fschim@cse.cuhk.edu.hk | SHB 506 | Tel: 3163-4265 | |
| Lectures: | M2-3, M7(ERB 713) |
| Tutorials: | M8 (ERB 713 / SHB 122) |
| Newsgroup: | cuhk.cse.ceg5010 |
| Mark Distribution: | 50% Project, 10% Tutorial+Assignments, 40% Final Exam |
Lecture Notes and Tutorials
Lecture Notes
Webpages mantained by Prof. Philip Leong. (including lecture notes, report format, report guides and VHDL links.)
Tutorial Notes
Tutorial 1 (7/1 @ ERB 713): Xilinx Basic FPGA Architecture | Reference: Virtex-II Platform FPGA User GuideTutorial 2 (14/1 @ ERB 713): Xilinx Basic FPGA Architecture (Cont')
Tutorial 3 (21/1 @ SHB 122): Xilinx ISE 9.2i & core simulation
Tutorial 4 (28/1 @ SHB 122): ARM processor, interface design and board usage PPT (Updated: 15/2)
LPC213X Programmer Guide · ARM+FPGA Board Schematic · Sample ISE & ARM Project (Updated: 15/2)
Tutorial 5 (18/2 @ SHB 122): Actel HDL Coding Style Guide (Chapter 2) · more on interface design
Assignment (10%)
Electronic submission guideline (Tutorial 3 and 4)
uuencode loginname.tar.gz loginname.tar.gz | elm -s "Assignment #" ceg5010
If you have not used 'elm' before, please invoke the program once
before submit your files using the above command.
Replace with your own login name (loginname) and the corresponding
assignment number (#).
You will receive an auto-reply from the system.
For students in other departments, please contact the tutors individually.
Tutorial 1: Virtex-II Architecture (1) (2%)
Deadline: 14/1/2008 3:30 p.m.- How many Virtex-II slices do you need to implement a 4:1 MUX? Show your implementation using a diagram.
- With diagrams, show how to implement a 24-bit shift register using the minimum number of Virtex-II slices. Remember to show your configurations to the slices whenever necessary.
- Suppose you want to implement the Boolean function F = abx' + cdx' + efgx + hx using Virtex-II slices, how many slices do you need? Explain your implementation.
Tutorial 2: Virtex-II Architecture (2) (2%)
Deadline: 21/1/2008 3:30 p.m.- Discuss the differences between Block SelectRAM and Distributed SelectRAM (in 300-500 words).
- Write VHDL/Verilog code to implement a 52-bit LFSR as described in the application note xapp210.
Tutorial 3: Core Simulation (3%)
Objective: To bulid a Greatest Common Divider (GCD) Core for simulation
Deadline: 28/1/2008 3:30 p.m.
Specification:
- You are required to construct a GCD using VHDL. The core should be able to generate the GCD of two numbers.
- Input A and B are 8-bit unsigned integers. The output D is a 8-bit unsigned integer where D=GCD(A,B).
- After receiving a RUN signal, the circuit samples the inputs and start computing. After (or maybe at the same time) the correct GCD is computed , the RDY signal asserts and the output is ready.
- You can assume that A and B are non-zero.
- The entity of the core is given in the resource part below. No modification of the entity is allowed. Your design should be in pure VHDL(Verilog) which can be simulated in Xilinx ISE. Although you can use some non-synthesizable VHDL constructs, this may post problems later.
- You must hand in the following files:
gcd_tb.vhd: the testbench for simulation the core.
gcd_core.vhd: the main core of GCD.
*.vhd: any other VHDL source files used in the design. - Sample VHDL entity declaration:
entity gcd_core is port ( CLK: in std_logic; RST: in std_logic; RUN: in std_logic; A: in std_logic_vector(7 downto 0); B: in std_logic_vector(7 downto 0); RDY: out std_logic; D: out std_logic_vector(7 downto 0) ); end gcd_core;
-
CLK: the input clock signal (20 MHz; 50% duty cycle)
RST: synchronous global rese input, the FSM starts working after rst goes low, FSM halts and reinitializes when rst up again
RUN: last exactly one clock cycle, trigger the core to run
A, B: input numbers
RDY: signal the external world that the result is computed and outputted, at least last one clock cycle but can last as long as the output is valid
D: the output generated by the GCD
Tutorial 4: Interface Design (3%)
Objective: To build an interface to the GCD core through the on-board ARM processorDeadline: 22/2/2008 11:59 p.m.
Demo: TBD
Specification:
- (FPGA side) Design an interface between the ARM processor and the FPGA such that the ARM processor can control the GCD core implemented on the FPGA.
- Write VHDL / Verilog code for the interface circuit. Embed your core inside the interface.
- (ARM Side) Develop a user program on the ARM processor to test the GCD core.
- No calculation related to the GCD is allowed on the ARM program.
- Test the core with at least 3 pairs of numbers and find their GCD using the GCD core. You may be asked to modify the test pair during demo.
- You are expected to poll the RDY signal to make sure the core had finished the previous calculation before you start the next calculation.
Tools and programs used by this course
- Language: VHDL (Preferred) / Verilog
- Hardware platform: CSE ARM + FPGA board
ARM: Philips LPC2131
FPGA: Xilinx Spartan-3 XC3S250E-4-PQ208 - Implementation: Xilinx Foundation ISE Full/Webpack 9.1i/9.2i ·
Keil uVision3
Local copies available: please check newsgroup. - Supporting Tools
ARM+FPGA USB Com Port driver · Philips Flash Utilities · Realterm · FPGA Programming Hex Code (for ARM LPC2131)
Course Project (50%)
Grouping and Brief Proposal (10%)
Deadline: 27/2/2008 (WED) 11:59 p.m.Submit your proposal electronically using subject "Project 1"
Specification:
- Organize yourselves into groups of two and decide on a topic which can be one of the suggested topics in the lectures or one of your own choosing.
- Write a 2 page (total one sheet of paper both sides, IEEE conference two column format) description of your project. Follow the FCCM formatting instructions but the maximum length is 2 pages.
-
It should contain the following:
- Title
- Name and student ID for each member of the group
- "Abstract" a very short summary of the project
- "Introduction" that describes the motivation and aims of the work and gives a brief review of previous reported research or designs
- "Architecture" a description of the algorithm and proposed implementation of the design. Please also mention what FPGA board you intend to use
- "References" these should be made in the standard manner, making sure you include full publication details (year, journal/conference, volume, page numbers etc)
- You can refer to mpp_fccm03.pdf to get an idea of what is required. Of course, you will not have results, but you could instead expand the other sections, particularly the review of previous work and your description of the architecture.
- This will be worth 10% of the project mark and the material can be reused in your final report.
Final Demo (25%)
Date: 23/4/2008 (WED) 10:30 a.m.- Each group has to prepare a demo in 15 minutes.
- Demo includes short presentation to project highlight and complete demo on FPGA boards.
- 15 minutes will be allowed for each group to prepare the demo.
- Schedule for demo will be issued later on.
Disclaimer: This is a user-contributed webpage hosted in
Department of Computer Science and Engineering, The Chinese University
of Hong Kong. The department is not responsible for the contents
nor any loss or damage due to it.