|
This
document discusses a Modern Design Method
of using Programmable Logic Devices (PLDs) to Synchronise
either its own INTERNAL LOGIC FUNCTIONS
or EXTERNAL DEVICES:-
Functions
like the SHIFT REGISTER
possesses the SYNCHRONOUS LOAD SIGNAL to
control data flow. This has different functionality depending on its
logic level:
created using the method described below. External Devices Traditionally,
Parallel Bus Devices
like A/D Converters
and Static RAMs
were interfaced to a microprocessor
and controlled by its software. Nowadays
there is an altertnative High Speed PLDs can achieve the same result by emulating the microprocessor's CONTROL SIGNALS. They have several advantages:
Higher data bandwidth is achieved as PLDs can control the external devices directly and don't require slow sequential microprocessor instructions to function. Higher Pin Count Field Programmable Gate Arrays (FPGAs) are one of the PLD family that can be chosen with ENOUGH pins to feed ALL the external device needs. e.g. A 32 KByte Static RAM would need a considerable number of dedicated control lines:
To control A/Ds and RAMs with programmable logic you need a SEQUENCER circuit DESCRIBED BELOW to co-ordinate their TIMING signals. Reduced Component Count Using a SINGLE FPGA with ENOUGH I/O pins for ALL FUNCTIONS reduces:
The method described below is demonstrated using GRAPHICAL circuit design tools but the principles can be adapted for use with Hardware Description Languages like VHDL.
Intellectual Property is the name given to the highest descriptive level of a circuit function. This means that you can design complex circuits at a CONCEPTUAL LEVEL where you don't have to include all the detail. An Example:
The "IP" of a Counter The information about the COUNTER FUNCTION or its IP is reduced to a few simple statements:
All the common functions like Shift Registers, Multiplexers and Adders are described in the same way. These will be available in the design tool. The I/P (data[ ]) and O/P (q[ ]) DATA is specified as a BUS of a certain WIDTH. Control signals like Synchronous Load (SLOAD) to parallel load the data and Asynchronous Clear (ACLR) to reset the function's O/Ps to Zero are all OPTIONAL.
ALTERA FPGA devices are supported by their MaxPlus II graphical design tool. Their IP functions are called MEGA-FUNCTIONS. XILINX
FPGA devices on the other hand have a similar
design tool that supports
IP
design and that's called X-BLOX.
This name is quite appropriate
as you're actually designing at the CONCEPTUAL
LEVEL where the circuit is a simple BLOCK
DIAGRAM.
The core SUPPLIERS offer NO GUARANTEES! USE THEM AT YOUR PERIL! The PURCHASE is a ONE OFF PAYMENT that allows UNLIMITED use of the CORE in manufactured products. This HIGH payments involved are to COMPENSATE the copyright holder for LOSS of REVENUE from the SALES of the REAL SILICON DEVICES. The STRANGE FACT is that cores can OUTLIVE their original SILICON VERSIONS as with the Z80 Microprocessor mentioned above.
The circuit below describes how the control signals are created using the IP Method described above:
The Sequencer Circuit The circuit example above was created using Altera's MaxPlus II Design Tool, but the concept can be adapted to ANY design tool as described above. How it Works
N.B. 2 particular STATES of the J-K Flip Flop's TRUTH TABLE are IMPORTANT here:
Simulation is used to evaluate circuit FUNCTIONALITY. The circuit I/Ps are STIMULATED with signals you define and the simulator CREATES the effective O/P signals from your circuit definition. Your task is then to COMPARE the O/P signals created by the simulator with your PREDICTIONS. The DIFFERENCES represent ERRORS somewhere in your design. The simulation of the sequencer circuit is shown below:
I develop new experiments and teaching aids for my department. The latest of these is described in detail by CLICKING HERE. The microcontroller used in this project DOESN'T have any EXTERNAL Address/Data/Control Busses. However the design required that students SHOULD have experience in interfacing to EXTERNAL devices, where the Address, Data and Control Busses appear on I/O pins of the microcontroller. Therefore the FPGA's task is to create a PHYSICAL Address/Data/Control Bus with all the correct TIMING so that interfacing to the unit's external devices like Static RAM and D/A Converters can occur as if the microprocessor actually had it's OWN Address/Data/Control Bus.
The circuit described above is simple to understand and implement by using the GRAPHICAL DESIGN TOOLS described. However the principle can ALSO be adapted for use with Hardware Description Languages like VHDL. The TIMING in COMPLEX designs is usually the MOST DIFFICULT part to implement. However, using SIMULATION enables the circuit TIMING to be continuously EVALUATED, DOCUMENTED and MODIFIED VISUALLY, THROUGHOUT the whole design process. Nowadays,
ALL
External Device TIMING SPECIFICATIONS
are described GRAPHICALLY
in their DATA SHEETS.
Therefore using SIMULATION
with this CIRCUIT TECHNIQUE makes
this difficult task MUCH EASIER.
If
you would like any further advice
on using this technique
Thank
You
|
||||||||||||||||||||||||||||||