组合逻辑电路仿真8-3编码器

3位二进制编码器,8/3线二进制编码器,其输入端有8个,输出端有3个。

真值表如下图所示:

X0

X1

X2

X3

X4

X5

X6

X7

Z0

Z1

Z2

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

1

0

1

0

0

0

0

0

0

1

0

0

1

1

0

0

0

0

0

0

0

1

1

1

1

根据真值表可以直接写出逻辑表达式:


根据以上分析结果,可知需要选用以下模块:

*Pulse Generator(脉冲序列发生器)模块:

位于Simulink节点下的Source库中,用于产生所需的原始脉冲脉冲序列。复制8个PulseGenerator模块进入sy03.mdl文件中,将它们分别命名为。分别双击各个模块,对其参数进行调整。

在PulseGenerator打开的的参数对话框界面中进行相应的设置,在Pulse type选项中有Time based(默认选项)和Sample based两项。

如果选中Timebased项,模块按照时间参数输出脉冲序列;如果选中Sample based项,模块将根据设定的采样频率及其他相关参数输出序列。在此选择Sample based项。

对“BlockParameters”对话框进行设置:

“Amplitude”文本框:用于设定调整脉冲输出幅度,本例中设置为1即可。

“Period(numberof samples)”文本框:用于设定按照采样时间长度确定产生的脉冲序列周期,本例中设置为8。

“Pulse width(numberof samples)”文本框:用于设定按照采样时间长度确定产生的脉冲序列周期,本例中设置为1。

“Phase delay (number of samples)”文本框:用于设定每一个脉冲持续的时间长短(即电平为1的时间,以采样时间为单位),本例中X0~X7依次设置为0~7。

“Sample time’文本框:该文本框用于确定采样时间,单位是s(秒),本例中设置为1。

*Logical Operator(逻辑操作)模块

位于Simulink节点下的Logic and Bit Operator模块库中,用于实现逻辑表达式的运算

Logical Operator模块参数调整

* Scope(示波器)模块

位于Simulink节点下的Sinks模块库中,本例用到2个示波器。

设置示波器参数后单击Scope模块,可以看到Z2,Z1,Z0的输出波形,以及X0-X7的输入波形。

Simulink建模如下:


X0至X7产生的信号波形如下:


编码器输出波形图如下:


观察上图(从上往下依次为Z1、Z0、Z2)可以发现输出波形图为000、001、010、…111,这确实是十进制0-7的二进制编码,因而该模型符合实现8-3编码器功能的要求。

下面总结一下利用simulink搭建组合逻辑电路模型步骤:

在设计组合电路时,首先需要明确输入与输出之间的关系,然后根据该关系写出真值表,紧接着根据真值表得出输入输出间的逻辑表达式,最后根据该逻辑表达式建立模型。





猜你喜欢

转载自blog.csdn.net/reason_lee/article/details/80554766