IIT Bombay
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
Introduction to Programmable Logic Design Flow
CDEEP Autumn 2009
Presented by- Anil Powai Labs Tech. Pvt. Ltd.
IIT Bombay CDEEP Autumn 2009 Introduction to Programmable Logic - - PowerPoint PPT Presentation
IIT Bombay CDEEP Autumn 2009 Introduction to Programmable Logic Design Flow Presented by- Anil Powai Labs Tech. Pvt. Ltd. EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini IIT Bombay Programmable Logic
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
CDEEP Autumn 2009
Presented by- Anil Powai Labs Tech. Pvt. Ltd.
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
– Two level structures of AND and OR gates with user programmable connections – Architecture not scalable; Power consumption and delays play an important role in extending the architecture to complex designs – Implementation of larger designs leads to same difficulty as that of discrete components
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
– Customized by end user – Implements multi-level logic function – Fast time to market and low risk
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
placed in an interconnect array.
device
– Employs logic and interconnect structure capable of implementing multi-level logic
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
array of multiple logic elements usually in form of RAM- controlled Look-up Tables (LUT).
and switches; Provide a means to interconnect logic blocks.
routed.
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
(Simplified Diagram)
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
In p u t s(A B CD ) O u t p u t (Z ) 1 1 1 1 1 … … .. 1 1 1 1 1 1 1 1 1
Truth Table
LUT
4-input logic function C
D
Z A B
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
3 types:
with Switching Matrix
Types of lines:
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
cells to control pass transistors and/or transmission gates
configuration of logic block as well
– Needs an external storage – Needs a power-on configuration mechanism – In-circuit re-programmable
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
requirements
code interpretation)
simulation
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
the soft format.
popular one’s are: – Designing with the help of schematics. – Designing using HDL’S [Hardware Description Language].
– VHDL= Very High Speed Integrated Circuit Hardware Description Language is used to describe the desired logic circuit.
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
specifications ip 1 ip 2 ip 3 ip 4 s1 s0 y d0 d1 d2 d3 d0 1 d1 1 d2 1 1 d3
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
– Design description – Target technology – Constraints
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
– Translate: Merge multiple design files into a single netlist – Map: Group logical symbols from the netlist (gates) into physical components (CLBs and IOBs) – Place & Route: Place components
extract timing data into reports.
place & route , gate delays and interconnect delays can be involved in this simulation.
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
directly to the FPGA, or can be converted into a PROM file which stores the programming information
FPGA – Through a PROM device
the PROM programmer will understand
– Directly from the computer
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
Wizard
Path’ & ‘Top Level Source Type’
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
Synthesis and Implementation – Processes: Synthesize- XST – Processes: Implement Design
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
– Processes: Synthesis-Xst/Generate Post-synthesis Simulation Model. (Properties can be modifies for VHDL
– mux/netgen/synthesis/mux_synthesis.vhd
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
– Period – Pad to Setup – Clock to pad
– Pad to setup for inputs – Clock to pad for outputs
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
if clk’event and clk = ‘1’ then a <= c and d; end if; if (a = “11”) then . . . if (x = a) then . . . case a is . . . When “00” => . . . when “01” => . . . x <= a and b; . . .
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
if clk’event and clk = ‘1’ then a <= c and d; a1 <= c and d; end if; if (a = “11”) then . . . if (x = a) then . . . case a1 is . . . When “00” => . . . when “01” => . . . x <= a and b; . . .
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
Z MUX X MUX X
A C B D
MUX
A B C D
Some tools have automatic resource sharing. Operations must be mutually exclusive. temp1 <= a when x = ‘1’ else c; temp2 <= b when x = ‘1’ else d; z <= temp1 + temp2;
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
if CONTROL = '1' then PTR := PTR1; else PTR := PTR2; end if; OFFSET := BASE - PTR; ADDR := ADDRESS - ("00000000" & OFFSET); COUNT <= ADDR + B; Here control is a late arriving signal and timing is not being met.
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
OFFSET1 := BASE - PTR1; OFFSET2 := BASE - PTR2; ADDR1 := ADDRESS - ("00000000" & OFFSET1); ADDR2 := ADDRESS - ("00000000" & OFFSET2); COUNT1 := ADDR1 + B; COUNT2 := ADDR2 + B; if CONTROL = '1' then COUNT <= COUNT1; else COUNT <= COUNT2; end if;
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini
EE705/707 Lectures No. 23 and 24 Prof. M. Shojaei Baghini