摘要

本文设计了一种基于CPLD的SPI-GPIO模块,使得主芯片通过SPI接口与CPLD通信,以实现系统IO扩展的功能。鉴于CPLD中的功能模块应该在满足使用要求的情况下尽可能地降低模块所占用的资源和运行频率,该设计避免了采用高速率时钟信号采样低速率SPI信号的方式,而是直接采用主芯片的SPI接口信号SCK作为模块的驱动时钟,制定了数据帧协议,并在通信协议中引入了2个冗余位来满足时钟信号的要求。综合结果表明,该设计能够降低模块占用的资源,仿真和实际测试验证了该模块的功能。