用CPLD实现DSP与背板VME总线之间的连接
发布时间:2008/5/28 0:00:00 访问次数:678
摘要:介绍了采用cpld实现dsp 芯片tms320c6713 和背板vme总线之间高速数据传输的系统设计方法。设计中采用vhdl语言对cpld进行编程。同时由于cpld的现场可编程特性,增强了整个系统的灵活性。
关键词:cpld;dsp;hpi;硬件描述语言
1 引言
cpld是一种用户可以根据自行需要而自己能够设计构造其逻辑功能的数字集成电路系统,实现了硬件设计的软件化。cpld具有丰富的可编程i/o引脚,具有在系统可编程( in system programmability)、使用方便灵活的的特点;近年来, cpld器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,使用cpld器件可以极大地缩短产品开发周期,给设计、修改带来很大方便。cpld成为一种可优化硬件电路设计且具竞争力的产品。
altera 公司不仅提供大规模的cpld 和fpga 器件, 同时也提供一套十分有特色的综合工具maxplu s- ii, 设计者既可以使用原理图输入, 也可以使用文本输入方式, 更可以二者混合输入。从编译、综合、布线到仿真、下载一气呵成, 十分方便。
tms320c6713是ti公司在tms320c6711的基础上推出的新一代浮点dsp芯片,它可以在255mhz的时钟频率下实现1800mips/1350mflops的定点和浮点运算,极大程度上满足了高速数据采集与实时控制系统对信号处理速度的要求。作为下位机使用时,它可通过主机口hpi与各种不同类型的上位机连接。
本文将给出如何使用altera 公司的cpld 器件epm7128ae-144实现dsp的hpi口和背板的vme总线之间的连接方法。
2 tms320c6713的hpi
2.1 tms320c6713hpi口的接口信号
tms320c6713的hpi口是一个16位宽的并行端口。上位机掌管该端口的主控权,可通过hpi直接访问tms320c6713的存储空间和外围设备。表1总结了tms320c6713hpi的接口信号的基本特征。
下面对它们的具体工作方式进行说明。
(1)hd[15-0]可以看作数据地址的共用总线,通过hd[15-0]传送的数据包括控制积存器的设置值、初始化的访问地址以及要传输的数据。
(2)hcntl[1-0]信号控制当前访问的是hpi的哪一个寄存器,还提供了一个对hpi数据寄存器(hpid)进行自增的访问方式。表2给出了hcntl[1-0]控制信号功能。
(3)hhwil的作用是表明区分hd[15-0]上传输的是32位数据中的高16位还是低16位。
(4)#has信号用于复用地址数据总线的主机。
(5)#hcs、#hds1和#hds2信号在片内组合为一个低有效的#hstrobe信号,它的作用是:读取时#hstrobe信号的下降沿锁存输入hpi的控制信号,写入时其下降沿和读取时作用相同,上升沿则锁存写入的数据。
(6)#hrdy信号表明hpi是否已准备好传输数据,作用是在接口时序上插入等待状态。
tms320c6713hpi中用三个寄存器来完成主设备和cpu的通信,他们是hpi数据寄存器(hpid)、hpi地址寄存器(hpia)、hpi控制寄存器(hpic)。hpid中存放的是主机从tms320c6713存储空间中写入的数据。hpia中存放的是主机访问tms320c6713存储空间的地址。hpic中存放的是tms320c6713的控制信息,其高16位和低16位内容相同。
3 设计实现
实际上, 整个cpld 设计的主要任务也是围绕这几个信号的设计展开的。
用vhdl实现cpld的内部逻辑实现,vhdl 是用来描述从抽象到具体硬件级别的工业标准语言, 并已成为一种通用的硬件设计交换媒介。。vhdl硬件描述语言设计方法其灵活性、可移植性都是非常好的,在对设计的仿真方面同图形化硬件描述方法一样都是非常优秀的,设计效率在大规模设计中将明显高于原理图设计。
部分vhdl程序如下:
has <='1';
hrw <=crw;
hcntl0 <=ca2;
hcntl1 <=ca3;
hds1 <='1';
hds2 <=cis and hrdy;
cirq1<=hint;
ca_l <=ca16&ca15&ca14;
ca_m <= ca5&ca4;
p1:process (ca_l,ca_m)
begin
case ca_m is
when "00"=>ec<="1110";
when "01"=>ec<="1101";
when "10"=>ec<="1011";
when "11"=>ec<="0111";
when others =>ec<="1111";
end case;
hcs <=ec(0);
end process p1;
具体的设计思路如下:本设计中,因为还有其他板内部件需要选择,所以采用地址的4和5译码来控制hcs,当为“00”时hcs有效。设计时将hds1 固定接高电平, 并由is和hrdy信号产生逻辑来控制hds2 信号。当hrdy处于无效状态(即hpi 端口未准备就绪) 时, hds2 信号不变,不采样任何信号;而当hrdy有效时, hds2 信号同is 信号保持一致, 并在is 的下降沿采样控制信号,在上升沿采样数据信号。在一次传输开始之前和结束之后, hds2 都要保持为高电平。可用hds2 作为时钟输入的两分频电路来产生hhwil ; hcntl[ 0 : 1] 接两根地址线,以便由上层驱动程序来控制
摘要:介绍了采用cpld实现dsp 芯片tms320c6713 和背板vme总线之间高速数据传输的系统设计方法。设计中采用vhdl语言对cpld进行编程。同时由于cpld的现场可编程特性,增强了整个系统的灵活性。
关键词:cpld;dsp;hpi;硬件描述语言
1 引言
cpld是一种用户可以根据自行需要而自己能够设计构造其逻辑功能的数字集成电路系统,实现了硬件设计的软件化。cpld具有丰富的可编程i/o引脚,具有在系统可编程( in system programmability)、使用方便灵活的的特点;近年来, cpld器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,使用cpld器件可以极大地缩短产品开发周期,给设计、修改带来很大方便。cpld成为一种可优化硬件电路设计且具竞争力的产品。
altera 公司不仅提供大规模的cpld 和fpga 器件, 同时也提供一套十分有特色的综合工具maxplu s- ii, 设计者既可以使用原理图输入, 也可以使用文本输入方式, 更可以二者混合输入。从编译、综合、布线到仿真、下载一气呵成, 十分方便。
tms320c6713是ti公司在tms320c6711的基础上推出的新一代浮点dsp芯片,它可以在255mhz的时钟频率下实现1800mips/1350mflops的定点和浮点运算,极大程度上满足了高速数据采集与实时控制系统对信号处理速度的要求。作为下位机使用时,它可通过主机口hpi与各种不同类型的上位机连接。
本文将给出如何使用altera 公司的cpld 器件epm7128ae-144实现dsp的hpi口和背板的vme总线之间的连接方法。
2 tms320c6713的hpi
2.1 tms320c6713hpi口的接口信号
tms320c6713的hpi口是一个16位宽的并行端口。上位机掌管该端口的主控权,可通过hpi直接访问tms320c6713的存储空间和外围设备。表1总结了tms320c6713hpi的接口信号的基本特征。
下面对它们的具体工作方式进行说明。
(1)hd[15-0]可以看作数据地址的共用总线,通过hd[15-0]传送的数据包括控制积存器的设置值、初始化的访问地址以及要传输的数据。
(2)hcntl[1-0]信号控制当前访问的是hpi的哪一个寄存器,还提供了一个对hpi数据寄存器(hpid)进行自增的访问方式。表2给出了hcntl[1-0]控制信号功能。
(3)hhwil的作用是表明区分hd[15-0]上传输的是32位数据中的高16位还是低16位。
(4)#has信号用于复用地址数据总线的主机。
(5)#hcs、#hds1和#hds2信号在片内组合为一个低有效的#hstrobe信号,它的作用是:读取时#hstrobe信号的下降沿锁存输入hpi的控制信号,写入时其下降沿和读取时作用相同,上升沿则锁存写入的数据。
(6)#hrdy信号表明hpi是否已准备好传输数据,作用是在接口时序上插入等待状态。
tms320c6713hpi中用三个寄存器来完成主设备和cpu的通信,他们是hpi数据寄存器(hpid)、hpi地址寄存器(hpia)、hpi控制寄存器(hpic)。hpid中存放的是主机从tms320c6713存储空间中写入的数据。hpia中存放的是主机访问tms320c6713存储空间的地址。hpic中存放的是tms320c6713的控制信息,其高16位和低16位内容相同。
3 设计实现
实际上, 整个cpld 设计的主要任务也是围绕这几个信号的设计展开的。
用vhdl实现cpld的内部逻辑实现,vhdl 是用来描述从抽象到具体硬件级别的工业标准语言, 并已成为一种通用的硬件设计交换媒介。。vhdl硬件描述语言设计方法其灵活性、可移植性都是非常好的,在对设计的仿真方面同图形化硬件描述方法一样都是非常优秀的,设计效率在大规模设计中将明显高于原理图设计。
部分vhdl程序如下:
has <='1';
hrw <=crw;
hcntl0 <=ca2;
hcntl1 <=ca3;
hds1 <='1';
hds2 <=cis and hrdy;
cirq1<=hint;
ca_l <=ca16&ca15&ca14;
ca_m <= ca5&ca4;
p1:process (ca_l,ca_m)
begin
case ca_m is
when "00"=>ec<="1110";
when "01"=>ec<="1101";
when "10"=>ec<="1011";
when "11"=>ec<="0111";
when others =>ec<="1111";
end case;
hcs <=ec(0);
end process p1;
具体的设计思路如下:本设计中,因为还有其他板内部件需要选择,所以采用地址的4和5译码来控制hcs,当为“00”时hcs有效。设计时将hds1 固定接高电平, 并由is和hrdy信号产生逻辑来控制hds2 信号。当hrdy处于无效状态(即hpi 端口未准备就绪) 时, hds2 信号不变,不采样任何信号;而当hrdy有效时, hds2 信号同is 信号保持一致, 并在is 的下降沿采样控制信号,在上升沿采样数据信号。在一次传输开始之前和结束之后, hds2 都要保持为高电平。可用hds2 作为时钟输入的两分频电路来产生hhwil ; hcntl[ 0 : 1] 接两根地址线,以便由上层驱动程序来控制