Lab 01
Lab 01
Basic Introduction of Digital Systems, FPGA (kit) & Tools and Getting Started with Xilinx
ISE Design Suite 14.7
Objective(s):
⮚ To understand the basic idea of FPGA and compare it with ASIC and Microcontroller
⮚ To demonstrate the use of simulation tool Model Sim 6.5e and Xilinx ISE 14.7
Digital System: A specialized system that works on binary logic designed to achieve certain
task. It can be fixed or programmable.
Embedded system: A computerized system and the combination of a hardware and a software
that can be used with large systems to design different applications.
FPGA: Field Programmable Gate Array is an integrated circuit that can be programmed to the
desired application or functionality requirements. It is reconfigurable and has parallelism.
ASIC VS FPGA
A Field Programmable Gate Array can be seen as the prototyping stage of Application Specific
Integrated Circuits: ASICs are very expensive to manufacture, and once it's made there is no
going back (as the most expensive fixed cost is the masks [sort of manufacturing "stencil"] and
their development). FPGAs are reprogrammable many times, however because of the fact that a
generic array of gates is connected to accomplish your goal, it is not optimized like ASICs. Also,
FPGAs are natively dynamic devices in that if you power it off, you loose not only the current
state but also your configuration. Boards now exist though that add a FLASH chip and/or a
microcontroller to load the configuration at startup so this tends to be a less important argument.
Both ASICs and FPGAs can be configured with Hardware Description Languages, and
sometimes FPGAs are used for the end product. But generally ASICs kick in when the design is
fixed.
FPGA VS microcontroller
As for the difference between a microcontroller and a FPGA, you can consider a microcontroller
to be an ASIC which basically processes code in FLASH/ROM sequentially. You can make
microcontrollers with FPGAs even if it's not optimized, but not the opposite. FPGAs are wired
just like electronic circuits so you can have truly parallel circuits, not like in a microcontroller
where the processor jumps from a piece of code to another to simulate good-enough parallelism.
However because FPGAs have been designed for parallel tasks, it's not as easy to write
sequential code as in a microcontroller.
For example, typically if you write in pseudocode "let C be A XOR B", on a FPGA that will be
translated into "build a XOR gate with the lego bricks contained (lookup tables and latches), and
connect A/B as inputs and C as output" which will be updated every clock cycle regardless of
whether C is used or not. Whereas on a microcontroller that will be translated into "read
instruction - it's a XOR of variables at address A and address B of RAM, result to store at
address C. Load arithmetic logic units registers, then ask the ALU to do a XOR, then copy the
output register at address C of RAM".
∙ 128Mbyte DDR2
∙ 100MHz oscillator
Power Connector
USB
(Programming
Port)
VHDC
Connector
I/O Ports
Sliding Switches
Xilinx ISE Design Suite 14.7v: The platform to design and implement different tasks on
FPGA. It has different features for example Verilog or VHDL module designing, schematics
etc.