一、 实验目的
(1) 学习用MAX+Plus II开发系统对可编程逻辑器件编程的方法;
(2) 学习“CPLD/FPGA数字发展实验箱”的使用方法以及把文件下载到CPLD芯片中的方法。
二、 仿真电路设计及设计思路
仿真电路图如图所示。具体的电路接法及工作原理说明如下:
用两个74LS194四位双向移位寄存器模拟乒乓球台,其中第一个74LS194的DL输出端接第二个的右移串行输入端,这样当乒乓球往右准备移出第一个寄存器的时候就会在时钟脉冲的作用下被移入第二个寄存器。同样道理,第二个74LS194的AR输出端接第一个的左移串行输入端。
由于台面只能有一个乒乓球,以及乒乓球到达球台末端就出界,所以第一个74LS194的右移串行输入端及第二个的左移串行输入端接低电平。
复位端操作原理如下:复位端reset通过非门接到两个D触发器的置1输入端,使两个D触发器的输出端Q均为高电平。这时两个移位寄存器的控制端S0、S1均为高电平,移位寄存器处于并行输入状态。由于乒乓球在发球的时候只能处于球台的两端,因此第一个寄存器的A输入端接setL发球控制开关,第二个寄存器的D输入端接setR发球控制开关,而两个寄存器的其它并行输入端都接低电平。
运动员击球原理如下:假设现在乒乓球在球台的左侧,AL输出端为高电平,这里运动员击球,hitL为高电平,AL和hitL通过与门和非门给两个D触发器形成时钟脉冲,这时第一个D触发器的D输入端为低电平;由于DR为低电平,第二个D触发器的D输入端为高电平。于是hitL产生脉冲的结果是Q1=0,Q2=1。这两个电平作用到移位寄存器上就是:S0=1,S1=0。这两个控制端电平使寄存器产生右移信号。右边的运动员击球的情况类似。
需要特别说明一下:上面的设计电路图在击球脉冲(hitL和hitR)的设计上与实验指导书的设计稍微有点不同。在非门的两个输入端分别加了一个与门。这样只有在乒乓球在球台左边的时候hitL才能对D触发器形成时钟脉冲,只有乒乓球在球台右边的时候hitR才能对D触发器形成时钟脉冲。也就是说,运动员过早或过晚挥拍都无效。
而按照指导书的原图,运动员过早或过晚挥拍都会使移位寄存器的S0=1,S1=1,也就是说,游戏重新回到开始状态。我认为我的设计更加符合实际逻辑。
三、 仿真结果及结果分析
对以上电路图进行仿真,仿真的波形图如下:
首先裁判按下reset按钮,对电路进行复位操作(复位不能长时间按下),然后打开setL开关,左边的运动员发球。此时setR需一直保持低电平。
各击球脉冲说明如下:
L1表示左运动员正常击球,乒乓球往右移;
R1表示右运动员过早击球,由于电路在设计时在非门的输入端加了与门,因此R1不能对D触发器形成时钟脉冲,击球无效,乒乓球继续往右移;
L2表示左运动员随意挥拍,和R1的结果一样,球继续往右移;
R2表示右运动员正常击球,乒乓球被击后改为往左移;
L3表示左运动员过早击球,不影响球的运动;
L4表示左运动员正常击球,乒乓球被击后改为往右移;
R3表示右运动员过晚击球,乒乓球出界。
四、 实验总结
CPLD的出现使得实现电子设计自动化变得更加简单。我们在设计的时候就可以花更多的时间进行抽象思维劳动,花更多的时间在电路原理的设计上,而不必去考虑电路实现的物理细节。同时,在设计的时候要尽量使电路的仿真结果更加符合实际逻辑。如本实验中,运动员过早击球的结果是本次击球无效,过晚击球的结果是球出界,而不是像原先指导书设计的那样:移位寄存器进行并行输入状态,从而左边或右边的运动员重新发球。总而言之,要使电路的设计尽可能贴近实际逻辑,做到更人性化,这些都需要我们下大功夫。
文章评论(0条评论)
登录后参与讨论