·上一文章:基于P89LPC932的红外抄表系统设计
·下一文章:利用0至1V模拟乘法器实现电池供电系统的精确功率管理
4.1 PWM的仿真
ModeslSim仿真主要观察PWM电路的双向IO端口以及PWM的Regs读写控制时序。对于双向端口的数据交换,可以采用读写控制结合三态门来完好地解决。而对于大量的Regs读写操作,则应通过模拟单片机对外围器件进行操作,并利用Task调用的方式来实现。本文的读写操作仿真结果如图5所示。
从图5可以看到,当采用16 bits读写时,各寄存器通过内部DataInternal数据总线的传输过程与电路设计要求完全一致。RWLogic与DataInterface模块的功能完全符合设计预想。
从图6所示的PWM波形仿真结果可见,PWM输出信号在ClkGen的CycleScale信号控制下,其周期输出编程设定的PWM波形与之完全一致,同时还能异步响应ChannelHold_b信号的输出控制。
4.2 PWM的验证
PWM的FPGA验证可采用8 bits数据接口,并用89C51做外围控制器(12 MHz)来对PWM进行操作。为了方便与单片机的接口,可将74LS373锁存器内置到PWM中,其整个数字部分设计如图7所示。
5 结束语
通过Synplify Pro编译后,其最后的结果为:
该方案的整个电路设计占用FPGA资源的35%。对于51系列的单片机而言,该PWM电路可运行的频率远远超过系统频率。因此,在读写时序上完全可以保证整个设计的可靠性。
如果将编译后的pof文件下载到APEX20KEEP20K100E TQ144-2X(Altera)fpga验证板,并采用40 MHz的FPGA时钟,那么,根据软件仿真的步骤,再将读写操作转换为单片机程序烧录到单片机,就可通过示波器清楚的看到,其实际输出与设计完全一致,非常好地实现了当初的设计要求。