创建一个双向计数器

创建一个双向计数器

信号调理技术

这种技术可以在任何包含SPI接口的GreenPAK中使用。这种技术的替代方案可以完成使用其他GreenPAKs与FSM块和存储计数器信息使用I2读取命令,并行输出,或其他方法。

计数器是一种用于计数输入事件(脉冲、边缘)的基本数字电路,通常使用数字触发器级联来构造。在GreenPAK中,一些CNT/DLY块更加健壮,可以用作有限状态机(FSM),它不仅可以递增,还可以递减或保持当前值,这是由GreenPAK矩阵中的互连决定的。这种技术通过使用GreenPAK中的两个FSM块来监视一个脉冲输入(时钟),并通过SLG46140V的SPI宏控制器输出相应的16位序列来说明这种行为。

“SPI输出的16位FSM”在一个构造的16位寄存器(FSM0, FSM1)中计数输入时钟脉冲。在任何时候,用户都可以通过SPI读取值,重置16位寄存器,或者改变计数方向。

16位计数器是使用两个计数器(FSM0和FSM1块)与额外的逻辑来实现。位[15:8]被存储在FSM0,组成一个双向计数器中FSM1。有限状态机都被连接到SPI块,其可以输出经由SPI串行数据。计数方向由向上/向下引脚控制,直接连接到FSM块向上矩阵输出。如果这个针高,系统计数向上,如果这个针低,系统计数向下。Gen复位针用于复位两个计数器值(有源高)。

时钟输入引脚在同时施加CLK输入FSM1和FSM0。FSM1对每个时钟进行计数,而FSM0只在FSM1计数器值255且上下信号高或FSM1计数器值0且上下信号低时进行计数。方法实现此功能保持FSM0的输入。当这个信号是高的计数器值的FSM0是不变的时钟信号。保持通过反相器连接到输出FSM1。反过来,FSM1的输出是仅高时计数器的值是0,并且向上/向下信号为LOW时,或当计数器的值是255和上/下信号为HIGH。

资源

GreenPAK Designer文件