CPLD在DSP系统中的应用设计
2 CPLD逻辑控制的具体实现
2.1 复位信号的实现
复位信号逻辑产生较简单,需要处理的是按键的去抖动。由于按键是机械触点,当机械触点断开、闭合时会有抖动,为使每一次按
键只作一次响应,就必须考虑去除抖动。在通过按键获得复位信号为低的信息时,不是立即认定按键已被按下,而是延时一段时间后再次检测复位信号。如果仍为低,说明按键的确按下了,这实际上是避开了按键按下时的抖动时间。同样,在检测到按键释放后,再延时几个毫秒,消除后沿的抖动,然后再对键值处理。由于抖动现象主要出现在按键按下后,采用延时方法可有效地减少按键的抖动现象。
2.2 BOOT模式的实现
为了满足在复位有效期间对相应管脚进行配置,在复位无效时,使管脚进入高阻态。以其中一个管脚为例,采用Verilog语言,用如下语句实现该功能:
assign hd0=(tp4)?rst_hd0:1′bz;
//复位有效期间,tp4为1,hd=rst_hdo,即为设定值;复位无效时,tp4=0,hd为高阻态。
图4
因为DSP自举有特定的时间要求,在复位信号结束后,配置管脚的值必须至少保持25ns。通过对复位信号作一定的延时,可以满足要求。采用CPLD将信号作一定的延时,并不能简单地在信号后串接一些非门或其它门电路,因为开发软件在综合设计时会将这些门作为冗余逻辑处理,达不到延时的效果。所以采用高频时钟驱动一移位寄存器,对移位寄存器进行正确的设置后,输出即为延时后的数据。语句如下:
always@(posedge eclkout2) //采用dsp的clkout=100MHz二分频后作延时
begin
if(svs_rst_) //svs_rst_低电平,count始终置1010
begin
count=4′b1010;
end
else if(count==4′b0000) //0000则保持
begin
count=4′b0000;
end //svs_rst_高电平,count开始计数
else
begin
count=count+4′b0001; //记六次至0000
end
end
assign tp4=count[3];
仿真效果如图4所示。由仿真波形可见,CPLD的信号输出完全符合DSP BOOT的两个要求。
2.3 HPI口接口逻辑的实现
图像压缩编码器通过DSP的HPI口与网络模块连接,实现图像的网络传输。TMS320C6202的HPI口是指其扩展总线的主机口接口部分。经过编码器编码后的MPEG-4图像数据以帧为单位存放在DSP内部存储器中,外部主机通过HPI口读取。现以MCF5272微处理器与HPI口通信为例进行说明。
图5
MCF5272将10/100MB以太网控制器和一个USB模块等通信外围设备结合起来