DEF (Design Exchange Format)
Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.
All 10 cards in this section, with answers
-
UNITS DISTANCE MICRONS 2000 ;Coordinates are integers of one two-thousandth of a micron.
Hint: Ask what a coordinate of 1000 means after this line.
DEF (Design Exchange Format) stores coordinates as integers in database units to avoid rounding, so 1000 here is 0.5 microns. The factor also sets the manufacturing grid a tool will snap to, which is why a mismatch between files is a real problem. the open flow reference
-
DIEAREA ( 0 0 ) ( 200000 200000 ) ; ROW ROW_0 FreePDK45_38x28_10R_NP_162NW_34O 380 2800 N DO 520 BY 1 STEP 380 0 ;The die outline, and a row repeated across 520 sites.
Hint: The row line ends with a repetition. Ask what it describes.
The row is 520 sites across, stepping in x.
DO ... BY ... STEPis how DEF (Design Exchange Format) repeats a row without listing every site: 520 sites across, one row deep, stepping by one site width.Nis the orientation, which alternates between rows so neighbouring rows share power rails. the open flow reference -
COMPONENTS 1250 ; - _123_ INV_X1 + PLACED ( 12540 28000 ) N ; - _124_ DFF_X1 + FIXED ( 15200 28000 ) FS ; END COMPONENTSInstances with cell, location, and whether they may be moved.
Hint: Two instances, two different status words. Ask what the difference means to a tool.
The status word decides whether a tool may move it:
PLACEDmeans yes,FIXEDmeans no, which is how macros and pre-placed cells are protected.UNPLACEDhas no coordinates. The orientation,NorFShere, matters because it decides which way the cell's rails and pins face. the open flow reference -
NETS 980 ; - clk ( PIN clk ) ( _124_ CK ) + USE CLOCK + ROUTED metal3 ( 12540 28000 ) ( 12540 45000 ) NEW metal4 ( 12540 45000 ) ( 30000 45000 ) ; END NETSA net's connections and its routed wire segments.
Hint: The net lists connections first, then something else. Ask what NEW starts.
Connections come first, then the wires. A routed net is a list of segments, each with a layer and points;
NEWbegins a segment that does not continue the previous one, which is how branches are written.USE CLOCKmarks what kind of net it is, so tools can treat clocks specially. the open flow reference -
SPECIALNETS 2 ; - VDD ( * VDD ) + USE POWER + ROUTED metal1 480 + SHAPE FOLLOWPIN ( 0 2800 ) ( 200000 2800 ) ; END SPECIALNETSPower and ground, whose wires carry an explicit width and shape.
Hint: Ask what is special: compare the width and the connection list with an ordinary net.
Ordinary nets take their width from the layer's rule; supply wires are drawn wide and are written with their own width and a
SHAPEthat says what they are, such asFOLLOWPINfor a standard-cell rail. The( * VDD )connection means every instance's VDD pin. the open flow reference -
PINS 42 ; - clk + NET clk + DIRECTION INPUT + USE SIGNAL + LAYER metal3 ( -70 -70 ) ( 70 70 ) + PLACED ( 45000 0 ) N ; END PINSA boundary pin's net, direction, shape, and placement.
Hint: Two coordinate pairs appear. Ask which is the shape and which the position.
The shape is relative to the pin's own origin, and
PLACEDputs that origin on the die. TheLAYERrectangle is the shape, andPLACEDputs that origin on the die. This is whatplace_pinswrites and what a top level reads to know where a block's connections are. the open flow reference -
TRACKS X 190 DO 193 STEP 380 LAYER metal1 ; TRACKS Y 140 DO 262 STEP 280 LAYER metal1 ;The routing grid: 193 vertical tracks from 190, every 380 database units.
Hint: Three numbers: where they start, how many, and how far apart.
With 2000 database units to the micron, the step is 0.19 microns. A router places wire centres on these tracks, so the count is the hard limit on how many wires cross the block on that layer. The two directions are given separately because each layer has a preferred one. the open flow reference
-
- FILLER_0_1 FILLCELL_X32 + SOURCE DIST + PLACED ( 2660 2800 ) N ; - _504_ NAND2_X1 + PLACED ( 12540 28000 ) FS ;Which stage created the instance, and the orientation it sits at.
Hint: One instance says where it came from, and the other says how it is turned.
SOURCE DISTmarks a cell added by the tool for distribution, such as filler; the alternatives include netlist, timing, and user. The orientationFSis flipped about the horizontal axis, which is how cells in an odd row line their supply rails up with the row below. the open flow reference -
NONDEFAULTRULES 1 ; - CTS_NDR_0 + LAYER metal1 WIDTH 140 SPACING 280 + LAYER metal4 WIDTH 280 SPACING 560 ; - clk ( PIN clk ) ( clkbuf_0_clk A ) + USE CLOCK + NONDEFAULTRULE CTS_NDR_0A rule giving some nets wider wires and more space, here the clock.
Hint: Compare the widths and spacings against what the technology allows as a minimum.
Widening a clock wire lowers its resistance, and doubling its spacing cuts coupling from neighbours, which protects the clock from crosstalk it would otherwise pick up. The cost is routing area, so the rule is applied to the nets that need it rather than to everything. the open flow reference
-
- _002_ ( _597_ A2 ) ( _595_ A2 ) + USE SIGNAL + ROUTED metal3 ( 31350 49140 ) ( 40090 * ) NEW metal2 ( 40850 48860 ) ( * 49140 ) NEW metal1 ( 31350 51940 ) via1_4Wire segments, where an asterisk repeats the unchanged coordinate.
Hint: The asterisk stands for a coordinate. Ask which one.
A segment runs from one point to another, and because wires are straight only one coordinate changes, so the other is written as an asterisk.
NEWstarts a segment that does not continue from the last one, and a via name in place of an end point drops that via at the point given. the open flow reference