posts - 71,  comments - 41,  trackbacks - 0
© 2003 by Charles C. Lin. All rights reserved.

Introduction

Digital logic circuits can be divided into two categories: combinational logic and sequential logic.

Combinational logic devices implement Boolean functions. A Boolean function has k bits of input and m bits of output, where k >= 0 and m >= 1.

Any combinational logic device can be constructed out of AND gates, OR gates, and NOT gates. However, they can also be completely constructed using only NAND gates, or using only NOR gates.

You can describe the behavior of a combinational logic device using a truth table.

Control vs. Data Inputs

We can often divide the inputs of a combinational logic device into two categories: data inputs and control inputs.

Control inputs let you control what the device does. For example, if you have a blender, there are often several buttons to let you decide how you want to chop the food. Or a washing machine has several choices you can pick depending on the kind of clothes you are going to wash. It lets you select temperature, time, and the amount of agitation.

If you have N choices for the different operations that a combinational logic device can perform, then you need ceil( lg N ) control bits to specify the operation. This result should be familiar, because we discussed it in a previous set of notes.

Some combinational logic devices do not have control inputs. They only have data inputs. However, many of the ones we consider do have them. The combinational logic device doesn't really distinguish between data and control inputs. To the device, it's all just inputs.

However, as humans who use these devices, it's useful to think of these two categories.

Changing the Inputs

If you change the values of the inputs to a combinational logic device, there is some short, but finite delay before the output changes. The output can't change instantaneously.

Notice that this behavior is different from a register. A register is a sequential logic device, which can only change its value at a clock edge. A combinational logic device can change its outputs as soon as the inputs change (plus a little delay from input to output).

Again, it's useful to think that values are continuously being fed to a combinational logic device and the outputs change as the inputs change.

Here's another useful analogy. Suppose you have a flashlight that can shine red light or green light. There's a switch on the flashlight that allows you to switch between red and green.

Suppose you have a light sensor. If the light sensor detects green light, it plays the musical note of "A". If it detects red light, it plays the musical note of "C". If it detects no light, then it doesn't play anything.

So, you shine green light onto the sensor, and it begins to play the note "A". Then, you switch it to red light, and there is a small delay, before it starts to play the note "C".

Then, you switch it back to green light, and, after a tiny delay, it goes back to playing "A".

Finally, you turn the flashlight off, and after a small delay, it stops playing. Notice that as long as the flashlight was shining on the sensor, it played something, but when it was turned off, it stopped playing. The flashlight had to continuously emit red or green light for the sensor device to play a note.

This is one way to think about how circuits work. There is a continuous flow of current into the device. The current's voltage is either interpreted as 0 or 1, and can be changed. If the input changes, then after a small delay, the output current is updated to the new value.

Diagram of a Generic Combinational Logic Device

As you can see, there are k bits of data input, n bits of control inputs, and m bits of output.

When the inputs change, then there is a small delay before the output changes. We see this in the next section.

An Example with XOR

Suppose we have a XOR2 which is a 2-input XOR gate.

Initially, we have two inputs, x and y, whose value are both 0. The output z is 0, as well. Then we change x to 1, and the output z, after some delay becomes 1. Then, we change y to 1, and after some delay, the output z becomes 0.

Here's a timing diagram to illustrate the behavior.

As you can see, at time (1), x changes to 1. However, it takes until time (2) for z to change to 1. Then, at time (3), y changes to 1, but it takes until time (4) for z to change back to 0.

The amount of time for z to change is called the circuit delay, and we write it as "delta" T. This time is usually very short. Nevertheless, it's not zero.

Because it's not zero, it affects the way circuits are designed. The smaller the value of delta T, the quicker we can make the circuit.

Summary

Unlike a sequential logic device (such as a register), a combinational logic device does not use a clock. Once the input value changes, the output values of a combinational logic device changes, after a small circuit delay. Of course, sometimes the output value doesn't change at all even if the input changes.

For example, suppose you have an AND gate. If both inputs are 0, then one input is changed to 1, then the output is still 0. However. in those cases where the output changes, there is a delay.

A combinational logic device can be specified by using a truth table, and is an implementation of a Boolean function. Any Boolean function can be implemented using a combination of AND, OR, and NOT gates (or only using NAND gates, or only using NOR gates).

posted on 2007-01-23 18:15 Charles 阅读(401) 评论(0)  编辑 收藏 引用 所属分类: 拿来主义

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

决定开始写工作日记,记录一下自己的轨迹...

常用链接

留言簿(4)

随笔分类(70)

随笔档案(71)

charles推荐访问

搜索

  •  

积分与排名

  • 积分 - 49243
  • 排名 - 451

最新评论

阅读排行榜

评论排行榜