Download presentation
Presentation is loading. Please wait.
Published byElla Lindsey Modified over 9 years ago
2
Logic Synthesis assign z=a&b a b z
3
What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form a connected whole. Often contrasted with ANALYSIS. 2 the production of chemical compounds by reaction from simpler materials. ANALYSIS — DERIVATIVES synthesist noun. — ORIGIN Greek sunthesis, from suntithemai ‘ place together ’.
4
Synthesis Translation from a higher-level description to a lower-level description Logic or RTL synthesis: Translation of RTL code to logic gates and other basic components
5
RTL synthesis
6
Partitioning for Synthesis
7
Guideline Avoid internally generated clocks Instead, use a separate block for clock generation
8
Rule Avoid combinational feedback
9
Do not use case statements to describe larger than 2-to-1 MUXs if sel = “00” then o <= a; elsif sel = “01” then o <= b; elsif sel = “10” then o <= c; else o <= d; end if;
10
Use Case statement instead case sel is when “00” => o <= a; when “01” => o <= b; when “10” => o <= c; when others => o <= d; end case;
11
Register all outputs Bad Better Ideal
12
Avoid glue logic at the top Incorrect Correct
13
RTL coding for synthesis Keep code technology independent (no instantiations of technology primitives) Clock gating logic and reset generation kept in one block Avoid multiple clocks per block (Sync logic should be in a separate module) No glue logic at the top Register all outputs
14
RTL coding for logic No incomplete sensitivity lists Use the case statement for muxes, specifying the “others” case
15
RTL coding for state machines Use enumerated types, do not perform state assignment Separate combinational logic from state registers Use case statements
16
Specifying design constraints Timing (clock frequency, I/O timing) Area (mm^2, #CLBs) I/O pads and pins
17
Design for Reuse – IP block design
18
Design for Use vs Design for Reuse Design for use –Good documentation –Good code –Thorough commenting –Well-designed verification environment –Robust scripts Design for reuse (3x design for use effort) –Design to solve a general problem –Support for multiple technologies –Multiple simulator support (both VHDL and Verilog) –Support for standard-based interfaces –Verified to a high level of confidence –Fully documented
19
RTL coding guidelines for reuse Include a header mentioning –Filename –Author –Date –Time –Abstract –Modification history Use comments extensively, but not pointlessly Use indentation (recommended 2 spaces per nest)
20
Header example -- File : tsu.vhd -- Author : K. Tatas -- Date : 09/06/07 -- Version : 0.1 -- Abstract : TSU top-level structural file -- Modification History: -- Date By Version Change Description -- 9/06/07 K. Tatas 0.1 Original -- 11/07/07 K.Tatas 1.1. Included Interrupt block -- 03/08/07 K. Tatas 1.2 changes from OPB to PLB bus
21
I/O ordering One signal per line Separate inputs from outputs Order –Clocks –Resets –Control signals –Data/address signals
22
RTL coding guidelines for reuse Use std_logic types Do not use hard-coded numeric values Use packages Use descriptive names for signals, enitities, etc. Use nominal, not positional association in port mapping of components Use suffixes for signal names –_n for active low signals such as reset –_r for signals that are outputs of registers –_p, _p1, _p2, for phases of the same signal
23
Guideline Avoid mixed clock edges If not possible, isolate mixed clock domains
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.