|
1
|
|
|
2
|
- Indicating Logic Basics
- Dual-Rail and Other types of Encoding
- Indicating Logic Types
- Strongly vs. Weakly Indicating
- DIMS (Delay Insensitive Minterm Synthesis)
- NCL (Null Convention Logic)
- NCLX (NCL with eXplicit Completion)
- NCLX Output Completion Network
- Dual-Polarity DR Logic
- Monotonic Boolean Networks (MBN)
- Support for Negative Gates (NAND, NOR, … etc.)
|
|
3
|
- Indicating logic is able to generate a data-dependent
Completion Detection (CD/DONE) signal
- Indicates that valid data have arrived at the
C.L. cloud’s outputs
- What was there before valid data arrived?
- difficult separating successive data values (Validn, Validn+1,
…)
- Intermediate value between valid data used (NULL/Spacer)
- Indicating circuit operation is two-phase: NULL, DATA, NULL, DATA, …
|
|
4
|
- Indicating circuit operation is two-phase:
- NULL, DATA, NULL, DATA, …
- Boolean Logic encodes two values:
- We need DATA and NULL, i.e. three values
- 0 or 1 or NULL, T or F or NULL
- Simplest ternary logic is dual-rail
- Need two wires per Boolean signal
|
|
5
|
- Dual-rail encoding allows us to detect DATA arrival at
- Definition[Strongly/Weakly Indicating Logic]
- A circuit is strongly-indicating iff it waits for all of its inputs to
arrive before it computes and produces valid outputs, as well as for
all of its inputs to become NULL before it produces NULL outputs
|
|
6
|
- Orphans represent unacknowledged circuit nodes
at the POs
- Definition[Wire Orphan]
- An orphan wire, or wire orphan is an indicating circuit wire, a signal
transition of which, triggered by a given and valid input transition,
is NOT acknowledged by a respective signal transition on any PO
- Definition[Gate Orphan]
- An orphan gate, or gate orphan is an indicating circuit gate, a signal
transition through which, triggered by a given and valid input
transition, is NOT acknowledged by a respective signal transition on
any PO
|
|
7
|
- Thick lines
- Dotted lines
- wire orphans which do not propagate, and are unacknowledged, but must
be cleared before new data
|
|
8
|
- Orphan on lower input wire of g3 causes erroneous output on z1
|
|
9
|
- In this example, orphans propagate through gates
- For proper reset dotted lines MUST return to zero
- But this cannot be checked by inspection of the circuit’s outputs!
|
|
10
|
|
|
11
|
- DIMS is the simplest form of DR logic
- Each signal is instantiated in .t and .f rails
- Truth-table Minterms directly translated to 2-level DR logic
- 1st DR circuit level is C-Elements, 2nd level is
OR gates
|
|
12
|
- Four-input NAND Example in DIMS
|
|
13
|
|
|
14
|
|
|
15
|
- Threshold gates
- generalisation of
C-elements
- Threshold Gate Output Rises when the number of threshold inputs rises
- Threshold Gate Output Falls when all inputs fall
|
|
16
|
- Hysteresis means Sequential
- Threshold 23 gate switches:
- high when 2 of 3 inputs are high
- low when all 3 inputs are low
- Boolean Function Format:
- z = ab + ac + bc + z(a + b + c)
|
|
17
|
- Combinational Logic and Registers are separated
|
|
18
|
|
|
19
|
- Dual-rail expansion
- Two phases (set and reset) are separated
- Set phase ensures circuit functionality
- Reset phase is implied
- Optimizations are applied to the set phase
|
|
20
|
|
|
21
|
- No Difference to DIMS implementation of standard-cell gates
|
|
22
|
- Conventional RTL Description
|
|
23
|
- Conventional RTL to Boolean Gates Synthesis
|
|
24
|
- Define new type for signal logic – dual_rail_logic
type dual_rail_logic is record
rail1 : std_logic ;
rail0 : std_logic ;
end record;
- Overload common operators/gates:
|
|
25
|
- Naive semi-static DIMS implementation – 114 transistors - may be reduced to 63 transistors by merging C-elements
with OR-gates - versus 14 for a synchronous circuit
|
|
26
|
- During the set phase C-elements in D-R gates behave like AND gates
|
|
27
|
|
|
28
|
- This circuit contains DCs
|
|
29
|
- Technology independent optimization (DCs)
- Technology-mapping of image gates to NCL library gates
|
|
30
|
- Final NCL circuit
- Image gates (Set phase) are replaced by sequential NCL
standard-cells with reset pull-ups
|
|
31
|
- Typically, actual area overhead is >2.5X
|
|
32
|
|
|
33
|
- Aims to reduce huge area overhead of NCL
- Strongly-Indicating Logic (alike DIMS/NCL)
- Key Idea
- Separate Functional Part (Set Functions for DR Outputs)
and Delay-Insensitive Part (Resetting and Orphans)
- Four Boolean Networks
- Dual-Rail Functional Part (DR Inputs à DR Outputs)
- Input Completion Part for Strong-Indication
- Also referred to as.go signal
- Intermediate Node Completion Part for Orphan Elimination
- Output Completion Part for Strong-Indication
- Input Completion and Local Completion are merged
|
|
34
|
|
|
35
|
- Weakly-Indicating
- No input, local node completion
- Timing assumptions required for orphan nodes/gates
|
|
36
|
- Boolean Network consists of
- Monotonic Nodes
- Must be Unate
- Unate = node function contains each variable in either
non-complemented or complemented form
|
|
37
|
|
|
38
|
|
|
39
|
|
|
40
|
|
|
41
|
- Good improvement over NCL
- Difficult to reduce area further without sacrificing delay-insensitivity
|
|
42
|
|
|
43
|
|
|
44
|
- All methodologies so far only support
positive polarity gates (positive unate)
- Dual-Polarity DR Logic supports both
Positive and Negative Polarity Gates
- CMOS Negative gates are faster than positive gates
- Positive gates are Negative gates + inverter
- General methodology for Boolean Network transformation to a Monotonic
Boolean Network
|
|
45
|
|
|
46
|
- We can allow for BN nodes to be phased as negative or positive
- Definition[Increasing/Decreasing Node]
- BN node f is increasing (decreasing) in positive (negative) variable xi
à
xi: 0→1 (1→0), f cannot change 1→0
(0 →1)
- Definition[Unate Function]
- BN function f unate in xi, iff f is increasing or decreasing
in xi
- Definition[Positive/Negative Nodes]
- Node ni with local function fi is +ve (-ve)
- xi is +ve (-ve) and fi is increasing in xi,OR
xi is -ve (+ve) and fi is decreasing in xi.
- Definition [Monotonic Node]
- A node is monotonic if it is either +ve or –ve.
- Definition [Monotonic Boolean Network]
- A BN is MBN if all its nodes are monotonic
- MBN is hazard-free under monotonic input transitions
|
|
47
|
- Assign polarity to every node to check monotonicity.
|
|
48
|
|
|
49
|
- Key Questions:
- given a BN, how do we transform it to an MBN?
- given an MBN, which transformations and optimizations can we apply to
reduce to another MBN?
- Answers:
- Provide two transformation procedures, based on the dual-rail code, for
generating an MBN from a generic BN:
- Technology-Independent (TI) Conversion
- Technology-Mapped (TM) Conversion
- Provide a set of hazard-non-increasing transformations on MBNs.
|
|
50
|
- For each PI x, create xt and xf representing the
true and false evaluations of x.
- For each node implementing yi = fi(x1,
…, xn), create two nodes:
- yti = DR(fi(x1, …, xn))
and yfi = DR(fi’(x1, …, xn))
- y = x’, special case, yt = xf, yf = xt
- Define DR recursively (based on Shannon Expansion Th.):
- DR(0) = 0, DR(1) = 1
- DR(x.fx + x’.fx’) = xt.DR(fx)
+ xf.DR(fx’)
- Theorem[DR Conversion]
- Given function y = f(x1, …,xn), under the
assumption that
xi = xti
= xfi’ it holds that y = yt = yf’
- Proof: by induction on function DR
|
|
51
|
- y = a’b + b(c + d’)
- yt = DR(a’b + b(c + d’)) = atbf + bt(ct
+ df)
- yf = DR(a’b + b(c + d’))’ = (af + bt)(bf
+ cfdt)
- How do I convert?
- Use Shannon’s Expansion Theorem
- assume that xi = xti
= xfi’, for all nodes/POs x in circuit
- Use the SIS dr package!
|
|
52
|
|
|
53
|
- Dual-Rail Conversion:
- yt = atbf + bt(ct
+ df)
- yf = (af + bt)(bf + cfdt)
|
|
54
|
- Technology Mapping to a library
|
|
55
|
- For each gate, producing signal yti, from signals
ytj, …, ytk, add a dual
gate, based on De Morgan’s law.
- Label each node as +ve or –ve, starting from the PO’s, according to gate
polarities
- In case of multiple paths from POs to the node, consider the longest
- For each inconsistently labeled gate input or PI, which is, invert and
connect to its dual
|
|
56
|
- Original technology-mapped circuit:
|
|
57
|
|
|
58
|
|
|
59
|
|
|
60
|
- Set of transformations that preserve MBN:
- De Morgan’s laws.
- Dual global and global flow.
- Tree decomposition.
- Gate replication.
- Collapsing.
- Kernel-factoring.
- Cube-factoring.
|
|
61
|
- The MBN approach is NOT delay-insensitive
- Set function performs Completion-Detection
- Reset is timed
- Note that typically MBN requires reset at every cycle
- This is an issue for speed
- Fast Reset Approach
- Slice DR Logic Circuit with multiple Reset Levels
- Reset each level
- Use a delay element to wait for Reset
|
|
62
|
|
|
63
|
|
|
64
|
|
|
65
|
- Synchronous Environment
- Check against a clock signal
- Asynchronous Environment
- Exploit data-dependent latencies
|
|
66
|
|
|
67
|
|
|
68
|
- GDR motivation
- High degree of power overhead of monotonic DR circuit (~x9)
- Gated Logic
- Logic subcircuit prevented from switching
- Gating Logic
- Logic controlling (enabling/disabling) when the Gated Logic
is prevented from switching
- Blocking Elements
- Gates which block signal transitions propagation
|
|
69
|
- A Circuit node is controllable if a subset of its inputs is able to
determine node’s value
- A node implementing the AND logic function is controllable, as the
evaluation of any of its inputs to 0 is able to determine node’s value.
- A node implementing the XOR logic function is not controllable, as
every input value is needed in order to evaluate node’s value.
|
|
70
|
|
|
71
|
|
|
72
|
- DR circuits benefits and drawbacks
- Data-dependent latency (+)
- Large area overhead (-)
- Large power overhead (-)
- NULL (RESET) phase is slow!!! (-)
- Why not implemented Mixed SR and DR Logic?
- Slice C.L. circuit’s Logic Levels vertically
- Use conventional Boolean (SR) logic for first logic levels of C.L.
- Traversed anyway by most exercised circuit paths
- Use DR logic only for deep logic levels
- Exhibit data-dependent elasticity
- Hide NULL phase of DR Logic
- Overlap with SR evaluation!!!
|
|
73
|
- DR Logic may RESET while SR Delay is evaluating
- Hide DR RESET Overhead!!!
|
|
74
|
|