SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Coding Style for Good
Synthesis
VinChip Systems
Agenda
 Basic Concepts of Logic Synthesis
 Synthesizable Verilog constructs
 Coding for Synthesis
 Conclusion
Basic Concepts of Logic Synthesis
 Converting a high-level description of design into an optimized gate-level representation.
 It uses Standard Cell Library
 Basic logic elements
 and
 or
 inverter (not),
 Nand, nor …
 Macro Cells like
 adder, multiplexers,
 memory, and special flip-flops.
Logic Synthesis
Synthesis = Translation + Optimization +Mapping
Limitation on Manual Design
 Error-Prone:
 For Large Designs, We can not determine the missed gates
 Hard to Verify:
 Designer would never sure about the conversion until gate level circuit implemented
and tested
 Time-Consuming:
 Time Consuming process to convert High level design into gate level design
 Hard to reuse:
 design reuse was not possible
 Impossible to optimize globally :
 Not Possible in global optimization – Each designed might designed in different
method.
Logic Synthesis
 There are two parts
 Translation
 Performs architectural optimizations and then creates an internal representation of the
design.
 Usually this is automatically done while design is imported to the synthesis tool.
 Optimization
 The resulting netlist to fit constraints on speed (timing constraint) and area (area
constraint)
 Most critical part of the process
 Logic optimization + Gate optimization
Synthesis Flow
RTL Source :
Logic Implemented in RTL
No Timing Information
HDL – Verilog or VHDL
Constraints
Timing Specification
Maximum Fan-Out
Maximum Capacitance
Port delays ..
Technology Library
Target Library – Target components
Link Library – Resolve references
Synthetic Library –Adders ..
GTECH Library – Tech Independent
Coding Guidelines for Synthesis
 Goals of coding guidelines
 Testability
 Performance
 Simplification of static timing analysis
 Matching gate-level behavior with that of the original RTL codes
Synthesizable Verilog constructs
 All the Verilog constructs are not synthesizable
 Only a subset of Verilog constructs can be synthesized
HDL Compiler Unsupported
 delay
 initial
 Repeat , wait
 fork … join
 event
 Assign, deassign – reg data type
 Force - release
 time
 triand, trior, tri1, tri0, trireg
 nmos, pmos, cmos, rnmos,
 rpmos, rcmos
 pullup, pulldown
 rtran, tranif0, tranif1, rtranif0,
 case identity and not identity
operators
Synthesizable Verilog Constructs
 Ports - Input , output , inouts
 Parameters - parameter
 Module definitions
 Signals and Variables
 Instantiations .
 Procedural block ,
 Data flow
Language Structure Translations
 Synthesizable operators
 Synthesizable constructs
 assignment statement
 if .. else statement
 case statement
 loop structures
 always statement
 memory synthesis approaches
Blocking and Nonblocking Assignments
 Two types of assignments
 Blocking assignments execute in sequential order.
 Nonblocking assignments execute Concurrently.
 Always use non blocking assignments in Sequential blocks
 Otherwise, the simulation behavior of the RTL and gate-level designs may
differ.
 Specifically, blocking assignments can lead to race conditions and
unpredictable behavior in simulations.
Blocking and Nonblocking Assignments
 Use non-blocking assignments to model sequential logic
 Use blocking assignments to model combinational logic
 Do not mix blocking and non-blocking assignments in the same always block.
 Do not make assignments to the same variable from more than one always block.
if- else statements
Synthesizing if-else Statements
For combinational logic
Completely specified?
For sequential logic
Completely specified?
always @(enable or data)
if (enable) y = data //infer a latch
always @(posedge clk)
if (enable) y <= data;
else y <= y; // a redundant expression
Synthesizing case Statements
 A case statement
 Infers a multiplexer
 Completely specified?
Latch Inference - Incomplete case Statements
 // Creating a latch
module latch_infer_case(select, data, y);
input select;
output y;
reg y;
always @(select or data)
case (select)
2'b00: y = data[select];
2'b01: y = data[select];
2'b10: y = data[select];
// default: y = 2'b11;
endcase
 No Default Statement – Infers a latch
 // Correct code
module latch_infer_case(select, data, y);
input select;
output y;
reg y;
always @(select or data)
case (select)
2'b00: y = data[select];
2'b01: y = data[select];
2'b10: y = data[select];
default: y = 2'b11;
endcase
Mixed Use of posedge/level Signals
 // the mixed usage of posedge/negedge
signal
//The result cannot be synthesized
module DFF (clk, reset, d, q);
…
// the body of DFF
always @(posedge clk or reset)
begin
if (reset) q <= 1'b0;
else q <= d;
end
 // the mixed usage of posedge/negedge
signal
//The result can be synthesized
module DFF (clk, reset, d, q);
…
// the body of DFF
always @(posedge clk or negedge reset)
begin
if (reset) q <= 1'b0;
else q <= d;
end
Sensitivity List
 For combinational blocks
 The sensitivity list must include every signal that is read by the process.
 Signals that appear on the right side of an assign statement
 Signals that appear in a conditional expression
Sensitivity List
 For sequential blocks
 The sensitive list must include the clock signal.
 If an asynchronous reset signal is used, include reset in the sensitivity list.
 Use only necessary signals in the sensitivity lists
 Unnecessary signals in the sensitivity list slow down simulation
for Loop
 Provide a shorter way to express a series of statements.
 Loop index variables must be integer type.
 Step, start & end value must be constant.
 In synthesis, for loops are “unrolled”, and then synthesized.
Memory Synthesis Approaches
 A flip-flop
 10 to 20 times the area of a 6-transistor static RAM cell
 Inefficient in terms of area
 Register files in datapaths
 use a synthesis directive
 hand instantiation
Memory Synthesis Approaches
 RAM standard components
 supplied by an ASIC vendor
 depend on the technology
 RAM compilers
 The most area-efficient approach
Guidelines for Clocks
 Using single global clock
 Avoiding using gated clocks
 Avoiding mixed use of both positive and negative edge-triggered flip-flops
 Avoiding using internally generated clock signals
Guidelines for Resets
 The basic design issues of resets are
 Asynchronous or synchronous?
 An internal or external power-on reset?
 More than one reset, hard vs. soft reset?
 Asynchronous reset
 Hard to implement and Does not require a free-running clock
 Makes STA more difficult
 Makes the automatic insertion of test structure more difficult
 Synchronous reset
 easy to implement
 Requires a free-running clock
Guidelines for Resets
 The basic writing styles
 The reset signal should be a direct clear of all flip-flops
Partitioning for Synthesis
 Keep related logic within the same module
Cntd..
 For good synthesis
 Register all outputs
 Locate related combinational logic in same module
 Do not use Glue logic in top module
 Separate module that have different design goals
Coding Style Guide for Optimizing Synthesis Results

Weitere ähnliche Inhalte

Was ist angesagt?

Synchronous and asynchronous reset
Synchronous and asynchronous resetSynchronous and asynchronous reset
Synchronous and asynchronous resetNallapati Anindra
 
14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossingUsha Mehta
 
Physical design-complete
Physical design-completePhysical design-complete
Physical design-completeMurali Rai
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 
VHDL-PRESENTATION.ppt
VHDL-PRESENTATION.pptVHDL-PRESENTATION.ppt
VHDL-PRESENTATION.pptDr.YNM
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology TutorialArrow Devices
 
Low power in vlsi with upf basics part 1
Low power in vlsi with upf basics part 1Low power in vlsi with upf basics part 1
Low power in vlsi with upf basics part 1SUNODH GARLAPATI
 
Clock divider by 3
Clock divider by 3Clock divider by 3
Clock divider by 3Ashok Reddy
 
Lecture 2 verilog
Lecture 2   verilogLecture 2   verilog
Lecture 2 verilogvenravi10
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flowPushpa Yakkala
 
Basic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSIBasic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSISurya Raj
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic SequencesArrow Devices
 
VLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyVLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyMurali Rai
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)shaik sharief
 

Was ist angesagt? (20)

Synchronous and asynchronous reset
Synchronous and asynchronous resetSynchronous and asynchronous reset
Synchronous and asynchronous reset
 
14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing
 
Physical design-complete
Physical design-completePhysical design-complete
Physical design-complete
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 
VHDL-PRESENTATION.ppt
VHDL-PRESENTATION.pptVHDL-PRESENTATION.ppt
VHDL-PRESENTATION.ppt
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology Tutorial
 
Low power in vlsi with upf basics part 1
Low power in vlsi with upf basics part 1Low power in vlsi with upf basics part 1
Low power in vlsi with upf basics part 1
 
Clock divider by 3
Clock divider by 3Clock divider by 3
Clock divider by 3
 
Lecture 2 verilog
Lecture 2   verilogLecture 2   verilog
Lecture 2 verilog
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flow
 
Basic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSIBasic synthesis flow and commands in digital VLSI
Basic synthesis flow and commands in digital VLSI
 
STA.pdf
STA.pdfSTA.pdf
STA.pdf
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic Sequences
 
UVM TUTORIAL;
UVM TUTORIAL;UVM TUTORIAL;
UVM TUTORIAL;
 
VLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool TerminalogyVLSI-Physical Design- Tool Terminalogy
VLSI-Physical Design- Tool Terminalogy
 
Clock Tree Synthesis.pdf
Clock Tree Synthesis.pdfClock Tree Synthesis.pdf
Clock Tree Synthesis.pdf
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 
Verilog
VerilogVerilog
Verilog
 

Andere mochten auch

I Never Thought I Would Grow Up to be This Formal
I Never Thought I Would Grow Up to be This FormalI Never Thought I Would Grow Up to be This Formal
I Never Thought I Would Grow Up to be This FormalDVClub
 
Cadcam considerations about fms
Cadcam considerations about fmsCadcam considerations about fms
Cadcam considerations about fmsSudhir Reddy
 
Rtl design optimizations and tradeoffs
Rtl design optimizations and tradeoffsRtl design optimizations and tradeoffs
Rtl design optimizations and tradeoffsGrace Abraham
 
timing-analysis
 timing-analysis timing-analysis
timing-analysisVimal Raj
 
Group Technology (Cell Manufacturing)
Group Technology (Cell Manufacturing)Group Technology (Cell Manufacturing)
Group Technology (Cell Manufacturing)Aishwary Kumar Gupta
 
Design and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiersDesign and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiersGrace Abraham
 
Static Timing Analysis
Static Timing AnalysisStatic Timing Analysis
Static Timing Analysisshobhan pujari
 
Flexible Manufacturing System (FMS)
Flexible Manufacturing System  (FMS)Flexible Manufacturing System  (FMS)
Flexible Manufacturing System (FMS)Prasanna3804
 
Lecture 25 flexible manufacturing systems [compatibility mode]
Lecture 25 flexible manufacturing systems [compatibility mode]Lecture 25 flexible manufacturing systems [compatibility mode]
Lecture 25 flexible manufacturing systems [compatibility mode]Dr.Muftooh Ur Rehman Siddiqi
 
Group technology by lathu
Group technology by lathuGroup technology by lathu
Group technology by lathumidetstudents
 
Formal Verification Techniques
Formal Verification TechniquesFormal Verification Techniques
Formal Verification TechniquesDVClub
 

Andere mochten auch (20)

I Never Thought I Would Grow Up to be This Formal
I Never Thought I Would Grow Up to be This FormalI Never Thought I Would Grow Up to be This Formal
I Never Thought I Would Grow Up to be This Formal
 
Cadcam considerations about fms
Cadcam considerations about fmsCadcam considerations about fms
Cadcam considerations about fms
 
group technology
group technologygroup technology
group technology
 
FIFODC
FIFODCFIFODC
FIFODC
 
VLSI_ASIC_Training_Summer_Offer
VLSI_ASIC_Training_Summer_OfferVLSI_ASIC_Training_Summer_Offer
VLSI_ASIC_Training_Summer_Offer
 
Rtl design optimizations and tradeoffs
Rtl design optimizations and tradeoffsRtl design optimizations and tradeoffs
Rtl design optimizations and tradeoffs
 
Synthesis
SynthesisSynthesis
Synthesis
 
Vlsi
VlsiVlsi
Vlsi
 
timing-analysis
 timing-analysis timing-analysis
timing-analysis
 
Fms (1)
Fms (1)Fms (1)
Fms (1)
 
FIFOPt
FIFOPtFIFOPt
FIFOPt
 
Group Technology (Cell Manufacturing)
Group Technology (Cell Manufacturing)Group Technology (Cell Manufacturing)
Group Technology (Cell Manufacturing)
 
Design and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiersDesign and implementation of cmos rail to-rail operational amplifiers
Design and implementation of cmos rail to-rail operational amplifiers
 
Static Timing Analysis
Static Timing AnalysisStatic Timing Analysis
Static Timing Analysis
 
Flexible Manufacturing System (FMS)
Flexible Manufacturing System  (FMS)Flexible Manufacturing System  (FMS)
Flexible Manufacturing System (FMS)
 
Lecture 25 flexible manufacturing systems [compatibility mode]
Lecture 25 flexible manufacturing systems [compatibility mode]Lecture 25 flexible manufacturing systems [compatibility mode]
Lecture 25 flexible manufacturing systems [compatibility mode]
 
Cellular manufacturing
Cellular manufacturingCellular manufacturing
Cellular manufacturing
 
8 bit alu design
8 bit alu design8 bit alu design
8 bit alu design
 
Group technology by lathu
Group technology by lathuGroup technology by lathu
Group technology by lathu
 
Formal Verification Techniques
Formal Verification TechniquesFormal Verification Techniques
Formal Verification Techniques
 

Ähnlich wie Coding Style Guide for Optimizing Synthesis Results

Verilog Lecture2 thhts
Verilog Lecture2 thhtsVerilog Lecture2 thhts
Verilog Lecture2 thhtsBéo Tú
 
24-02-18 Rejender pratap.pdf
24-02-18 Rejender pratap.pdf24-02-18 Rejender pratap.pdf
24-02-18 Rejender pratap.pdfFrangoCamila
 
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
 
EMBEDDED SYSTEMS 4&5
EMBEDDED SYSTEMS 4&5EMBEDDED SYSTEMS 4&5
EMBEDDED SYSTEMS 4&5PRADEEP
 
SKEL 4273 CAD with HDL Topic 2
SKEL 4273 CAD with HDL Topic 2SKEL 4273 CAD with HDL Topic 2
SKEL 4273 CAD with HDL Topic 2alhadi81
 
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization ApproachesPragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization ApproachesMarina Kolpakova
 
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerPragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerMarina Kolpakova
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdlArshit Rai
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?Sameh El-Ashry
 
Optimization in Programming languages
Optimization in Programming languagesOptimization in Programming languages
Optimization in Programming languagesAnkit Pandey
 

Ähnlich wie Coding Style Guide for Optimizing Synthesis Results (20)

2nd presantation
2nd presantation2nd presantation
2nd presantation
 
Verilog Lecture2 thhts
Verilog Lecture2 thhtsVerilog Lecture2 thhts
Verilog Lecture2 thhts
 
24-02-18 Rejender pratap.pdf
24-02-18 Rejender pratap.pdf24-02-18 Rejender pratap.pdf
24-02-18 Rejender pratap.pdf
 
Joel Falcou, Boost.SIMD
Joel Falcou, Boost.SIMDJoel Falcou, Boost.SIMD
Joel Falcou, Boost.SIMD
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdf
 
bluespec talk
bluespec talkbluespec talk
bluespec talk
 
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
 
EMBEDDED SYSTEMS 4&5
EMBEDDED SYSTEMS 4&5EMBEDDED SYSTEMS 4&5
EMBEDDED SYSTEMS 4&5
 
Matopt
MatoptMatopt
Matopt
 
SKEL 4273 CAD with HDL Topic 2
SKEL 4273 CAD with HDL Topic 2SKEL 4273 CAD with HDL Topic 2
SKEL 4273 CAD with HDL Topic 2
 
verilog ppt .pdf
verilog ppt .pdfverilog ppt .pdf
verilog ppt .pdf
 
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization ApproachesPragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
 
Crash course in verilog
Crash course in verilogCrash course in verilog
Crash course in verilog
 
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerPragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
 
Tutor1
Tutor1Tutor1
Tutor1
 
Optimization in Programming languages
Optimization in Programming languagesOptimization in Programming languages
Optimization in Programming languages
 

Mehr von Vinchipsytm Vlsitraining (11)

Verilog Tasks and functions
Verilog Tasks and functionsVerilog Tasks and functions
Verilog Tasks and functions
 
Hard ip based SoC design
Hard ip based SoC designHard ip based SoC design
Hard ip based SoC design
 
Optimizing for low power in embedded mcu designs
Optimizing for low power in embedded mcu designsOptimizing for low power in embedded mcu designs
Optimizing for low power in embedded mcu designs
 
system verilog
system verilogsystem verilog
system verilog
 
Chip packaging technology
Chip packaging technologyChip packaging technology
Chip packaging technology
 
USB 2.0
USB 2.0USB 2.0
USB 2.0
 
SOC design
SOC design SOC design
SOC design
 
Axi
AxiAxi
Axi
 
Usb 2
Usb 2Usb 2
Usb 2
 
Low power vlsi design
Low power vlsi designLow power vlsi design
Low power vlsi design
 
Verification strategies
Verification strategiesVerification strategies
Verification strategies
 

Kürzlich hochgeladen

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Coding Style Guide for Optimizing Synthesis Results

  • 1. Coding Style for Good Synthesis VinChip Systems
  • 2. Agenda  Basic Concepts of Logic Synthesis  Synthesizable Verilog constructs  Coding for Synthesis  Conclusion
  • 3. Basic Concepts of Logic Synthesis  Converting a high-level description of design into an optimized gate-level representation.  It uses Standard Cell Library  Basic logic elements  and  or  inverter (not),  Nand, nor …  Macro Cells like  adder, multiplexers,  memory, and special flip-flops.
  • 4. Logic Synthesis Synthesis = Translation + Optimization +Mapping
  • 5. Limitation on Manual Design  Error-Prone:  For Large Designs, We can not determine the missed gates  Hard to Verify:  Designer would never sure about the conversion until gate level circuit implemented and tested  Time-Consuming:  Time Consuming process to convert High level design into gate level design  Hard to reuse:  design reuse was not possible  Impossible to optimize globally :  Not Possible in global optimization – Each designed might designed in different method.
  • 6. Logic Synthesis  There are two parts  Translation  Performs architectural optimizations and then creates an internal representation of the design.  Usually this is automatically done while design is imported to the synthesis tool.  Optimization  The resulting netlist to fit constraints on speed (timing constraint) and area (area constraint)  Most critical part of the process  Logic optimization + Gate optimization
  • 7. Synthesis Flow RTL Source : Logic Implemented in RTL No Timing Information HDL – Verilog or VHDL Constraints Timing Specification Maximum Fan-Out Maximum Capacitance Port delays .. Technology Library Target Library – Target components Link Library – Resolve references Synthetic Library –Adders .. GTECH Library – Tech Independent
  • 8. Coding Guidelines for Synthesis  Goals of coding guidelines  Testability  Performance  Simplification of static timing analysis  Matching gate-level behavior with that of the original RTL codes
  • 9. Synthesizable Verilog constructs  All the Verilog constructs are not synthesizable  Only a subset of Verilog constructs can be synthesized
  • 10. HDL Compiler Unsupported  delay  initial  Repeat , wait  fork … join  event  Assign, deassign – reg data type  Force - release  time  triand, trior, tri1, tri0, trireg  nmos, pmos, cmos, rnmos,  rpmos, rcmos  pullup, pulldown  rtran, tranif0, tranif1, rtranif0,  case identity and not identity operators
  • 11. Synthesizable Verilog Constructs  Ports - Input , output , inouts  Parameters - parameter  Module definitions  Signals and Variables  Instantiations .  Procedural block ,  Data flow
  • 12. Language Structure Translations  Synthesizable operators  Synthesizable constructs  assignment statement  if .. else statement  case statement  loop structures  always statement  memory synthesis approaches
  • 13. Blocking and Nonblocking Assignments  Two types of assignments  Blocking assignments execute in sequential order.  Nonblocking assignments execute Concurrently.  Always use non blocking assignments in Sequential blocks  Otherwise, the simulation behavior of the RTL and gate-level designs may differ.  Specifically, blocking assignments can lead to race conditions and unpredictable behavior in simulations.
  • 14. Blocking and Nonblocking Assignments  Use non-blocking assignments to model sequential logic  Use blocking assignments to model combinational logic  Do not mix blocking and non-blocking assignments in the same always block.  Do not make assignments to the same variable from more than one always block.
  • 15. if- else statements Synthesizing if-else Statements For combinational logic Completely specified? For sequential logic Completely specified? always @(enable or data) if (enable) y = data //infer a latch always @(posedge clk) if (enable) y <= data; else y <= y; // a redundant expression
  • 16. Synthesizing case Statements  A case statement  Infers a multiplexer  Completely specified?
  • 17. Latch Inference - Incomplete case Statements  // Creating a latch module latch_infer_case(select, data, y); input select; output y; reg y; always @(select or data) case (select) 2'b00: y = data[select]; 2'b01: y = data[select]; 2'b10: y = data[select]; // default: y = 2'b11; endcase  No Default Statement – Infers a latch  // Correct code module latch_infer_case(select, data, y); input select; output y; reg y; always @(select or data) case (select) 2'b00: y = data[select]; 2'b01: y = data[select]; 2'b10: y = data[select]; default: y = 2'b11; endcase
  • 18. Mixed Use of posedge/level Signals  // the mixed usage of posedge/negedge signal //The result cannot be synthesized module DFF (clk, reset, d, q); … // the body of DFF always @(posedge clk or reset) begin if (reset) q <= 1'b0; else q <= d; end  // the mixed usage of posedge/negedge signal //The result can be synthesized module DFF (clk, reset, d, q); … // the body of DFF always @(posedge clk or negedge reset) begin if (reset) q <= 1'b0; else q <= d; end
  • 19. Sensitivity List  For combinational blocks  The sensitivity list must include every signal that is read by the process.  Signals that appear on the right side of an assign statement  Signals that appear in a conditional expression
  • 20. Sensitivity List  For sequential blocks  The sensitive list must include the clock signal.  If an asynchronous reset signal is used, include reset in the sensitivity list.  Use only necessary signals in the sensitivity lists  Unnecessary signals in the sensitivity list slow down simulation
  • 21. for Loop  Provide a shorter way to express a series of statements.  Loop index variables must be integer type.  Step, start & end value must be constant.  In synthesis, for loops are “unrolled”, and then synthesized.
  • 22. Memory Synthesis Approaches  A flip-flop  10 to 20 times the area of a 6-transistor static RAM cell  Inefficient in terms of area  Register files in datapaths  use a synthesis directive  hand instantiation
  • 23. Memory Synthesis Approaches  RAM standard components  supplied by an ASIC vendor  depend on the technology  RAM compilers  The most area-efficient approach
  • 24. Guidelines for Clocks  Using single global clock  Avoiding using gated clocks  Avoiding mixed use of both positive and negative edge-triggered flip-flops  Avoiding using internally generated clock signals
  • 25. Guidelines for Resets  The basic design issues of resets are  Asynchronous or synchronous?  An internal or external power-on reset?  More than one reset, hard vs. soft reset?  Asynchronous reset  Hard to implement and Does not require a free-running clock  Makes STA more difficult  Makes the automatic insertion of test structure more difficult  Synchronous reset  easy to implement  Requires a free-running clock
  • 26. Guidelines for Resets  The basic writing styles  The reset signal should be a direct clear of all flip-flops
  • 27. Partitioning for Synthesis  Keep related logic within the same module
  • 28. Cntd..  For good synthesis  Register all outputs  Locate related combinational logic in same module  Do not use Glue logic in top module  Separate module that have different design goals