Content deleted Content added
Chai T. Rex (talk | contribs) →Two-level versus multi-level representations: Better style for the distinction between combinational and sequential logic. |
m clean up, replaced: |journal=Journal of Computer and System Sciences (JCSS) → |journal=Journal of Computer and System Sciences |
||
(13 intermediate revisions by 10 users not shown) | |||
Line 1:
{{short description|Process in
{{other uses|Minimisation (disambiguation){{!}}Minimisation}}
{{bots|deny=Citation bot}}
{{Use dmy dates|date=May 2019|cs1-dates=y}}▼
{{Use list-defined references|date=January 2022}}
▲{{Use dmy dates|date=May 2019|cs1-dates=y}}
'''Logic optimization''' is a process of finding an equivalent representation of the specified [[logic circuit]] under one or more specified constraints. This process is a part of a [[logic synthesis]] applied in [[digital electronics]] and [[integrated circuit design]].
Generally, the circuit is constrained to a minimum chip area meeting a predefined response delay. The goal of logic optimization of a given circuit is to obtain the smallest [[logic circuit]] that evaluates to the same values as the original one.<ref name="Maxfield_2008"/> Usually, the smaller circuit with the same function is cheaper,<ref name="Balasanyan-Aghagulyan-Wuttke-Henke_2018"/> takes less space, [[Power efficiency|consumes less power]], has shorter latency, and minimizes risks of unexpected [[Crosstalk|cross-talk]], [[Hazard (logic)|hazard of delayed signal processing]], and other issues present at the nano-scale level of metallic structures on an [[integrated circuit]].
In terms of [[Boolean algebra]], the optimization of a complex [[
==Motivation==
Line 16 ⟶ 17:
== Methods ==
The methods of logic circuit simplifications are equally applicable to [[#Boolean expression minimization|
=== Classification ===
Line 43 ⟶ 44:
=== {{Anchor|Circuit minimization in Boolean algebra}}Boolean expression minimization ===
{{Cleanup|date=October 2021|reason=We need more consistent, simpler and prose-like summary on every method|section}}
The same methods of
For the case when the Boolean function is specified by a circuit (that is, we want to find an equivalent circuit of minimum size possible), the unbounded circuit minimization problem was long-conjectured to be [[polynomial hierarchy|<math>\Sigma_2^P</math>-complete]] in [[time complexity]], a result finally proved in 2008,<ref name="Buchfuhrer_2011"/> but there are effective heuristics such as [[Karnaugh map]]s and the [[Quine–McCluskey algorithm]] that facilitate the process.
Line 53 ⟶ 54:
=== Optimal multi-level methods ===
Methods
=== Heuristic methods ===
Line 60 ⟶ 61:
===Two-level versus multi-level representations===
While a two-level circuit representation of circuits strictly refers to the flattened view of the circuit in terms of SOPs ([[sum-of-products]]) — which is more applicable to a [[Programmable logic array|PLA]] implementation of the design{{Clarify|date=February 2010}} — a [[multi-level representation]] is a more generic view of the circuit in terms of arbitrarily connected SOPs, POSs ([[product-of-sums]]), factored form etc. Logic optimization algorithms generally work either on the structural (SOPs, factored form) or functional representation ([[
If we have two functions ''F''<sub>1</sub> and ''F''<sub>2</sub>:
Line 79 ⟶ 80:
While the number of levels here is 3, the total number of product terms and literals reduce {{Quantify|date=February 2010}} because of the sharing of the term B + C.
Similarly, we distinguish between [[Combinational logic|combinational circuits]] and [[Sequential logic|sequential circuits]]. Combinational circuits produce their outputs based only on the current inputs. They can be represented by
Sequential circuits produce their output based on both current and past inputs, depending on a clock signal to distinguish the previous inputs from the current inputs. They can be represented by finite state machines. Some examples are [[Flip-flop (electronics)|flip-flops]] and [[Counter (digital)|counters]].
==Example==
Line 123 ⟶ 122:
== References ==
{{reflist|refs=
<ref name="Maxfield_2008">{{cite book |title=FPGAs |chapter=Chapter 5: "Traditional" Design Flows |author-last=Maxfield |author-first=Clive "Max" |date=2008-01-01 |editor-last=Maxfield |editor-first=Clive "Max" |series=Instant Access |publication-place=Burlington |publisher=[[Newnes (publisher)|Newnes]] / [[Elsevier Inc.]] |isbn=978-0-7506-8974-8 |<!-- chapter- -->doi=10.1016/B978-0-7506-8974-8.00005-3 |pages=75–106 |chapter-url=https://www.sciencedirect.com/science/article/pii/B9780750689748000053 |access-date=2021-10-04
<ref name="Balasanyan-Aghagulyan-Wuttke-Henke_2018">{{cite web |title=Digital Electronics |author-last1=Balasanyan |author-first1=Seyran |author-last2=Aghagulyan |author-first2=Mane |author-last3=Wuttke |author-first3=Heinz-Dietrich |author-last4=Henke |author-first4=Karsten |date=2018-05-16 |id=DesIRE |series=Bachelor Embedded Systems - Year Group |publisher=Tempus |pages= |url=https://ec.europa.eu/programmes/erasmus-plus/project-result-content/120e4810-0d29-4397-9ad4-b4091c2e3d19/Digital%20Electronics.pdf |access-date=2021-10-04 |url-status=live |archive-url=https://web.archive.org/web/20211004200546/https://ec.europa.eu/programmes/erasmus-plus/project-result-content/120e4810-0d29-4397-9ad4-b4091c2e3d19/Digital%20Electronics.pdf |archive-date=2021-10-04}} (101 pages)</ref>
<ref name="Buchfuhrer_2011">{{cite journal |doi=10.1016/j.jcss.2010.06.011 |title=The complexity of Boolean formula minimization |journal=[[Journal of Computer and System Sciences]]
<ref name="Mano_2014">{{cite book |author-first1=M. Morris |author-last1=Mano |author-first2=Charles R. |author-last2=Kime |title=Logic and Computer Design Fundamentals |edition=4th new international |publisher=[[Pearson Education Limited]] |date=2014 |page=54 |isbn=978-1-292-02468-4}}</ref>
|