从C6421 HPI寄存器的编址方式可以看出,主机需两根地址线寻址到HPI接口的控制寄存器、地址寄存器和数据寄存器,因此选择主机的地址线A29、A28连接C6421 HPI的HCNTL1、HCNTL0。选择主机的地址线A30连接到C6421 HPI的HHWIL,作为半字指示选择。HPI的选通由HCS、HDS1、HDS2三根信号线共同作用,最后的HPI使能信号(STROBE)为HDS1异或HDS2后,再与HCS进行与非运算的结果。HCS、HDS1、HDS2信号由FPGA产生。TA为MPC8272传输结束标识,HPI口HRDY有效后FPGA向CPU发送TA,保证HPI数据正确读出。C6416 HPI的HINT信号可以直接连接到主机的IRQ引脚上实现HPI对主机的中断信号连接,也可通过FPGA连接到主机,使控制更灵活。
六、地址空间分配
由于C6421为16位的HPI口,其内部总线为32位,所以每次读写要分两次,一次为高16位,一次为低16位,由HHWIL来选择(0-First Half Word, 1-Second Half Word),设定HPIC.HWOB = 0(First Half Word =高16位, Second Half Word = 低16位)。C6421的HPI接口映射为MPC8272的4对地址空间,由MPC8272 CS3控制,配置CS3为16位宽的GPCM访问模式,如下地址分配:
HPIC:0x0D000000(高16位), 0x0D000002(低16位)。
HPIA: 0x0D000004(高16位), 0x0D000006(低16位)。
HPID_FIX: 0x0D00000C(高16位), 0x0D00000E(低16位),C6421地址由当前的HPIA决定。
HPID_Auto: 0x0D000008(高16位), 0x0D00000A(低16位) C6421地址自动加1。
七、HPI接口相关VHDL代码
output wire c6421_hasn, c6421_hcsn, c6421_hdsn1, c6421_hdsn2,
assign c6421_hasn = 1'B1;
assign c6421_hcsn = cs3;
assign c6421_hdsn1 = wen;
assign c6421_hdsn2 = oen;
reg [7:0] st_ta;
reg tax;
wire tax001 = (zzz_cnt==256) ? 0 : 1 ;
wire tax002 = (zzz_cnt==256+8) ? 0 : 1 ;
wire tax003 = (zzz_cnt==256+16)? 0 : 1 ;
wire tax004 = (zzz_cnt==256+32)? 0 : 1 ;
reg c6421hcsn_start;
always @(posedge clk_cpu)
if (zzz_cnt==5) c6421hcsn_start <= 1;
else c6421hcsn_start <= 0;
always @(posedge clk_cpu) begin
if (c6421hcsn_start) begin
st_ta <= STA_CHECKRD;
tax <= 1;
end
else if (STA_CHECKRD == st_ta) begin
if (c6421_hrdyn)
st_ta <= STA_CHECKRD;
else
st_ta <= STA_GEN;
tax <= 1;
end
else if (STA_GEN == st_ta) begin
st_ta <= STA_END;
tax <= 0;
end
else begin
tax <= 1;
end
end
assign ta = (~cs3) ? (tax & tax001 & tax002 & tax003 & tax004): 1'BZ;
MPC8272功能很强大,C6421 HPI接口相对于MPC8272来说为慢速外部设备,TA为MPC8272传输结束标识,HPI口HRDY有效后FPGA向CPU发送TA,保证HPI数据正确读出。因此在VHDL程序中设计了状态机,当HRDY信号有效后就立即结束本次访问,否则经过一段时间的延迟后强制结束本次访问,这样可以避免接口长时间占用总线,影响系统性能。
八、结束语
本文使用VHDL语言和FPGA,设计了MPC8272与DSP之间的HPI接口。之所以使用FPGA,是因为在系统中FPGA还包含有其他的功能设计。如果只有MPC8272与DSP之间的HPI接口设计,使用CPLD即可完成,而不必浪费FPGA的资源。
参考文献:
1、TMS320C6421 Fixed-Point Digital Signal Processor datasheet。TI公司提供
2、TMS320C642x DSP Host Port Interface (HPI) User's Guide。TI公司提供