SlideShare a Scribd company logo
1 of 51
Download to read offline
Dr. Sudhir N. Shelke
Ph.D
Principal, Guru Nanak Institute of
Technology, Nagpur.
Dr Sudhir Shelke Page 1 of 51
What is Synthesis?
Synthesis is the process of constructing a gate-level
netlist from a model of a circuit described in VHDL.
A synthesis program generates a RTL netlist (FF’s, ALU,
multiplexer, interconnected by wires). So, the RTL
module builder is necessary and the purpose of this
builder is to build each of the required RTL blocks from
a library of predefined components (user-specified
target technology).
After producing a gate-level netlist, a logic optimizer
reads in this netlist and optimizes the circuit for the
user-specified area and timing constraints.
Dr Sudhir Shelke Page 2 of 51
Dr Sudhir Shelke Page 3 of 51
1. Automatically manages many details of the design process:
• Fewer bugs
• Improves productivity
2. Abstracts the design data (HDL description) from any
particular implementation technology
• Designs can be re-synthesized targeting different chip technologies;
E.g.: first implement in FPGA then later in ASIC
3. In some cases, leads to a more optimal design than could be
achieved by manual means (e.g.: logic optimization)
Why Not Logic Synthesis?
1. May lead to less than optimal designs in some cases
Why Perform Logic Synthesis?
Dr Sudhir Shelke Page 4 of 51
Variety of general and ad-hoc (special case) methods:
1. Instantiation: maintains a library of primitive modules (AND, OR,
etc.) and user defined modules.
2. “Macro expansion”/substitution: a large set of language operators
(+, -, Boolean operators, etc.) and constructs (if-else, case) expand
into special circuits.
3. Inference: special patterns are detected in the language description
and treated specially (e.g.,: inferring memory blocks from variable
declaration and read/write statements, FSM detection.
4. Logic optimization: Boolean operations are grouped and optimized
with logic minimization techniques
5. Structural reorganization: advanced techniques including sharing of
operators, and retiming of circuits (moving FFs), and others
Dr Sudhir Shelke Page 5 of 51
Dr Sudhir Shelke Page 6 of 51
1. A circuit can be described in
any different ways, not all of
which may be synthesizable.
This is due to the fact that
HDL was designed primarily
as simulation language and
not for synthesis.
2. There is no standardized
subset of VHDL for synthesis.
3. There is no direct object in
VHDL that means a latch or
a flip-flop,
4. therefore, each synthesis
system provide different
mechanism to model a flip-
flop or a latch.
Dr Sudhir Shelke Page 7 of 51
In VHDL, a signal, or a variable declared in a process, retains its
value through the entire simulation run, thus inferring memory.
Example :
signal A, B, C, Z : bit;
…….
No _memory : process(A, B, C)
variable temp : bit;
begin
temp := A and B;
Z <= temp or C;
end process;
VHDL semantics says that variable temp retains its value through
the entire simulation run.
Dr Sudhir Shelke Page 8 of 51
Resource sharing is an optimization technique that uses a
single functional block (such as an adder or comparator) to
implement several operators in the HDL code. Use resource
sharing to improve design performance by reducing the gate
count and the routing congestion.
The following operators can be shared either with instances of
the same operator or with the operator on the same line.
*
+ -
>>=<<=
For example, a + operator can be shared with instances of other
+ operators or with - operators.
Dr Sudhir Shelke Page 9 of 51
ONE can implement arithmetic functions (+, -, magnitude
comparators) with gates, Synopsys Design Ware functions, or
Xilinx Design Ware functions.
Resource sharing adds additional logic levels to multiplex the
inputs to implement more than one function.
Since resource sharing allows you to reduce the number of
design resources, the device area required for your design is
also decreased. The area that is used for a shared resource
depends on the type and bit width of the shared operation.
Dr Sudhir Shelke Page 10 of 51
Dr Sudhir Shelke Page 11 of 51
Implementation of resource sharing Implementation of No resource sharing
Dr Sudhir Shelke Page 12 of 51
VHDL is a H/W modeling language used to model digital
circuits
Digital circuits can be either Combinational or
Sequential
Combinational Logic circuits: Implement Boolean functions
whose output is only dependant on the present inputs
Sequential Logic circuits: Implement circuits whose output
depends on the present inputs & the history of the inputs. i.e.
Circuits having storage elements
Introduction
13Dr Sudhir Shelke Page 13 of 51
Synthesis tools translate the VHDL code to a gate level netlist
representing the actual H/W gates [and, or, not, Flip-Flops…et ]
Only a subset of the language is synthesizable
 A model can be either
 Synthesizable: Used for both Simulation & Synthesis
 Non-Synthesizable: Used for Simulation only
Introduction Cont..
14
VHDL
Standard
Synthesizable
VHDL
Dr Sudhir Shelke Page 14 of 51
Combinational
Logic
15
library IEEE;
use IEEE.std_logic_1164.all;
Entity mux_case is
Port(a, b, c, d: in std_logic;
Sel: in std_logic_vector(1 downto 0);
F: out std_logic);
End entity;
Architecture rtl of mux_case is
begin
process (a,b,c,d,sel) is
begin
Case sel is
When "00" => f <= a;
When "01" => f <= b;
When "10" => f <= c;
When "11" => f <= d;
when others => f <= a;
End case;
End process;
End architecture;
Example 1: 4x1 Multiplexer
Dr Sudhir Shelke Page 15 of 51
16
• What is the impact of removing some signals from the sensitivity list as
shown in example 2?
Architecture rtl of mux_case is
begin
process (a,b,c,d,sel) is
begin
Case sel is
When "00" => f <= a;
When "01" => f <= b;
When "10" => f <= c;
When "11" => f <= d;
when others => f <= a;
End case;
End process;
End architecture;
Architecture rtl of mux_case is
begin
process (a, sel) is
begin
Case sel is
When "00" => f <= a;
When "01" => f <= b;
When "10" => f <= c;
When "11" => f <= d;
when others => f <= a;
End case;
End process;
End architecture;
Example 2: 4x1 MultiplexerExample 1: 4x1 Multiplexer
Dr Sudhir Shelke Page 16 of 51
17
Architecture rtl of mux_case is
begin
process (a,b,c,d,sel) is
begin
Case sel is
When "00" => f <= a;
When "01" => f <= b;
When "10" => f <= c;
When "11" => f <= d;
when others => f <= a;
End case;
End process;
End architecture;
Architecture rtl of mux_case is
begin
process (a, sel) is
begin
Case sel is
When "00" => f <= a;
When "01" => f <= b;
When "10" => f <= c;
When "11" => f <= d;
when others => f <= a;
End case;
End process;
End architecture;
Example 2: 4x1 MultiplexerExample 1: 4x1 Multiplexer
• No Impact on the synthesis results, however we will find that the
simulation results differ
• Synthesis tools don’t use the sensitivity list to determine the logic, but
simulation tools depend on the sensitivity list to execute the process
• Example 2 suffers a problem called “Simulation – Synthesis mismatch”
Dr Sudhir Shelke Page 17 of 51
Combinational Logic
18
• VHDL 2008* introduced the keyword "all" that implicitly adds all read
signals to the sensitivity list to avoid “Simulation Synthesis mismatch”
Architecture rtl of mux_case is
begin
process (all) is
begin
Case sel is
When "00" => f <= a;
When "01" => f <= b;
When "10" => f <= c;
When "11" => f <= d;
when others => f <= a;
End case;
End process;
End architecture;
Example 3
Golden rule of thumb
• To a oid Si ulatio Sy thesis is at h p o le s he odeli g
Combinational logic, add all read signals to the sensitivity list
Dr Sudhir Shelke Page 18 of 51
Combinational Logic
19
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY add_sub IS
port (a, b : in integer;
result : out integer;
operation: in std_logic);
END ENTITY;
ARCHITECTURE behave OF add_sub IS
BEGIN
process (a, b, operation)
begin
if (operation = '1') then
result <= a + b;
else
result <= a - b;
end if;
end process;
END ARCHITECTURE;
Example 4: Adder-Subtractor
Dr Sudhir Shelke Page 19 of 51
 Consider that someone tries to re-use that code to implement an adder with
an enable  He modifies the add_sub example; removes the else branch &
e a es the ope atio po t to e a le as sho elo , Ho ould these
changes affect the logic?
Combinational Logic
20
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY adder IS
port (a, b : in integer;
result : out integer;
enable: in std_logic);
END ENTITY adder;
ARCHITECTURE behave OF adder IS
BEGIN
process (a, b, enable)
begin
if (enable = '1') then
result <= a + b;
end if;
end process;
END ARCHITECTURE;
Example 5:
Dr Sudhir Shelke Page 20 of 51
 This ill i fe a lat h, e ause e did ’t spe ify hat should happe to
esult he e a le is ’t e ual to '1'
 Si ulatio & sy thesis tools ill just keep the alue as is…i.e. It lat hes the last
value
Combinational Logic
21
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY adder IS
port (a, b : in integer;
result : out integer;
enable: in std_logic);
END ENTITY adder;
ARCHITECTURE behave OF adder IS
BEGIN
process (a, b, enable)
begin
if (enable = '1') then
result <= a + b;
end if;
end process;
END ARCHITECTURE;
Example 5:
Dr Sudhir Shelke Page 21 of 51
 In the below example, the "11" value of "sel" signal is not listed as a case choice,
hence signal "F" is not assigned a value in this case
 A Latch is inferred in this example  P o a ly that as ’t eeded
Combinational Logic
22
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY incomplete_case IS
port(sel : std_logic_vector (1 downto 0);
A, B: std_logic;
F : out std_logic);
END ENTITY;
ARCHITECTURE rtl OF incomplete_case IS
BEGIN
process (sel, A, B)
begin
case (sel) is
when "00" =>
F <= A;
when "01" =>
F <= B;
when "10" =>
F <= A xor B;
when others => null;
end case;
end process;
END ARCHITECTURE;
Example 6:
Dr Sudhir Shelke Page 22 of 51
 Do you think a Latch would be inferred in the below example?
Skills Check
23
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY incomplete_assignment IS
port(sel : in std_logic_vector (1 downto 0);
A, B : in std_logic;
O1, O2: out std_logic);
END ENTITY;
ARCHITECTURE rtl OF incomplete_assignment IS
BEGIN
process (sel, A, B) begin
case (sel) is
when "00" =>
O1 <= A;
O2 <= A and B;
when "01" =>
O1 <= B;
O2 <= A xor B;
when "10" =>
O1 <= A xor B;
when "11" =>
O2 <= A or B;
when others =>
O1 <= '0';
O2 <= '0';
end case;
end process;
END ARCHITECTURE;
Example 7:
Dr Sudhir Shelke Page 23 of 51
 Do you think a Latch would be inferred in the below example?
Skills Check (Soln.)
24
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY incomplete_assignment IS
port(sel : in std_logic_vector (1 downto 0);
A, B : in std_logic;
O1, O2: out std_logic);
END ENTITY;
ARCHITECTURE rtl OF incomplete_assignment IS
BEGIN
process (sel, A, B) begin
case (sel) is
when "00" =>
O1 <= A;
O2 <= A and B;
when "01" =>
O1 <= B;
O2 <= A xor B;
when "10" =>
O1 <= A xor B;
when "11" =>
O2 <= A or B;
when others =>
O1 <= '0';
O2 <= '0';
end case;
end process;
END ARCHITECTURE;
Example 7:
• Latches are inferred for both signals "O1" & "O2"
• Though the case is complete & no "null" statement is
there, we find that "O1" & "O2" are not assigned in all
case's branches  This is alled I o plete sig al
assig e t
Dr Sudhir Shelke Page 24 of 51
25Dr Sudhir Shelke Page 25 of 51
26
Library ieee;
use ieee.std_logic_1164.all;
Entity d_ff is
Port(d, clk, rst : in std_logic;
Q, nQ : out std_logic);
end entity;
Architecture behav of d_ff is
Begin
process(clk)
begin
If (rising_edge(clk)) then
If (rst = '1') then
Q <= '0';
nQ <= '0';
else
Q <= d;
nQ <= not (d);
end if;
end if;
end process;
end behav;
• Let's model the well known D-FF with outputs Q & nQ and see
the synthesis results
Example 8:
Dr Sudhir Shelke Page 26 of 51
27
Library ieee;
use ieee.std_logic_1164.all;
Entity d_ff is
Port(d, clk, rst : in std_logic;
Q, nQ : out std_logic);
end entity;
Architecture behav of d_ff is
Begin
process(clk)
begin
If (rising_edge(clk)) then
If (rst = '1') then
Q <= '0';
nQ <= '1';
else
Q <= d;
nQ <= not (d);
end if;
end if;
end process;
end behav;
• Let's model the well known D-FF with outputs Q & nQ and see
the synthesis results
Example 8:
Two Flip-Flops ?!
Change the code to have only one Flip-Flop
Dr Sudhir Shelke Page 27 of 51
28
• Let's model the well known D-FF with outputs Q & nQ and see
the synthesis results
Example 9:
Yep…That's hat e a t!
Library ieee;
use ieee.std_logic_1164.all;
Entity d_ff is
Port( d, clk, rst : in std_logic;
Q, nQ : out std_logic);
end entity;
Architecture behav of d_ff is
signal Q_int: std_logic;
Begin
process(clk)
begin
If (rising_edge(clk)) then
If (rst = '1') then
Q_int <= '0';
else
Q_int <= d;
end if;
end if;
end process;
Q <= Q_int;
nQ <= not (Q_int);
end behav; Dr Sudhir Shelke Page 28 of 51
Sequential Logic
29
VHDL 360 ©
Library ieee;
use ieee.std_logic_1164.all;
Entity d_ffs is
Port(d: std_logic_vector (3 downto 0);
clk, rst : in std_logic;
Q, nQ : out std_logic_vector (3 downto 0));
end entity;
Architecture behav of d_ffs is
signal Q_int: std_logic_vector (3 downto 0);
Begin
process(clk)
begin
If (rising_edge(clk)) then
If (rst = '1') then
Q_int <= (others => '0');
else
Q_int <= d;
end if;
end if;
end process;
Q <= Q_int;
nQ <= not (Q_int);
end behav;
• What about making an array of D-FFs?
Example 10:
Dr Sudhir Shelke Page 29 of 51
7 6 5 4 3 2 1 0
Library ieee;
use ieee.std_logic_1164.all;
entity shift_register is
Port ( clk, D, enable : in STD_LOGIC;
Q : out STD_LOGIC);
end entity;
architecture Behavioral of shift_register is
begin
process(clk)
variable reg: std_logic_vector(7 downto 0);
begin
if rising_edge(clk) then
if enable = '1' then
for i in 1 to 7 loop
reg(i-1) := reg(i);
end loop;
reg(7) := d;
end if;
end if;
Q <= reg(0);
end process;
end Behavioral;
Sequential Logic
30VHDL 360 ©
Example 11: 8-bit Shift Register (Shift right)
Dr Sudhir Shelke Page 30 of 51
Assignments under clock edge where the object value needs to be
remembered across multiple process invocations  Flip-Flop
 Signal assignment under clock edge will always infer a Flip-Flop
 Variable assignment under clock edge will infer Flip-Flop only when its value
ought to be remembered across process invocations
Flip-Flop Inference
31
VHDL 360 ©
Dr Sudhir Shelke Page 31 of 51
LIBRARY ieee;
USE ieee.std_logic_1164.all;
Entity unknown is
port(x: out std_logic;
y: in std_logic_vector(3 downto 0);
c: in integer);
End entity;
Architecture behave of unknown is
Begin
x <= y(c);
End behave;
Deduce what the below code models
Use synthesis tool to validate your answer
32Dr Sudhir Shelke Page 32 of 51
Power Estimation and Analysis of FPGA based
System.
Dr Sudhir Shelke Page 33 of 51
 As devices get larger and faster, power
consumption goes up
 First-generation FPGAs had
 Lower performance
 Lower power requirements
 No package power concerns
 Today’s FPGAs ha e
 Much higher performance
 Higher power requirements
 Package power limit concerns
 A System Monitor that provides active monitoring of the die temperature
 Refer to the Virtex-6 User Guide for more information
Performance (MHz)
PMAX
Package Power
Limit
Real World Design
Power Consumption
High Density
Low
Density
Dr Sudhir Shelke Page 34 of 51
High-speed and high-
density designs require
more power, leading to
higher junction
temperatures
Package thermal limits
exist
 125° C for plastic
 150° C for ceramic
Power directly limits
 System performance
 Design density
 Package options
 Device reliability
Dr Sudhir Shelke Page 35 of 51
Estimating power
consumption is a complex
calculation
 Power consumption of an FPGA
is almost exclusively dynamic
 Power consumption is
dependent on design and is
affected by
 Output loading
 System performance
(switching frequency)
 Design density (number of
interconnects)
 Design activity (percent of
interconnects switching)
 Logic block and interconnect
structure
 Supply voltage
Dr Sudhir Shelke Page 36 of 51
Power calculations can be performed at
three distinct phases of the design cycle
 Concept phase: A rough estimate of power can be
calculated based on estimates of logic capacity and
activity rates
 Use the Xilinx Power Estimator spreadsheet
 Design phase: Power can be calculated more
accurately based on detailed information about how
the design is implemented in the FPGA
 Use the XPower Analyzer
 System Integration phase: Power is calculated in a lab
environment
 Use actual instrumentation
Accurate power calculation at an early
stage in the design cycle will result in
fewer problems later
Dr Sudhir Shelke Page 37 of 51
 Accurate activity rates (also known as toggle
rates) are required for meaningful power
calculations
 Clocks and input signals have an absolute
frequency
 Synchronous logic nets use a percentage
activity rate
 100% indicates that a net is expected to change state
on every clock cycle
 Allows you to adjust the primary clock frequency and
see the effect on power consumption
 Can be set globally to an average activity rate on
groups or individual nets
 Logic elements also use a percentage activity
rate
 Based on the activity rate of output signals of the logic
element
 Logic elements have capacitance
Dr Sudhir Shelke Page 38 of 51
 Excel spreadsheets with power
estimation formulas built in
 Enter design data in white boxes
 Power estimates are shown in gray boxes
 Sheets
 Summary (device totals)
 Clock, Logic, I/O, Block RAMs, DSP, MMCM
 GTX, TEMAC, PCIE
 To download go to
http://www.support.xilinx.com ->
Technology Solutions -> Power
 Download the XPE spreadsheet for your device
family
 XPE is not installed with the ISE software
 The Power Solutions page has numerous
resources
Dr Sudhir Shelke Page 39 of 51
Summary and Quiescent power
White boxes allow you to enter
design data
Gray boxes show you the Power
estimates
Tabs at bottom allow you to enter
power information per device
resources (not shown)
Settings reviews device, system,
and environment information
On-Chip Power breaks the
estimated power consumption into
device resources
Dr Sudhir Shelke Page 40 of 51
Summary and Quiescent
power
Power Supply reviews
what power sources will
be necessary
Summary describes
your systems total
power and estimated
junction temperature
Dr Sudhir Shelke Page 41 of 51
I/O power
Clock power
Logic power
Dr Sudhir Shelke Page 42 of 51
Block RAM, DSP, and MMCM power
Dr Sudhir Shelke Page 43 of 51
Graphs
Dr Sudhir Shelke Page 44 of 51
A utility for estimating the power
consumption and junction temperature
of FPGA and CPLD devices
Reads an implemented design (NCD file)
and timing constraint data
You supply activity rates
 Clock frequencies
 Activity rates for nets, logic elements, and output
pins
 Capacitive loading on output pins
 Power supply data and ambient temperature
 Detailed design activity data from simulation (VCD
file)
The XPower Analyzer calculates the total
average power consumption and
generates a report
Dr Sudhir Shelke Page 45 of 51
Expand Implement Design 
Place & Route
Double-click XPower Analyzer
to launch the XPower utility in
interactive mode
Use the Generate Power Data
process to create reports using
VCD files or TCL scripts
Dr Sudhir Shelke Page 46 of 51
Estimated junction temperature
Reporting, settings, and thermal information is all placed in one utility
As you manipulate system characteristics you will update the generated report
Report Navigator allows for quick migration to various reports and functions of
the utility
Dr Sudhir Shelke Page 47 of 51
Produced as a simple text file
File is given .pwr
extension
Report is more detailed
and stored in one text file
Some what-if analysis
information is included
Includes a Power
Improvement Guide
Dr Sudhir Shelke Page 48 of 51
Pipeli
ning
and
Retim
ing
Adding registers along a path
 split combinational logic into multiple
cycles
 increase clock rate
 increase throughput
 increase latency
Dr Sudhir Shelke Page 49 of 51
Pipeli
ning
and
Retim
ing
Delay, d, of slowest combinational stage
determines performance
 clock period = d
Throughput = 1/d : rate at which
outputs are produced
Latency = •d : number of stages *
clock period
Pipelining increases circuit utilization
Registers slow down data, synchronize
data paths
Wave-pipelining
 no pipeline registers - waves of data flow through
circuit
 relies on equal-delay circuit paths - no short paths
Dr Sudhir Shelke Page 50 of 51
Pipeli
ning
and
Retim
ing
Where is the best place to add
registers?
 splitting combinational logic
 overhead of registers (propagation delay and
setup time requirements)
What about cycles in data path?
Example: 16-bit adder, add 8-bits in
each of two cycles
Dr Sudhir Shelke Page 51 of 51

More Related Content

What's hot

Delays in verilog
Delays in verilogDelays in verilog
Delays in verilogJITU MISTRY
 
Contamination delay
Contamination delayContamination delay
Contamination delayNima Afraz
 
Metastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failureMetastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failureprashant singh
 
Sequential cmos logic circuits
Sequential cmos logic circuitsSequential cmos logic circuits
Sequential cmos logic circuitsSakshi Bhargava
 
EC6601 VLSI Design Memory Circuits
EC6601 VLSI Design   Memory CircuitsEC6601 VLSI Design   Memory Circuits
EC6601 VLSI Design Memory Circuitschitrarengasamy
 
Programmable Logic Array(PLA) & Programmable Array Logic(PAL)
Programmable Logic Array(PLA) & Programmable Array Logic(PAL)Programmable Logic Array(PLA) & Programmable Array Logic(PAL)
Programmable Logic Array(PLA) & Programmable Array Logic(PAL)Revathi Subramaniam
 
Programmable array logic
Programmable array logicProgrammable array logic
Programmable array logicGaditek
 
Synchronous and asynchronous clock
Synchronous and asynchronous clockSynchronous and asynchronous clock
Synchronous and asynchronous clockNallapati Anindra
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsiSaransh Choudhary
 
faults in digital systems
faults in digital systemsfaults in digital systems
faults in digital systemsdennis gookyi
 
Pipelining approach
Pipelining approachPipelining approach
Pipelining approachGopinathD17
 
Flip Chip technology
Flip Chip technologyFlip Chip technology
Flip Chip technologyMantra VLSI
 
Logic synthesis using Verilog HDL
Logic synthesis using Verilog HDLLogic synthesis using Verilog HDL
Logic synthesis using Verilog HDLanand hd
 
Modified Gate Diffusion Input-MGDI
Modified Gate Diffusion Input-MGDIModified Gate Diffusion Input-MGDI
Modified Gate Diffusion Input-MGDIshubham jha
 

What's hot (20)

Data types in verilog
Data types in verilogData types in verilog
Data types in verilog
 
Delays in verilog
Delays in verilogDelays in verilog
Delays in verilog
 
Contamination delay
Contamination delayContamination delay
Contamination delay
 
Session 2,3 FPGAs
Session 2,3 FPGAsSession 2,3 FPGAs
Session 2,3 FPGAs
 
Metastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failureMetastability,MTBF,synchronizer & synchronizer failure
Metastability,MTBF,synchronizer & synchronizer failure
 
Sequential cmos logic circuits
Sequential cmos logic circuitsSequential cmos logic circuits
Sequential cmos logic circuits
 
EC6601 VLSI Design Memory Circuits
EC6601 VLSI Design   Memory CircuitsEC6601 VLSI Design   Memory Circuits
EC6601 VLSI Design Memory Circuits
 
Programmable Logic Array(PLA) & Programmable Array Logic(PAL)
Programmable Logic Array(PLA) & Programmable Array Logic(PAL)Programmable Logic Array(PLA) & Programmable Array Logic(PAL)
Programmable Logic Array(PLA) & Programmable Array Logic(PAL)
 
Programmable array logic
Programmable array logicProgrammable array logic
Programmable array logic
 
Matched filter
Matched filterMatched filter
Matched filter
 
Fpga
FpgaFpga
Fpga
 
Synchronous and asynchronous clock
Synchronous and asynchronous clockSynchronous and asynchronous clock
Synchronous and asynchronous clock
 
Low Power VLSI Design
Low Power VLSI DesignLow Power VLSI Design
Low Power VLSI Design
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsi
 
Unit ii.arc of tms320 c5 xx
Unit ii.arc of tms320 c5 xxUnit ii.arc of tms320 c5 xx
Unit ii.arc of tms320 c5 xx
 
faults in digital systems
faults in digital systemsfaults in digital systems
faults in digital systems
 
Pipelining approach
Pipelining approachPipelining approach
Pipelining approach
 
Flip Chip technology
Flip Chip technologyFlip Chip technology
Flip Chip technology
 
Logic synthesis using Verilog HDL
Logic synthesis using Verilog HDLLogic synthesis using Verilog HDL
Logic synthesis using Verilog HDL
 
Modified Gate Diffusion Input-MGDI
Modified Gate Diffusion Input-MGDIModified Gate Diffusion Input-MGDI
Modified Gate Diffusion Input-MGDI
 

Similar to Unit v. HDL Synthesis Process

Synthesis Examples
Synthesis ExamplesSynthesis Examples
Synthesis ExamplesMohamed Samy
 
Learning vhdl by examples
Learning vhdl by examplesLearning vhdl by examples
Learning vhdl by examplesanishgoel
 
learning vhdl by examples
learning vhdl by exampleslearning vhdl by examples
learning vhdl by examplesanishgoel
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfVelmathi Saravanan
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfsagar414433
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfsagar414433
 
An Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl pprAn Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl pprPrabhavathi P
 
Prepare a Verilog HDL code for the following register Positive Edge.pdf
Prepare a Verilog HDL code for the following register  Positive Edge.pdfPrepare a Verilog HDL code for the following register  Positive Edge.pdf
Prepare a Verilog HDL code for the following register Positive Edge.pdfezonesolutions
 
VHDL-Behavioral-Programs-Structure of VHDL
VHDL-Behavioral-Programs-Structure of VHDLVHDL-Behavioral-Programs-Structure of VHDL
VHDL-Behavioral-Programs-Structure of VHDLRevathi Subramaniam
 
Digital Electronics .
Digital Electronics                                              .Digital Electronics                                              .
Digital Electronics .inian2
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex modelsMohamed Samy
 
How to design Programs using VHDL
How to design Programs using VHDLHow to design Programs using VHDL
How to design Programs using VHDLEutectics
 

Similar to Unit v. HDL Synthesis Process (20)

Synthesis Examples
Synthesis ExamplesSynthesis Examples
Synthesis Examples
 
Learning vhdl by examples
Learning vhdl by examplesLearning vhdl by examples
Learning vhdl by examples
 
learning vhdl by examples
learning vhdl by exampleslearning vhdl by examples
learning vhdl by examples
 
Vhdl introduction
Vhdl introductionVhdl introduction
Vhdl introduction
 
Vhdl new
Vhdl newVhdl new
Vhdl new
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdf
 
VHDL Part 4
VHDL Part 4VHDL Part 4
VHDL Part 4
 
Verilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdfVerilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
An Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl pprAn Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl ppr
 
Prepare a Verilog HDL code for the following register Positive Edge.pdf
Prepare a Verilog HDL code for the following register  Positive Edge.pdfPrepare a Verilog HDL code for the following register  Positive Edge.pdf
Prepare a Verilog HDL code for the following register Positive Edge.pdf
 
verilog ppt .pdf
verilog ppt .pdfverilog ppt .pdf
verilog ppt .pdf
 
VHDL-Behavioral-Programs-Structure of VHDL
VHDL-Behavioral-Programs-Structure of VHDLVHDL-Behavioral-Programs-Structure of VHDL
VHDL-Behavioral-Programs-Structure of VHDL
 
Tutor1
Tutor1Tutor1
Tutor1
 
Digital Electronics .
Digital Electronics                                              .Digital Electronics                                              .
Digital Electronics .
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex models
 
Spdas2 vlsibput
Spdas2 vlsibputSpdas2 vlsibput
Spdas2 vlsibput
 
Vhdl
VhdlVhdl
Vhdl
 
How to design Programs using VHDL
How to design Programs using VHDLHow to design Programs using VHDL
How to design Programs using VHDL
 

More from Principal,Guru Nanak Institute of Technology, Nagpur (11)

Tcp ip
Tcp ipTcp ip
Tcp ip
 
Icmp
IcmpIcmp
Icmp
 
Congestion control
Congestion controlCongestion control
Congestion control
 
Unit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA ArchitectureUnit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA Architecture
 
Unit 3 instruction of tms320 c5x (3 files merged)
Unit 3  instruction of tms320 c5x (3 files merged)Unit 3  instruction of tms320 c5x (3 files merged)
Unit 3 instruction of tms320 c5x (3 files merged)
 
Unit 3 Instruction of tms320C5x
Unit 3  Instruction of tms320C5xUnit 3  Instruction of tms320C5x
Unit 3 Instruction of tms320C5x
 
Unit I.fundamental of Programmable DSP
Unit I.fundamental of Programmable DSPUnit I.fundamental of Programmable DSP
Unit I.fundamental of Programmable DSP
 
Unit V:Motorola 563xx
Unit V:Motorola 563xxUnit V:Motorola 563xx
Unit V:Motorola 563xx
 
Unit v.tms320 cs6x
Unit v.tms320 cs6xUnit v.tms320 cs6x
Unit v.tms320 cs6x
 
Unit4.addressing modes 54 xx
Unit4.addressing modes 54 xxUnit4.addressing modes 54 xx
Unit4.addressing modes 54 xx
 
Unit4.tms320c54x
Unit4.tms320c54xUnit4.tms320c54x
Unit4.tms320c54x
 

Recently uploaded

Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 

Recently uploaded (20)

Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 

Unit v. HDL Synthesis Process

  • 1. Dr. Sudhir N. Shelke Ph.D Principal, Guru Nanak Institute of Technology, Nagpur. Dr Sudhir Shelke Page 1 of 51
  • 2. What is Synthesis? Synthesis is the process of constructing a gate-level netlist from a model of a circuit described in VHDL. A synthesis program generates a RTL netlist (FF’s, ALU, multiplexer, interconnected by wires). So, the RTL module builder is necessary and the purpose of this builder is to build each of the required RTL blocks from a library of predefined components (user-specified target technology). After producing a gate-level netlist, a logic optimizer reads in this netlist and optimizes the circuit for the user-specified area and timing constraints. Dr Sudhir Shelke Page 2 of 51
  • 3. Dr Sudhir Shelke Page 3 of 51
  • 4. 1. Automatically manages many details of the design process: • Fewer bugs • Improves productivity 2. Abstracts the design data (HDL description) from any particular implementation technology • Designs can be re-synthesized targeting different chip technologies; E.g.: first implement in FPGA then later in ASIC 3. In some cases, leads to a more optimal design than could be achieved by manual means (e.g.: logic optimization) Why Not Logic Synthesis? 1. May lead to less than optimal designs in some cases Why Perform Logic Synthesis? Dr Sudhir Shelke Page 4 of 51
  • 5. Variety of general and ad-hoc (special case) methods: 1. Instantiation: maintains a library of primitive modules (AND, OR, etc.) and user defined modules. 2. “Macro expansion”/substitution: a large set of language operators (+, -, Boolean operators, etc.) and constructs (if-else, case) expand into special circuits. 3. Inference: special patterns are detected in the language description and treated specially (e.g.,: inferring memory blocks from variable declaration and read/write statements, FSM detection. 4. Logic optimization: Boolean operations are grouped and optimized with logic minimization techniques 5. Structural reorganization: advanced techniques including sharing of operators, and retiming of circuits (moving FFs), and others Dr Sudhir Shelke Page 5 of 51
  • 6. Dr Sudhir Shelke Page 6 of 51
  • 7. 1. A circuit can be described in any different ways, not all of which may be synthesizable. This is due to the fact that HDL was designed primarily as simulation language and not for synthesis. 2. There is no standardized subset of VHDL for synthesis. 3. There is no direct object in VHDL that means a latch or a flip-flop, 4. therefore, each synthesis system provide different mechanism to model a flip- flop or a latch. Dr Sudhir Shelke Page 7 of 51
  • 8. In VHDL, a signal, or a variable declared in a process, retains its value through the entire simulation run, thus inferring memory. Example : signal A, B, C, Z : bit; ……. No _memory : process(A, B, C) variable temp : bit; begin temp := A and B; Z <= temp or C; end process; VHDL semantics says that variable temp retains its value through the entire simulation run. Dr Sudhir Shelke Page 8 of 51
  • 9. Resource sharing is an optimization technique that uses a single functional block (such as an adder or comparator) to implement several operators in the HDL code. Use resource sharing to improve design performance by reducing the gate count and the routing congestion. The following operators can be shared either with instances of the same operator or with the operator on the same line. * + - >>=<<= For example, a + operator can be shared with instances of other + operators or with - operators. Dr Sudhir Shelke Page 9 of 51
  • 10. ONE can implement arithmetic functions (+, -, magnitude comparators) with gates, Synopsys Design Ware functions, or Xilinx Design Ware functions. Resource sharing adds additional logic levels to multiplex the inputs to implement more than one function. Since resource sharing allows you to reduce the number of design resources, the device area required for your design is also decreased. The area that is used for a shared resource depends on the type and bit width of the shared operation. Dr Sudhir Shelke Page 10 of 51
  • 11. Dr Sudhir Shelke Page 11 of 51
  • 12. Implementation of resource sharing Implementation of No resource sharing Dr Sudhir Shelke Page 12 of 51
  • 13. VHDL is a H/W modeling language used to model digital circuits Digital circuits can be either Combinational or Sequential Combinational Logic circuits: Implement Boolean functions whose output is only dependant on the present inputs Sequential Logic circuits: Implement circuits whose output depends on the present inputs & the history of the inputs. i.e. Circuits having storage elements Introduction 13Dr Sudhir Shelke Page 13 of 51
  • 14. Synthesis tools translate the VHDL code to a gate level netlist representing the actual H/W gates [and, or, not, Flip-Flops…et ] Only a subset of the language is synthesizable  A model can be either  Synthesizable: Used for both Simulation & Synthesis  Non-Synthesizable: Used for Simulation only Introduction Cont.. 14 VHDL Standard Synthesizable VHDL Dr Sudhir Shelke Page 14 of 51
  • 15. Combinational Logic 15 library IEEE; use IEEE.std_logic_1164.all; Entity mux_case is Port(a, b, c, d: in std_logic; Sel: in std_logic_vector(1 downto 0); F: out std_logic); End entity; Architecture rtl of mux_case is begin process (a,b,c,d,sel) is begin Case sel is When "00" => f <= a; When "01" => f <= b; When "10" => f <= c; When "11" => f <= d; when others => f <= a; End case; End process; End architecture; Example 1: 4x1 Multiplexer Dr Sudhir Shelke Page 15 of 51
  • 16. 16 • What is the impact of removing some signals from the sensitivity list as shown in example 2? Architecture rtl of mux_case is begin process (a,b,c,d,sel) is begin Case sel is When "00" => f <= a; When "01" => f <= b; When "10" => f <= c; When "11" => f <= d; when others => f <= a; End case; End process; End architecture; Architecture rtl of mux_case is begin process (a, sel) is begin Case sel is When "00" => f <= a; When "01" => f <= b; When "10" => f <= c; When "11" => f <= d; when others => f <= a; End case; End process; End architecture; Example 2: 4x1 MultiplexerExample 1: 4x1 Multiplexer Dr Sudhir Shelke Page 16 of 51
  • 17. 17 Architecture rtl of mux_case is begin process (a,b,c,d,sel) is begin Case sel is When "00" => f <= a; When "01" => f <= b; When "10" => f <= c; When "11" => f <= d; when others => f <= a; End case; End process; End architecture; Architecture rtl of mux_case is begin process (a, sel) is begin Case sel is When "00" => f <= a; When "01" => f <= b; When "10" => f <= c; When "11" => f <= d; when others => f <= a; End case; End process; End architecture; Example 2: 4x1 MultiplexerExample 1: 4x1 Multiplexer • No Impact on the synthesis results, however we will find that the simulation results differ • Synthesis tools don’t use the sensitivity list to determine the logic, but simulation tools depend on the sensitivity list to execute the process • Example 2 suffers a problem called “Simulation – Synthesis mismatch” Dr Sudhir Shelke Page 17 of 51
  • 18. Combinational Logic 18 • VHDL 2008* introduced the keyword "all" that implicitly adds all read signals to the sensitivity list to avoid “Simulation Synthesis mismatch” Architecture rtl of mux_case is begin process (all) is begin Case sel is When "00" => f <= a; When "01" => f <= b; When "10" => f <= c; When "11" => f <= d; when others => f <= a; End case; End process; End architecture; Example 3 Golden rule of thumb • To a oid Si ulatio Sy thesis is at h p o le s he odeli g Combinational logic, add all read signals to the sensitivity list Dr Sudhir Shelke Page 18 of 51
  • 19. Combinational Logic 19 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY add_sub IS port (a, b : in integer; result : out integer; operation: in std_logic); END ENTITY; ARCHITECTURE behave OF add_sub IS BEGIN process (a, b, operation) begin if (operation = '1') then result <= a + b; else result <= a - b; end if; end process; END ARCHITECTURE; Example 4: Adder-Subtractor Dr Sudhir Shelke Page 19 of 51
  • 20.  Consider that someone tries to re-use that code to implement an adder with an enable  He modifies the add_sub example; removes the else branch & e a es the ope atio po t to e a le as sho elo , Ho ould these changes affect the logic? Combinational Logic 20 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY adder IS port (a, b : in integer; result : out integer; enable: in std_logic); END ENTITY adder; ARCHITECTURE behave OF adder IS BEGIN process (a, b, enable) begin if (enable = '1') then result <= a + b; end if; end process; END ARCHITECTURE; Example 5: Dr Sudhir Shelke Page 20 of 51
  • 21.  This ill i fe a lat h, e ause e did ’t spe ify hat should happe to esult he e a le is ’t e ual to '1'  Si ulatio & sy thesis tools ill just keep the alue as is…i.e. It lat hes the last value Combinational Logic 21 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY adder IS port (a, b : in integer; result : out integer; enable: in std_logic); END ENTITY adder; ARCHITECTURE behave OF adder IS BEGIN process (a, b, enable) begin if (enable = '1') then result <= a + b; end if; end process; END ARCHITECTURE; Example 5: Dr Sudhir Shelke Page 21 of 51
  • 22.  In the below example, the "11" value of "sel" signal is not listed as a case choice, hence signal "F" is not assigned a value in this case  A Latch is inferred in this example  P o a ly that as ’t eeded Combinational Logic 22 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY incomplete_case IS port(sel : std_logic_vector (1 downto 0); A, B: std_logic; F : out std_logic); END ENTITY; ARCHITECTURE rtl OF incomplete_case IS BEGIN process (sel, A, B) begin case (sel) is when "00" => F <= A; when "01" => F <= B; when "10" => F <= A xor B; when others => null; end case; end process; END ARCHITECTURE; Example 6: Dr Sudhir Shelke Page 22 of 51
  • 23.  Do you think a Latch would be inferred in the below example? Skills Check 23 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY incomplete_assignment IS port(sel : in std_logic_vector (1 downto 0); A, B : in std_logic; O1, O2: out std_logic); END ENTITY; ARCHITECTURE rtl OF incomplete_assignment IS BEGIN process (sel, A, B) begin case (sel) is when "00" => O1 <= A; O2 <= A and B; when "01" => O1 <= B; O2 <= A xor B; when "10" => O1 <= A xor B; when "11" => O2 <= A or B; when others => O1 <= '0'; O2 <= '0'; end case; end process; END ARCHITECTURE; Example 7: Dr Sudhir Shelke Page 23 of 51
  • 24.  Do you think a Latch would be inferred in the below example? Skills Check (Soln.) 24 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY incomplete_assignment IS port(sel : in std_logic_vector (1 downto 0); A, B : in std_logic; O1, O2: out std_logic); END ENTITY; ARCHITECTURE rtl OF incomplete_assignment IS BEGIN process (sel, A, B) begin case (sel) is when "00" => O1 <= A; O2 <= A and B; when "01" => O1 <= B; O2 <= A xor B; when "10" => O1 <= A xor B; when "11" => O2 <= A or B; when others => O1 <= '0'; O2 <= '0'; end case; end process; END ARCHITECTURE; Example 7: • Latches are inferred for both signals "O1" & "O2" • Though the case is complete & no "null" statement is there, we find that "O1" & "O2" are not assigned in all case's branches  This is alled I o plete sig al assig e t Dr Sudhir Shelke Page 24 of 51
  • 25. 25Dr Sudhir Shelke Page 25 of 51
  • 26. 26 Library ieee; use ieee.std_logic_1164.all; Entity d_ff is Port(d, clk, rst : in std_logic; Q, nQ : out std_logic); end entity; Architecture behav of d_ff is Begin process(clk) begin If (rising_edge(clk)) then If (rst = '1') then Q <= '0'; nQ <= '0'; else Q <= d; nQ <= not (d); end if; end if; end process; end behav; • Let's model the well known D-FF with outputs Q & nQ and see the synthesis results Example 8: Dr Sudhir Shelke Page 26 of 51
  • 27. 27 Library ieee; use ieee.std_logic_1164.all; Entity d_ff is Port(d, clk, rst : in std_logic; Q, nQ : out std_logic); end entity; Architecture behav of d_ff is Begin process(clk) begin If (rising_edge(clk)) then If (rst = '1') then Q <= '0'; nQ <= '1'; else Q <= d; nQ <= not (d); end if; end if; end process; end behav; • Let's model the well known D-FF with outputs Q & nQ and see the synthesis results Example 8: Two Flip-Flops ?! Change the code to have only one Flip-Flop Dr Sudhir Shelke Page 27 of 51
  • 28. 28 • Let's model the well known D-FF with outputs Q & nQ and see the synthesis results Example 9: Yep…That's hat e a t! Library ieee; use ieee.std_logic_1164.all; Entity d_ff is Port( d, clk, rst : in std_logic; Q, nQ : out std_logic); end entity; Architecture behav of d_ff is signal Q_int: std_logic; Begin process(clk) begin If (rising_edge(clk)) then If (rst = '1') then Q_int <= '0'; else Q_int <= d; end if; end if; end process; Q <= Q_int; nQ <= not (Q_int); end behav; Dr Sudhir Shelke Page 28 of 51
  • 29. Sequential Logic 29 VHDL 360 © Library ieee; use ieee.std_logic_1164.all; Entity d_ffs is Port(d: std_logic_vector (3 downto 0); clk, rst : in std_logic; Q, nQ : out std_logic_vector (3 downto 0)); end entity; Architecture behav of d_ffs is signal Q_int: std_logic_vector (3 downto 0); Begin process(clk) begin If (rising_edge(clk)) then If (rst = '1') then Q_int <= (others => '0'); else Q_int <= d; end if; end if; end process; Q <= Q_int; nQ <= not (Q_int); end behav; • What about making an array of D-FFs? Example 10: Dr Sudhir Shelke Page 29 of 51
  • 30. 7 6 5 4 3 2 1 0 Library ieee; use ieee.std_logic_1164.all; entity shift_register is Port ( clk, D, enable : in STD_LOGIC; Q : out STD_LOGIC); end entity; architecture Behavioral of shift_register is begin process(clk) variable reg: std_logic_vector(7 downto 0); begin if rising_edge(clk) then if enable = '1' then for i in 1 to 7 loop reg(i-1) := reg(i); end loop; reg(7) := d; end if; end if; Q <= reg(0); end process; end Behavioral; Sequential Logic 30VHDL 360 © Example 11: 8-bit Shift Register (Shift right) Dr Sudhir Shelke Page 30 of 51
  • 31. Assignments under clock edge where the object value needs to be remembered across multiple process invocations  Flip-Flop  Signal assignment under clock edge will always infer a Flip-Flop  Variable assignment under clock edge will infer Flip-Flop only when its value ought to be remembered across process invocations Flip-Flop Inference 31 VHDL 360 © Dr Sudhir Shelke Page 31 of 51
  • 32. LIBRARY ieee; USE ieee.std_logic_1164.all; Entity unknown is port(x: out std_logic; y: in std_logic_vector(3 downto 0); c: in integer); End entity; Architecture behave of unknown is Begin x <= y(c); End behave; Deduce what the below code models Use synthesis tool to validate your answer 32Dr Sudhir Shelke Page 32 of 51
  • 33. Power Estimation and Analysis of FPGA based System. Dr Sudhir Shelke Page 33 of 51
  • 34.  As devices get larger and faster, power consumption goes up  First-generation FPGAs had  Lower performance  Lower power requirements  No package power concerns  Today’s FPGAs ha e  Much higher performance  Higher power requirements  Package power limit concerns  A System Monitor that provides active monitoring of the die temperature  Refer to the Virtex-6 User Guide for more information Performance (MHz) PMAX Package Power Limit Real World Design Power Consumption High Density Low Density Dr Sudhir Shelke Page 34 of 51
  • 35. High-speed and high- density designs require more power, leading to higher junction temperatures Package thermal limits exist  125° C for plastic  150° C for ceramic Power directly limits  System performance  Design density  Package options  Device reliability Dr Sudhir Shelke Page 35 of 51
  • 36. Estimating power consumption is a complex calculation  Power consumption of an FPGA is almost exclusively dynamic  Power consumption is dependent on design and is affected by  Output loading  System performance (switching frequency)  Design density (number of interconnects)  Design activity (percent of interconnects switching)  Logic block and interconnect structure  Supply voltage Dr Sudhir Shelke Page 36 of 51
  • 37. Power calculations can be performed at three distinct phases of the design cycle  Concept phase: A rough estimate of power can be calculated based on estimates of logic capacity and activity rates  Use the Xilinx Power Estimator spreadsheet  Design phase: Power can be calculated more accurately based on detailed information about how the design is implemented in the FPGA  Use the XPower Analyzer  System Integration phase: Power is calculated in a lab environment  Use actual instrumentation Accurate power calculation at an early stage in the design cycle will result in fewer problems later Dr Sudhir Shelke Page 37 of 51
  • 38.  Accurate activity rates (also known as toggle rates) are required for meaningful power calculations  Clocks and input signals have an absolute frequency  Synchronous logic nets use a percentage activity rate  100% indicates that a net is expected to change state on every clock cycle  Allows you to adjust the primary clock frequency and see the effect on power consumption  Can be set globally to an average activity rate on groups or individual nets  Logic elements also use a percentage activity rate  Based on the activity rate of output signals of the logic element  Logic elements have capacitance Dr Sudhir Shelke Page 38 of 51
  • 39.  Excel spreadsheets with power estimation formulas built in  Enter design data in white boxes  Power estimates are shown in gray boxes  Sheets  Summary (device totals)  Clock, Logic, I/O, Block RAMs, DSP, MMCM  GTX, TEMAC, PCIE  To download go to http://www.support.xilinx.com -> Technology Solutions -> Power  Download the XPE spreadsheet for your device family  XPE is not installed with the ISE software  The Power Solutions page has numerous resources Dr Sudhir Shelke Page 39 of 51
  • 40. Summary and Quiescent power White boxes allow you to enter design data Gray boxes show you the Power estimates Tabs at bottom allow you to enter power information per device resources (not shown) Settings reviews device, system, and environment information On-Chip Power breaks the estimated power consumption into device resources Dr Sudhir Shelke Page 40 of 51
  • 41. Summary and Quiescent power Power Supply reviews what power sources will be necessary Summary describes your systems total power and estimated junction temperature Dr Sudhir Shelke Page 41 of 51
  • 42. I/O power Clock power Logic power Dr Sudhir Shelke Page 42 of 51
  • 43. Block RAM, DSP, and MMCM power Dr Sudhir Shelke Page 43 of 51
  • 44. Graphs Dr Sudhir Shelke Page 44 of 51
  • 45. A utility for estimating the power consumption and junction temperature of FPGA and CPLD devices Reads an implemented design (NCD file) and timing constraint data You supply activity rates  Clock frequencies  Activity rates for nets, logic elements, and output pins  Capacitive loading on output pins  Power supply data and ambient temperature  Detailed design activity data from simulation (VCD file) The XPower Analyzer calculates the total average power consumption and generates a report Dr Sudhir Shelke Page 45 of 51
  • 46. Expand Implement Design  Place & Route Double-click XPower Analyzer to launch the XPower utility in interactive mode Use the Generate Power Data process to create reports using VCD files or TCL scripts Dr Sudhir Shelke Page 46 of 51
  • 47. Estimated junction temperature Reporting, settings, and thermal information is all placed in one utility As you manipulate system characteristics you will update the generated report Report Navigator allows for quick migration to various reports and functions of the utility Dr Sudhir Shelke Page 47 of 51
  • 48. Produced as a simple text file File is given .pwr extension Report is more detailed and stored in one text file Some what-if analysis information is included Includes a Power Improvement Guide Dr Sudhir Shelke Page 48 of 51
  • 49. Pipeli ning and Retim ing Adding registers along a path  split combinational logic into multiple cycles  increase clock rate  increase throughput  increase latency Dr Sudhir Shelke Page 49 of 51
  • 50. Pipeli ning and Retim ing Delay, d, of slowest combinational stage determines performance  clock period = d Throughput = 1/d : rate at which outputs are produced Latency = •d : number of stages * clock period Pipelining increases circuit utilization Registers slow down data, synchronize data paths Wave-pipelining  no pipeline registers - waves of data flow through circuit  relies on equal-delay circuit paths - no short paths Dr Sudhir Shelke Page 50 of 51
  • 51. Pipeli ning and Retim ing Where is the best place to add registers?  splitting combinational logic  overhead of registers (propagation delay and setup time requirements) What about cycles in data path? Example: 16-bit adder, add 8-bits in each of two cycles Dr Sudhir Shelke Page 51 of 51