DSP HPI总线与MPC8272总线接口的FPGA实现(3)
作者:佚名; 更新时间:2014-12-03

  从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公司提供

核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com