Matlab在数字电路设计中的应用

2010-08-29 13:27:58董圣英
关键词:译码器数字电路触发器

董圣英

(德州职业技术学院,山东 德州 253034)

数字电路的设计,尤其是电路的调试是一件十分繁琐的工作,通常的做法是在电路设计完成后,用面板搭接电路,或是将元件焊接到预先设计好的印刷电路板上进行测试、修改、完善.这样既费时又费力,还需要花费资金去添置各种工具和仪器.MATLAM没有提供用于数字电路仿真的专用工具箱,但是若能巧妙地使用MATLAB/SIMULINK仿真工具进行数字电路的设计、调试、仿真,就可避免上述不必要的麻烦[1].

Simulink是挂接在Matlab环境上,以 Matlab的强大计算功能为基础,以直观的模块框图进行仿真和计算的仿真工具[2-3].Simulink模型采用框图绘制来代替程序的编写,使系统程序的编写具有可视化的功能,同时可借助示波器等虚拟设备直观显示仿真结果.Simulink已成为广泛使用的动态系统建模、仿真和分析的软件包之一.

笔者利用MATLAB/SIMULINK仿真模块,创建译码器、计数器数字电路的仿真模型,通过仿真判定电路设计的正确性.

1 3线-8线译码器设计

译码器是数字电路中应用非常广泛的多输入多输出组合逻辑电路.译码就是对输入信号进行“翻译”,识别出其含义并产生相应的输出信号,完成译码功能的逻辑电路称为译码器[4].

1.1 模型分析

3线-8线译码器有3个译码输入端A、B、C,1个使能控制端G,8个译码输出端.其真值表见表1.

表1 3线-8线译码器的真值表

表中的“×”表示任意值(0或1).根据真值表,可以写出3线-8线译码器的输入输出逻辑关系式:

1.2 模型搭建

根据逻辑表达式,选用MAT LAB/SIMULINK中的 logical operator模块、pulse generator模块、scope模块,并设置各模块的参数,最后用信号线将各模块连接起来,即建立了译码器的Simulink仿真模型,如图1所示.

图1 3-8线译码器的仿真模型

模型中用了4各脉冲源,分别命名为G、A、B、C.其中脉冲源G表示译码器的使能控制输入端,高电平时允许译码输出,低电平时使电路输出无效状态.G脉冲源参数设置如下:周期12s,脉宽11s,相位延时0s.脉冲源A、B、C的输出代表需要译码的3位二进制数,为了在译码输入端得到000-111的脉冲序列,A、B、C三个脉冲源参数设置如下,A脉冲源:周期 2s、脉宽 1s、相位延时 1s;B脉冲源:周期4s、脉宽 2s、相位延时 2s;C脉冲源:周期 8s、脉宽4s、相位延时4s.这样设置后,A、B、C三个脉冲源的输出信号就构成了三位二进制数,以8为周期从000变化到111(即第一秒为000,第八秒为111),然后第九秒又为000,如此循环.模型中用了两个示波器,其中scope1用来观测使能控制信号和三位译码输入信号,输入端数目设为4.scope1用于观测8路译码输出信号,输入端数目设为8.

设置仿真参数.仿真时间0~16s,使用可变步长算法old45,仿真结果如图2、图3所示.

图2 译码器输入波形

图3 译码器输出波形

从仿真波形可以看到,输入的三位二进制代码分别被翻译成8种不同的输出,即Y0到Y7依次为低电平,同时注意到在11-12s之间,8个输出都变成了高电平,反映了控制端G的作用,说明电路设计正确.若仿真波形不正确,只需进一步分析电路逻辑关系,修改仿真模型再调试即可,直到设计正确为止,所以运用Matlab进行数字电路设计、调试是十分方便的.

2 同步十进制加法计数器设计

在数字系统中计数器是使用最多的一种电路.它不仅能够对时钟脉冲进行计数,还可以用以分频、定时以及进行数字运算等,同步十进制计数器也称为BCD码计数器[4].

2.1 模型分析

计数器电路可有各种触发器电路构成.由于十进制计数器有十个状态,故触发器的位数应为4.若计数器用T触发器构成,根据计数器功能可得出同步十进制计数器的激励表,见表2.

表2 十进制计数器激励表

表中的“×”表示输出为无效状态.根据激励表2,利用卡诺图进行化简,可写出简化后 T触发器的驱动方程[5]:

图4 计数器仿真模型

2.2 模型搭建

根据逻辑表达式,选用MATLAB/SIMULINK中的logical operator模块、constant模块、clock模块、scope模块,Matlab/Extras中的J-K触发器模块,将J-K触发器接成T触发器,然后用信号线将各模块连接起来,即建立了计数器的仿真模型,如图4所示.

设定仿真参数,仿真时间0~12s,使用可变步长算法old45,仿真结果如图5所示.

从仿真波形可以看到,计数器在计数时钟CP的控制下,从0000一步步变化到1001,实现了十进制计数功能,说明电路设计正确.同样,即使仿真波形不正确,也可方便地通过修改仿真模型再进一步调试即可,直到正确为止.

3 结束语

本文利用MATLAB/SIMULINK仿真工具,创建了译码器、计数器电路的仿真模型,并给出了仿真结果.仿真结果表明,利用Matlab进行数字电路的设计、调试,结果直观、省时省力.它不仅能用来仿真译码器、计数器电路,而且能广泛地应用于其它数字电路的仿真,是数字电路设计、调试的有效工具.

图5 计数器仿真输出波形

[1]张葛祥,李娜.Matlab仿真技术与应用[M].北京:清华大学出版社.2003.

[2]皇甫海燕.Matlab在数字电路教学中的应用[J].乌鲁木齐:新疆师范大学学报,2005,24(3):71-73

[3]熊建平.Matlab在数字电路中的应用[J].南昌:计算机与现代化,2007(6):101-102

[4]鲍可进,赵念强.数字逻辑电路设计[M].北京:清华大学出版社,2004.

[5]蒋立平.数字逻辑电路与系统设计[M].北京:电子工业出版社,2008.

猜你喜欢
译码器数字电路触发器
基于数字电路的定时器的设计
电子制作(2019年22期)2020-01-14 03:16:46
纠错模式可配置的NAND Flash BCH译码器设计
MATLAB在数字电路教学中的应用
电子测试(2018年23期)2018-12-29 11:11:48
基于数字电路的密码锁设计与实现
主从JK触发器逻辑功能分析
电子世界(2017年22期)2017-12-02 03:03:45
跟踪导练(一)5
数字电路实验的设计分析
电子制作(2017年1期)2017-05-17 03:54:28
使用触发器,强化安全性
HINOC2.0系统中高速LDPC译码器结构设计
电视技术(2014年17期)2014-09-18 00:15:48
电力线通信中LDPC译码器的优化设计与实现