Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Sequential logic
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Type of logic circuit}} {{redirect|Sequential circuit|the synthesizer company|Sequential Circuits}} {{use dmy dates|date=May 2023|cs1-dates=y}} {{use list-defined references|date=May 2023}} In [[automata theory]], '''sequential logic''' is a type of [[logic circuit]] whose output depends on the present value of its input signals and on the [[sequence]] of past inputs, the input history.<ref name="Vai_2000"/><ref name="Cavanagh_2006"/><ref name="Lipiansky_2012"/><ref name="Dally-Harting_2012"/> This is in contrast to ''[[combinational logic]]'', whose output is a function of only the present input. That is, sequential logic has ''[[State (computer science)|state]]'' (''memory'') while combinational logic does not. Sequential logic is used to construct [[finite-state machine]]s, a basic building block in all digital circuitry. Virtually all circuits in practical digital devices are a mixture of combinational and sequential logic. A familiar example of a device with sequential logic is a [[television set]] with "channel up" and "channel down" buttons.<ref name="Vai_2000"/> Pressing the "up" button gives the television an input telling it to switch to the next channel above the one it is currently receiving. If the television is on channel 5, pressing "up" switches it to receive channel 6. However, if the television is on channel 8, pressing "up" switches it to channel "9". In order for the channel selection to operate correctly, the television must be aware of which channel it is currently receiving, which was determined by past channel selections.<ref name="Vai_2000"/> The television stores the current channel as part of its ''[[state (computer science)|state]]''. When a "channel up" or "channel down" input is given to it, the sequential logic of the channel selection circuitry calculates the new channel from the input and the current channel. Digital sequential logic circuits are divided into [[synchronous logic|synchronous]] and [[asynchronous logic|asynchronous]] types. In synchronous sequential circuits, the state of the device changes only at discrete times in response to a [[clock signal]]. In asynchronous circuits the state of the device can change at any time in response to changing inputs. == Synchronous sequential logic == Nearly all sequential logic today is ''clocked'' or ''synchronous'' logic. In a synchronous circuit, an [[electronic oscillator]] called a ''clock'' (or [[clock generator]]) generates a sequence of repetitive pulses called the ''[[clock signal]]'' which is distributed to all the memory elements in the circuit. The basic memory element in synchronous logic is the [[flip-flop (electronics)|flip-flop]]. The output of each flip-flop only changes when triggered by the clock pulse, so changes to the logic signals throughout the circuit all begin at the same time, at regular intervals, synchronized by the clock. The output of all the storage elements (flip-flops) in the circuit at any given time, the binary data they contain, is called the ''[[state (computer science)|state]]'' of the circuit. The state of the synchronous circuit only changes on clock pulses. At each cycle, the next state is determined by the current state and the value of the input signals when the clock pulse occurs. The main advantage of synchronous logic is its simplicity. The logic gates which perform the operations on the data require a finite amount of time to respond to changes to their inputs. This is called ''[[propagation delay]]''. The interval between clock pulses must be long enough so that all the logic gates have time to respond to the changes and their outputs "settle" to stable logic values before the next clock pulse occurs. As long as this condition is met (ignoring certain other details) the circuit is guaranteed to be stable and reliable. This determines the maximum operating speed of the synchronous circuit. Synchronous logic has two main disadvantages: * The maximum possible clock rate is determined by the slowest logic path in the circuit, otherwise known as the critical path. Every logical calculation, from the simplest to the most complex, must complete in one clock cycle. So logic paths that complete their calculations quickly are idle much of the time, waiting for the next clock pulse. Therefore, synchronous logic can be slower than asynchronous logic. One way to speed up synchronous circuits is to split complex operations into several simple operations which can be performed in successive clock cycles, a technique known as ''[[pipeline (computing)|pipelining]]''. This technique is extensively used in [[microprocessor]] design and helps to improve the performance of modern processors. * The clock signal must be distributed to every flip-flop in the circuit. As the clock is usually a high-frequency signal, this distribution consumes a relatively large amount of power and dissipates much heat. Even the flip-flops that are doing nothing consume a small amount of power, thereby generating [[waste heat]] in the chip. In battery-powered devices, additional hardware and software complexity is required to reduce the clock speed or temporarily turn off the clock while the device is not being actively used, in order to maintain a usable battery life. =={{anchor|Venjunction|Sequention}}Asynchronous sequential logic== {{main|Asynchronous circuit}} ''Asynchronous'' (''clockless'' or ''self-timed'') ''sequential logic'' is not synchronized by a clock signal; the outputs of the circuit change directly in response to changes in inputs. The advantage of asynchronous logic is that it can be faster than synchronous logic, because the circuit doesn't have to wait for a clock signal to process inputs. The speed of the device is potentially limited only by the [[propagation delay]]s of the [[logic gate]]s used. However, asynchronous logic is more difficult to design and is subject to problems not encountered in synchronous designs. The main problem is that digital memory elements are sensitive to the order that their input signals arrive; if two signals arrive at a [[flip-flop (electronics)|flip-flop]] or latch at almost the same time, which state the circuit goes into can depend on which signal gets to the gate first. Therefore, the circuit can go into the wrong state, depending on small differences in the [[propagation delay]]s of the logic gates. This is called a [[race condition]]. This problem is not as severe in synchronous circuits because the outputs of the memory elements only change at each clock pulse. The interval between clock signals is designed to be long enough to allow the outputs of the memory elements to "settle" so they are not changing when the next clock comes. Therefore, the only timing problems are due to "asynchronous inputs"; inputs to the circuit from other systems which are not synchronized to the clock signal. Asynchronous sequential circuits are typically used only in a few critical parts of otherwise synchronous systems where speed is at a premium, such as parts of microprocessors and [[digital signal processing]] circuits. The design of asynchronous logic uses different mathematical models and techniques from synchronous logic, and is an active area of research. == See also == * [[Combinational logic]] * [[Synchronous circuit]] * [[Asynchronous circuit]] * [[Logic design]] * [[Application-specific integrated circuit]] ==References== {{Reflist|refs= <ref name="Vai_2000">{{cite book |author-last=Vai |author-first=M. Michael |title=VLSI Design |publisher=[[CRC Press]] |date=2000 |page=147 |url=https://books.google.com/books?id=x9VicwHqocYC&q=%22sequential+logic%22+history+inputs+state&pg=PA147 |isbn=0-84931876-9}}</ref> <ref name="Cavanagh_2006">{{cite book |author-last=Cavanagh |author-first=Joseph |title=Sequential Logic: Analysis and Synthesis |publisher=[[CRC Press]] |date=2006 |page=ix |url=https://books.google.com/books?id=ryz8UbjBfWAC&q=history+%22sequential+logic&pg=PR11 |isbn=0-84937564-9}}</ref> <ref name="Lipiansky_2012">{{cite book |author-last=Lipiansky |author-first=Ed |title=Electrical, Electronics, and Digital Hardware Essentials for Scientists and Engineers |publisher=[[Wiley (publisher)|Wiley]] |date=2012 |page=8.39 |url=https://books.google.com/books?id=oe31X8WoZnAC&q=%22sequential+logic%22+history+inputs&pg=SA8-PA39 |isbn=978-1-11841454-5}}</ref> <ref name="Dally-Harting_2012">{{cite book |author-last1=Dally |author-first1=William James |author-link1=William James Dally |author-last2=Harting |author-first2= R. Curtis |title=Digital Design: A Systems Approach |publisher=[[Cambridge University Press]] |date=2012 |page=291 |url=https://books.google.com/books?id=WLoHOG0MhbIC&q=%22sequential+logic%22+history+inputs&pg=PA291 |isbn=978-0-52119950-6}}</ref> }} ==Further reading== * {{cite book |author-last1=Katz |author-first1=Randy |author-link1=Randy Katz |author-last2=Borriello |author-first2=Gaetano |author-link2=Gaetano Borriello |title=Contemporary Logic Design |publisher=[[Prentice Hall]] |edition=2 |date=2005 |isbn=0-201-30857-6}} * {{cite book |author-first1=Zvi |author-last1=Kohavi |author-first2=Niraj K. |author-last2=Jha |title=Switching and Finite Automata Theory |publisher=[[Cambridge University Press]] |edition=3 |date=2009 |isbn=978-0-521-85748-2}} * {{cite web |author-first=Vadim O. |author-last=Vasyukevich |title=Asynchronous logic elements. Venjunction and sequention |date=2009 |publisher= |url=http://asynlog.balticom.lv/Content/Files/en.pdf |archive-url=https://web.archive.org/web/20110722160840/http://asynlog.balticom.lv/Content/Files/en.pdf<!-- https://ghostarchive.org/archive/20221009/http://asynlog.balticom.lv/Content/Files/en.pdf --> |archive-date=2011-07-22 |url-status=live}} (118 pages) * {{cite book |author-first=Vadim O. |author-last=Vasyukevich |title=Asynchronous Operators of Sequential Logic: Venjunction & Sequention β Digital Circuits Analysis and Design |publisher=[[Springer-Verlag]] |publication-place=Berlin / Heidelberg, Germany |location=Riga, Latvia |date=2011 |edition=1 |series=Lecture Notes in Electrical Engineering (LNEE) |volume=101 |isbn=978-3-642-21610-7 |doi=10.1007/978-3-642-21611-4 |issn=1876-1100 |lccn=2011929655}} (xiii+1+123+7 pages) (NB. The back cover of this book erroneously states volume 4, whereas it actually is volume 101.) {{Digital electronics}} {{DEFAULTSORT:Sequential Logic}} [[Category:Automata (computation)]] [[Category:Logic in computer science]] [[Category:Digital electronics]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Digital electronics
(
edit
)
Template:Main
(
edit
)
Template:Redirect
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Use list-defined references
(
edit
)