可编程逻辑器件的的应用参考
引言
随着大规模超大规模可编程逻辑器件的发展,逻辑器件日益以其低廉的价格及灵活的设计方式、丰富完备的功能而广泛应用于电子线路设计中。采用cpld可对逻辑电路功能进行综合集成,根据需要设计最小的单元,节约系统资源,极大的减少了电路板上功能模块及模块间连线。同时以其灵活的设计及在线升级方式对系统进行修改升级,减少了对电路板本身的修改,提高了系统整体可靠性,节约了制版费用,缩短了设计的周期。
但可编程逻辑器件使用中还有诸多需要注意的细节,特别是对于才开始应用其进行设计的电子线路设计人员,只有把握住这些细节才能成功的进行设计。

在设计之前需要对逻辑器件进行了解,以max7000系列为例,器件管脚设置如图1。这是将cpld器件应用于pci接口逻辑的一个示例,实现对pci接口芯片输出的本地控制信号的译码及部分功能模块的嵌入式设计。
元件除去电源部分所需管脚,剩下的大部分是i/o口,可定义为系统所需控制管脚。需要注意几个全局信号控制脚,如gclk、oe等管脚可用于整个逻辑器件工作时序的控制,一般用于全局信号的连接。同时需要注意的是tdi、tms、tdo、tck四个管脚是与在线编程相关的程序下载管脚,必要时候也可作为通用的管脚使用。altera元件的下载线可以购买或是自行制作,资料比较完备。要实现在线编程,cpld元件部分的pcb设计时需要注意,几个下载管脚不是悬空的,都必须进行上拉、下拉设计,电路如图2。这点容易忽略,而导致下载软件无法发现下层的器件,相关说明在文档“in-system programmability”中。

控制逻辑设计
cpld的巨大优势体现在其灵活性,可根据需要设计组合逻辑,减少了分离元件的使用,提高了系统的集成程度及可靠性。对于一般的应用采用max+plus编辑软件就可以完成,其界面简单,所有功能都集成于菜单中,可方便完成设计、综合、仿真、下载的全过程。图3为是应用74ls154对应软核设计的pci接口译码电路,从而在cpld内部实现4-16译码。电路图中可标明其用到的管脚,还可根据需要进行配置,以便于外部pcb设计的布线优化。

subdesign ndivide
(
clk :input;
clkoutd :output;%偶分频输出%
bxcountout[3..0] :output;
countaout[2..0] :output;
)
variable
%偶分频变量%
countd[3..0] :dff;%小于16分频器,偶
数分频器%
clkregd :dff;
begin
%偶分频部分%
countd[].clk=!(clk);
clkregd.d=!clkregd.q;
clkoutd=clkregd.q;
if (countd[].q==1) then%根据分频数定,2的n+1分
频,此处为4分频,2分频时clkregd.clk=!clk即可%
countd[].d=0;
else
countd[].d=countd[].q+1;
end if;
clkregd.clk=countd0.q;
end;
该程序仿真波形如图4,实现了四分频电路的逻辑设计、实现。

应用cpld还需注意其输出脚状态改变时所产生的高频的脉冲,会对下一级器件带来严峻的考验。因此在 pcb设计中必须进行相应的处理,才能有效抑制脉冲的极值,同时保证上升沿的陡直。图5为一脉宽调制软核的输出效果图。该模块实现精度为8位的脉宽调制,方波信号基频为4khz,由33m的pci时钟分频得来。系统只应用最简单的阻容滤波电路来降低脉冲值。

结束语
应用可编程逻辑器件,可加速开发的进程,在器件提供的方针环境中进行功能的仿真验证,可及时发现设计中的缺陷。但是自带的仿真器本身也并非完美,在电路设计完成后还需进行更细致的验证。cpld的广泛应用给电子线路设计人员有更大的发挥空间,更灵活的设计方式,极大的提高了设计效率。
评论