基于Protel 99SE软件的PLD设计

图2编译生成的各种文件打开生成的。jed文件,点击右键,在弹出的窗口中选择[Export…]项,选择。jed文件的输出目标地址。

至此就完成了PLD文件的设计。

3 Proteus对PLD的仿真

启动Proteus,绘制好电路图。

基于Protel 99SE软件的PLD设计

图3 Proteus仿真电路图电路中LED显示采用低电平时LED点亮的显示方式。电路中I1-I3为GAL16V8输入端口,端口为高电平时为1,低电平时为0,IO0-IO7为输出端口,输出端口为:LED灯亮时端口输出低电平0,熄灭时为高电平1.为了使PLD元件能仿真,还必须在电路中将编译的。jed文件加入PLD元件中:将鼠标移到U1(16V8)中,右击,选择元件,然后左击,调出“元件的属性”对话框,在属性对话框中,在窗口中的“JEDEC Fuse Map File:”中加入。jed文件:

图4 16V8元件属性由前面PLD的设计可得3-8译码器的真值表:输入信号输出信号I3 I2 I1 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1表1 3-8译码器真值表为了观察16V8的输入与输出的对应关系,我们在AT89C52的程序(程序见附录)中将与I3、I2、I1相连的P2_2、P2_1、P2_0三个端口按真值表中的顺序依次改变,观察LED灯是否由IO0至IO7依附点亮。

将单片机的程序加入AT89C52后,在Proteus中点击Play键观看电路仿真结果:当输入端的I1、I2、I3值按程序设定按真值表中的000—111依附改变时,输出端对应LED灯按真值表中的对应关系由IO0至IO7依次点亮,如下图。说明PLD器件16V8设计的三八译码器译码正确。

基于Protel 99SE软件的PLD设计

图5译码电路对应输入/输出截图

4.结语

单片机与PLD的结合是当前嵌入式设计经常采用一的种方式。但如果要进行硬件电路测试和系统调试则比较麻烦,因为要进行这两个过程必须在电路板制作完成、元器件焊接完毕之后进行。而电路板的制作、元器件的安装、焊接是费时费力的,如果采用作为单片机系统的仿真工具PROTEUS进行单片机和PLD的仿真,则不用制作具体的电路板也能够完成以上工作。在使用PROTEUS运行系统虚拟开发成功之后再进行实际制作,可以直观得观察电路的运行情况,提前发现设计的错误,可以极大的提高开发效率、降低开发成本、提高开发速度。