system generator模块中有一个初学者比较容易混淆的地方,就是系统时间的相关概念。

需要明确3个概念:Simulink 系统周期(simulink system period)、FPGA时钟周期(fpga clock period)、fpga实际时钟周期。

前两个参数可以在system generator模块中进行设置。simulink系统周期是simulink进行仿真的最小仿真步长,仅仅是为了simulink进行仿真,与最终硬件的时钟周期没有必然联系。在很多处理系统中往往选取1s为系统仿真周期,而在许多音频处理系统中往往为了配合数据输入源的速率将音频信号的采样周期作为系统周期。

FPGA时钟周期是系统设计者希望此系统在硬件实现时能达到的最快速度的时钟周期,也就是fpga中的时钟约束,实际时钟周期就是开发板上的晶振周期,它可以大于fpga时钟周期。

这三个时钟周期的概念相互之间是有联系的。设计者用system generator设计的模型等同于自己开发的一个ip核,其生成的顶层hdl模型会自动添加一个输入时钟接口clk,在设计者设计模型时,simulink系统周期是与fpga实际时钟周期相对应的,例如simulink系统设为1s,系统中另外存在一个计数器的周期为2s(注意系统内任何模块的周期必须大于simulink系统周期,否则无法进行正确仿真),这意味着此计数器的工作频率为system generator系统频率的1/2。则在硬件中,计数器的时钟为clk/2。

参考《多媒体处理FPGA实现——system generator篇》