(7)系统设计要求采用ASM图法。
1.4设计条件
(1)电源条件,直流稳压电源输出+5V。
(2)必须采用ASM图法进行设计,否则设计无效。
(3)可供选择的元件器件范围如下表1-1所示。
表1-1
型号名称及功能数量
74160十进制计数器3片
741944位双向移位寄存器2片
74854位比较器1片
74157四2选1数据选择器1片
7448七段显示译码器1片
741614位二进制计数器1片
7402四2输入或非门2片
74273三输入与非门1片
74004二输入与非门3片
第二章整体电路的设计
2.1设计原理
时序比较器是一个小型的数字系统,它包含控制器和受控器两大部分,其原理框图如图2-1所示。
图2-1时序比较器原理框图
2.1.1数据处理器的功能
由框图2-1可以看出,数据处理器的功能是:
(1)输入数据进行寄存,比较数据大小,选择比较结果。
(2)大数送显示寄存器,通过译码器显示大数。
同时比较器将结果送组合电路驱动两只发光二极管。
2.1.2控制器的功能
由框图2-1可以看出,控制器工作过程为:
(1)开机后接收RESET键的复位信号,使控制器处于初始状态。
(2)确认按键送来的单脉冲信号使控制器由初始状态进入工作状态。
(3)控制器根据自身工作状态来控制数据寄存器,接收输入数据和将寄存器中的数据比较结果显示出来。
2.1.3显示电路
显示电路二—十进制译码器电路输入数据为二进制码,显示为十进制数。
二进制码转换为十进制数的电路,需要加修正电路,列出二—十进制数转换的真值表,找出其修正电路的特点。
十进制数转换的真值表,找出其修正电路的特点。
其参考电路见“课题十六数字式电缆对线器”中的“二、电路设计提示”。
2.2建立算法流程图
2.2.1算法流程图
根据前面介绍的电气指标,设计条件和设计原理可以得到如下所示的时序比较器的算法流程图2-2:
图2-2时序比较器算法流程图
2.2.2ASM图
1,从算法流程图—>ASM图:
原则1:
在算法的起始点安排一个状态;如:
图2-2
图2-2
原则2:
必须用状态来分开不能同时实现的寄存器传输操作;如:
图2-3
图2-3
原则3:
如果判断框中的转移条件受前一个寄存器操作的影响,应在它们之间安排一个状态。
如:
图2-4
图2-4
2,根据课题分析,RESET信号为外部控制信号,即根据算法流程图可以得到ASM图2-5。
图2-5时序比较器ASM图
2.3建立处理器的明细表
根据ASM图可列出处理器的明细表,如表2-1所示:
2.3.1建立明细表的分析
首先根据明细表可知,处理器有三个寄存器,即:
A寄存器、B寄存器和CNT寄存器;其次处理器有比较器、数据选择器、译码器和振荡器。
2.3.2寄存器
一,A寄存器
1,A寄存器的功能
从处理器明细表,可知A寄存器有三个功能:
保持、置数和清零。
2,讨论,求出其控制命令
根据分析A寄存器的功能以及数字电路第六章的学习,我们选取74194芯片作为实现其三个功能寄存器。
从74194功能表可知,它有两个功能控制端M1M0,即:
功能控制端的功能表如表2-2所示。
同时74194芯片清零为异步清零。
3,获得电路图
(1)芯片设计图(如图2-6):
(2)仿真设计图(如图2-7):
4,分析仿真结果
(1)RESET=1,T0=T1=AJ=0,系统整体清“0”,即虽然X3—X0=0110,但是A3—A0=0000;
(2)RESET=0,T0=1,T1=AJ=0,系统整体清“0”,即虽然X3—X0=0110,但是A3—A0=0000;
(3)RESET=T0=0,T1=1,AJ=0,因为AJ=0,故不可以置数:
A3—A0=0000;
(4)RESET=T0=T1=0,电路保持,即虽然AJ=1,但是A3—A0=0000;
(5)RESET=T0=0,T1=AJ=1,X3—X0=0110,置数成功:
A3—A0=0110。
5,结论
(1)RESET和T0中只要有一个置为1,则系统整体清“0”;
(2)T1和AJ中两个都为1时,置数才会成功;反之,保持。
(3)通过仿真,该74194能达到所要满足的A寄存器的功能。
二,B寄存器
1,B寄存器的功能
从处理器明细表,可知B寄存器有三个功能:
保持、置数和清零。
2,讨论,求出其控制命令
根据分析B寄存器的功能以及数字电路第六章的学习,我们同样选取74194芯片作为实现其三个功能寄存器。
从74194功能表可知,它有两个功能控制端M1M0,即:
功能控制端的功能表如表3所示。
则M1=M0=SETXb=T2·AJ,CR=RESET+T0。
3,获得电路图
(1)芯片设计图(如图2-9):
(2)仿真设计图(如图2-10):
4,分析仿真结果
(1)RESET=1,T0=T1=AJ=0,系统整体清“0”,即虽然X3~X0=1001,但是A3~A0=0000;
(2)RESET=0,T0=1,T1=AJ=0,系统整体清“0”,即虽然X3~X0=1001,但是A3~A0=0000;
(3)RESET=T0=0,T1=1,AJ=0,因为AJ=0,故不可以置数:
A3~A0=0000;
(4)RESET=T0=T1=0,电路保持,即虽然AJ=1,但是A3~A0=0000;
(5)RESET=T0=0,T1=AJ=1,X3~X0=1001,置数成功:
A3~A0=1001。
4,结论
(1)RESET和T0中只要有一个置为1,则系统整体清“0”,RESET信号为外部清零,T0信号为系统同步信号;
(2)T1和AJ中两个都为1时,置数才会成功;反之,保持。
(3)通过仿真,该74194能达到所要满足的B寄存器的功能。
三,CNT寄存器
1,CNT寄存器的功能
从处理器明细表可知,它主要是作为定时器使用。
定时长度为:
8s,即为M=8的加法计数器。
当控制器进入T3状态时,计数器开始计数;当所计的数为“8”时,计数器停止计数并清零返回到初始状态。
因此,CNT寄存器的功能有3个:
清零、计数和预置零。
2,讨论,求出其控制命令
根据以上分析CNT寄存器以及数字电路第六章的学习,我们可选用74161芯片来实现它的3个功能。
同时74161芯片为异步清零,同步置数。
CP=2HZ。
即:
功能控制端的功能表如表2-3所示:
3,获得电路图
(1)芯片设计图(如图2-12):
(2)仿真设计图(如图2-13):
4,分析仿真结果
(1)RESET=1,T0=T3=0,系统整体清“0”;
(2)RESET=0,T0=1,T3=0,系统整体清“0”;
(3)RESET=T0=0,T3=1,当16个脉冲(即8S)后,CNT8=1,且CNT8维持1个脉冲;
(4)RESET=T0=0,T3=0,74161寄存器不工作,CNT8始终为0。
5,结论
(1)RESET和T0只要有一个为1,则系统整体清“0”;
(2)T3=1,74161工作,周期为8s;反之,T3=0,74161不工作。
(3)通过仿真,该74161能达到所要满足的CNT寄存器的功能。
2.3.3比较器
1,分析
根据分析处理器明细表以及数字电路第六章的学习,我们可选用7485芯片来实现Xa,Xb的比较。
其(A=B)i=1,(AB)i=0。
2,比较器的功能
(1)、A3~A0接A寄存器的Q3~Q0;
(2)、B3~B0接B寄存器的Q3~Q0;
(3)、输出FA>B、FA<B、FA=B;
A3~A0=B3~B0,则FA=B=1,FA>B=FA<B=0
A3~A0>B3~B0,则FA>B=1,FA=B=FA<B=0
A3~A0<B3~B0,则FA<B=1,FA=B=FA>B=0
3,获得电路图
(1)芯片设计图(图2-15):
(2)仿真设计图(如图2-16):
4,分析仿真结果
(1)RESET=1,TO=AJ=0,T1=T2=0;系统整体清“0”;
(2)RESET=T0=0,T1=AJ=1,T2=0,系统给A寄存器置数:
X3—X0=1001,则A3—A0=1001;
(3)RESET=T0=0,T2=AJ=1,T1=0,系统给B寄存器置数:
X3—X0=0101,则B3—B0=0101;当给B寄存器置数结束后,立即进行比较:
GG=1,EE=LL=0;表明第一个数大于第二个数;
(4)RESET=1,系统整体清“0”;
(5)RESET=T0=0,T1=AJ=1,T2=0,系统给A寄存器置数:
X3—X0=0001,则A3—A0=0001;
(6)RESET=T0=0,T2=AJ=1,T1=0,系统给B寄存器置数:
X3—X0=1001,则B3—B0=1001;当给B寄存器置数结束后,立即进行比较:
EE=1,GG=LL=0;表明第一个数小于第二个数;
(7)RESET=1,系统整体清“0”;
(8)RESET=T0=0,T1=AJ=1,T2=0,系统给A寄存器置数:
X3—X0=1001,则A3—A0=1001;
(9)RESET=T0=0,T2=AJ=1,T1=0,系统给B寄存器置数:
X3—X0=1001,则B3—B0=1001;当给B寄存器置数结束后,立即进行比较:
GG=1,EE=LL=0;表明第一个数等于第二个数;
5,结论
(1)数a和数b是并行送入的,分别通过T1和T2控制,但在送数时,AJ=1,否则也不置数;其原理可以见2.3.2A、B寄存器;
(2)当送完第二个数,系统立即进行比较。
(3)通过仿真,该74161能达到所要满足的CNT寄存器的功能。
2.3.4数据选择器
1,分析
根据题目技术要求选出大数,即从A和B两数中选出大数。
可选用二选一数据选择器。
由于A和B为四位而二进制数,则选用74157芯片四个二选一数据选择器。
2,二选一MUX的地址,控制端和数据端连接
从ASM图和处理器明细表可知,输出端输出大数,地址A端连接到FA〈B。
分析:
当A=FA〈B=1时,选择D1数据输出(Y=B,B为大数)。
当A=FA〈B=0时,A〉B,选择D0数据输出(Y=A,A为大数)
A=B,选择D0数据输出(Y=A,选A输出)
3,二选一MUX的使能端的控制
当
=1,Y=0时,数据选择器不工作;
当
=0,Y输出取决于地址A。
因此,从ASM图和处理器明细表可知:
=
当T3=0时,
=1,Y=0时,数据选择器不工作;
当T3=1时,
=0,数据选择器工作。
4,获得电路图
(1)芯片设计图(如图2-18):
(2)仿真设计图(如图2-19):
4,分析仿真结果
(1)RESET=1,TO=AJ=0,T1=T2=T3=0;系统整体清“0”;
(2)RESET=T0=0,T1=AJ=1,T2=T3=0,系统给A寄存器置数:
X3—X0=0101,则A3—A0=0101;
(3)RESET=T0=0,T2=AJ=1,T1=0,系统给B寄存器置数:
X3—X0=1001,则B3—B0=1001;当给B寄存器置数结束后,立即进行比较:
EE=1,GG=LL=0;表明第一个数小于第二个数;
但是因为T3=0,所以74157不工作,即Y4—Y1=0000;
(4)RESET=T0=0,T2=AJ=1,T1=0,T3=1;Y4—Y1=1001显示的是大数;
(5)RESET=1,系统整体清“0”;
(6)RESET=T0=0,T1=AJ=1,T2=0,系统给A寄存器置数:
X3—X0=1001,则A3—A0=1001;
(7)RESET=T0=0,T2=AJ=1,T1=0,T3=1,系统给B寄存器置数:
X3—X0=0001,则B3—B0=1001;当给B寄存器置数结束后,立即进行比较:
GG=1,EE=LL=0;表明第一个数大于第二个数;且Y4—Y1=1001;
(8)RESET=1,系统整体清“0”;
(9)RESET=T0=0,T1=AJ=1,T2=0,系统给A寄存器置数:
X3—X0=0001,则A3—A0=0001;
(10)RESET=T0=0,T2=AJ=1,T1=0,系统给B寄存器置数:
X3—X0=0001,则B3—B0=0001;当给B寄存器置数结束后,立即进行比较:
GG=1,EE=LL=0;表明第一个数等于第二个数;且Y4—Y1=0001。
5,结论
(1)当送完第二个数,系统立即进行比较。
当T3=1时,74157工作。
(2)通过仿真,该74157能达到所要满足的CNT寄存器的功能。
2.3.5译码显示电路
1,显示管
译码器选择7448芯片(8421BCD码译成a~g的电位信号),显示选择共阴极数码管,
如图2-21:
8421BCD码译成a~g的电位信号表(如表2-4):
2.3.6分频器
实验箱上提供2KHz振荡信号,通过1000分频可获的2Hz振荡信号。
(1)电路设计
1))芯片设计图(如图2-25):
2))仿真设计图(如图2-26):
(2)分析仿真结果
(1)CR=0,系统自动清“0”;
(2)CR=1,表示每通过1000分频可以获得2HZ振荡信号。
(3)结论
通过仿真,该74160能达到所要满足的分频器的功能。
2.4控制器设计
2.4.1方案选择
1,每态一位:
控制器中状态寄存器有多种形式,采用每态一位的方法设计控制器。
这种设计方法在状态不多的情况下便于设计和调测。
控制器采用每态一个D触发器实现,由于ASM图中有四个状态,所以需要4个D触发器。
2,数据选择器+寄存器+译码器:
控制器中状态寄存器有多种形式,采用数据选择器+寄存器+译码器的方法设计控制器。
这种设计方案占用的资源少,但设计和调测相对复杂。
通过以上的认真分析和比较本电路决定选择方案一(即:
每态一个D触发器),目的在于设计和调测控制器比较容易。
2.4.2求激励函数
2.4.3控制器发出的命令
SETXa=T1·AJ,SETE=T3;
SETXb=T2·AJ,SETE=T3;
2.4.4外部发出的命令
2.4.5发光二极管的逻辑表达式
依靠ASM图可以求出二极管的逻辑表达式:
2.4.6画图
控制电路图:
(1)芯片设计图(如图2-28):
(2)仿真设计图(如图2-29):
发光二极管图:
(1)芯片设计图(如图2-30):
(2)仿真设计图(如图2-31):
2.4.8分析仿真结果
1、分析图
(1)RESET=1,T0=1,系统整体清“0”;
(2)RESET=0,T0=CNT8=0,LED1=1(亮),T1=1,T2=T3=0,表明现在可以送第一个数Xa;
AJ=0,故GG=1,EE=LL=0,数并没有送进A寄存器,系统一直在等待送数;
(3)RESET=T0=CNT8=0,AJ=1,GG=1,EE=LL=0,即将数Xa送入A寄存器,立即LED1=0,LED2=1,表明现在可以送第二个数Xb;
(4)RESET=T0=CNT8=0,AJ=0,故GG=1,EE=LL=0,数并没有送进B寄存器,系统一直在等待送数;
(5)RESET=T0=CNT8=0,AJ=1,GG=1,EE=LL=0,即将数Xb送入B寄存器;
(6)RESET=T0=CNT8=0,AJ=0,立即输出比较结果,T3=1,LED1灯闪亮,LED2=0,表明第一个数大;
(7)RESET=0,AJ=0,CNT8=1,T0=1,系统内部自动清“0”,T1=T2=0。
(8)循环到
(2)。
2、分析图
(1)RESET=1,T0=1,系统整体清“0”;
(2)RESET=0,T0=CNT8=0,LED1=1(亮),T1=1,T2=T3=0,表明现在可以送第一个数Xa;
AJ=0,故LL=1,EE=GG=0,数并没有送进A寄存器,系统一直在等待送数;
(3)RESET=T0=CNT8=0,AJ=1,LL=1,EE=GG=0,即将数Xa送入A寄存器,立即LED1=0,LED2=1,表明现在可以送第二个数Xb;
(4)RESET=T0=CNT8=0,AJ=0,故LL=1,EE=GG=0,数并没有送进B寄存器,系统一直在等待送数;
(5)RESET=T0=CNT8=0,AJ=1,LL=1,EE=GG=0,即将数Xb送入B寄存器;
(6)RESET=T0=CNT8=0,AJ=0,立即输出比较结果,T3=1,LED2灯闪亮,LED1=0,表明第二个数大;
(7)RESET=0,AJ=0,CNT8=1,T0=1,系统内部自动清“0”,T1=T2=0。
(8)循环到
(2)。
3、分析图
(1)RESET=1,T0=1,系统整体清“0”;
(2)RESET=0,T0=CNT8=0,LED1=1(亮),T1=1,T2=T3=0,表明现在可以送第一个数Xa;
AJ=0,故EE=1,LL=GG=0,数并没有送进A寄存器,系统一直在等待送数;
(3)RESET=T0=CNT8=0,AJ=1,EE=1,LL=GG=0,即将数Xa送入A寄存器,立即LED1=0,LED2=1,表明现在可以送第二个数Xb;
(4)RESET=T0=CNT8=0,AJ=0,故EE=1,LL=GG=0,数并没有送进B寄存器,系统一直在等待送数;
(5)RESET=T0=CNT8=0,AJ=1,EE=1,LL=GG=0,即将数Xb送入B寄存器;
(6)RESET=T0=CNT8=0,AJ=0,立即输出比较结果,T3=1,LED1,LED2灯交替闪亮,表明两个数相等;
(7)RESET=0,AJ=0,CNT8=1,T0=1,系统内部自动清“0”,T1=T2=0。
(8)循环到
(2)。
2.4.9结论
通过仿真,该每态一位能达到所要满足的控制器的功能。
第3章整体原理图
1.原理图
2.pcb版图
整体结论
当将仿真电路烧入芯片后,实际连线成功后,过程如下:
(1)开RESET键(=1),电路整体清0;
(2)关闭RESET键(=0),此时LED1灯亮,表明要送入第一个数Xa;
(3)将X3-X0送数,打开AJ键,即刻关闭AJ键;
(4)此时LED2灯亮,表明要送入第二个数Xb;
(5)将X3-X0送数,打开AJ键,即刻关闭AJ键;
(6)送完第二个数,电路立即比较,译码管显示大数,对应的灯亮;
(7)持续8s后,电路自动清0,此时LED1灯亮,表明要送入第一个数Xa;
(8)重复过程(3)至(7)。
第四章实验小结
4.1实验小结
(1)单单对芯片是不可以访问的,故得知:
当生成芯片后,可以添加输入输出管脚产生一个完整的处理器部分,此时才可以对芯片进行访问;
(2)顶层图图仿真成功后,不可以直接烧入芯片,因为这样根本对实际电路没有影响,故得知:
在烧入电路芯片前,应该对每个IPAD和OPAD加管脚号,且这些管脚号与电路上的编号要一一对应,然后连接的电路才可以使用;
(3)某次对某电路在进行编译,可是总会报错,且经过多次确认,电路图是正确的,最终在老师的指导下,得知:
对某电路在进行编译之前,我们应先看一下目录下的文件个数,将不需要用的文件移除掉,因为有多个文件时,编辑器不知道识别哪一个文件进行编译,所以会报错;
4.2心得体会
在学习这门课程之前,我以为自己对数字电路的掌握很好,但是通过这次课程设计,我明白了自己所学习的是微不足道的,很少在实际电路中起到作用,故在了解了实验后,我又复习了一遍模拟电路,数字电路理论,了解了综合型电子电路的设计、装配和调制方法;掌握电子元器件资料和电路资料的检索方法,并且再次学习到了很多。
我还懂得了理论与实