Spock I completed my final year project in 2002. The project was "Hardware and Software Implementation of RamDisk using FPGA" Basically we designed a controller using XILINX VIRTEX FPGA with I2C which transferred the data between Micron SDRAM and any other storage devices through PCI interface. Basic building blocks were Register File, DMA, I2C, SDRAM Controller and a PCI Interface on top of it. We also wrote a device drive in C/C++ while the hardware development was done in Verilog/VHDL.
Primary Motives for doing the Project:
To learn advance digital design techniques, modeling, and prototyping using FPGA's.
To understand PCI/PCIX Interface/specification, DMA operation, data synchronization, FIFO/LIFO techniques
To use Computer Architecture, Digital System Interfacing, Data Communication techniques
To lean how to write Device Drivers
To design a storage device that can be used for fast boot or data processing w/o any moving parts
Some Project Suggestions:
Digital System Interfacing
NatCar (search on google for more info)
VOIP using SIP
Pattern Recognition
PCI bus in an embedded system
Network processor design and/or implementation
Simple network device on a chip
Network appliance
TCP/IP implementation @ hardware level (FPGA/ASIC
Like other guppies have suggested, always check out CmpE/EE project websites and see what other students are doing.
Spock I completed my final year project in 2002. The project was "Hardware and Software Implementation of RamDisk using FPGA" Basically we designed a controller using XILINX VIRTEX FPGA with I2C which transferred the data between Micron SDRAM and any other storage devices through PCI interface. Basic building blocks were Register File, DMA, I2C, SDRAM Controller and a PCI Interface on top of it. We also wrote a device drive in C/C++ while the hardware development was done in Verilog/VHDL.
Primary Motives for doing the Project:
To learn advance digital design techniques, modeling, and prototyping using FPGA's.
To understand PCI/PCIX Interface/specification, DMA operation, data synchronization, FIFO/LIFO techniques
To use Computer Architecture, Digital System Interfacing, Data Communication techniques
To lean how to write Device Drivers
To design a storage device that can be used for fast boot or data processing w/o any moving parts
Some Project Suggestions:
Digital System Interfacing
NatCar (search on google for more info)
VOIP using SIP
Pattern Recognition
PCI bus in an embedded system
Network processor design and/or implementation
Simple network device on a chip
Network appliance
TCP/IP implementation @ hardware level (FPGA/ASIC
Like other guppies have suggested, always check out CmpE/EE project websites and see what other students are doing.
[/QUOTE]
Now that is really impressive. One question for you though, why did you use FPGAs? Isnt it better to use a CPLD in this situation?
Now that is really impressive. One question for you though, why did you use FPGAs? Isnt it better to use a CPLD in this situation?
[/QUOTE]
Difference between FPGAs and CPLDs
The most widely accepted definition of a CPLD is that it is a device composed of a number of product-term arrays/register combinations that are interconnected by a switch. All other high-density PLDs are considered to be FPGAs. The product-term array is usually an AND array that is followed by a number of OR gates and registers. The number of inputs to the OR gates and the number of OR gate/register combinations, called a macrocell, vary from manufacturer to manufacturer.
FPGAs offer much higher complexity -- up to 70,000 flip-flops -- and their idle power consumption is reasonably low. Because the configuration bitstream must be reloaded every time power is re-applied, design security is an issue, but the advantages and opportunities of dynamic reconfiguration, even in the end-user system, are an important advantage. FPGAs offer more logic flexibility than CPLDs, and more sophisticated system-level features (clock management, on-chip RAM, programmable I/O levels).
Our Reasons for using FPGA
Data Path Logic
Register Files
FIFOs/LIFOs
Serial-Parallel/Parallel-Serial
Bus Interfaces
Registered Logic
High Capacity
We basically designed SOC which included Register File, DMA, I2C, SDRAM Controller, PCI Interface etc. Using an FPGA was a feasible solution
Relative Advantage in Using CPLDs
Control Logic
State Machines
Address Decoders
Bus Controllers
Priority Encoders
Wide Functions
Combinatorial Logic
High Speeds
Predictable Timing
Moderate Capacity
It is not unusual to find CPLDs and FPGAs on the same circuit board, with the different devices used for the circuit functions appropriate to their architectures. Many of the distinctions between the two types of PLDs are beginning to blur.
Saqib, thanks... Another difference (a big one) would be the fact that the CPLD does not retain the programming implemented through Xilinx, and everything wipes off once the power is removed... However, the FPGA retains everything...