我在SLG46880V设备上使用F(1)计算宏单元。看起来,当使用单元对来自专用模拟比较器引脚的输入执行计算时,F(1)块的输出被路由到FSM转换输入,状态在模拟中没有正确转换。
当从通用连接矩阵路由输入时,它似乎工作正常。请参阅图片链接和示例文件:
https://www.dropbox.com/s/l8loe30ldw3pf7g/F%281%29%20error%20example.gp6?dl=0
设备:
设备数量:
SLG46880V
嗨,马修,
谢谢你的帮助。当ASM Macrocell第一次进入一个新状态时,f(1) calculation Macrocell才会开始执行指令。(您还可以在数据表的F(1)宏单元格部分找到一些更有用的信息)
因此,当输入电压小于ACMP的参考电压时,ACMP变低,F(1)块停止,ASM保持状态为0。因此,你看不到转变。除了OUT0之外,能否尝试在命令序列中使用Loop with Delay命令?所以每次迭代经过循环时,阈值都会被监控,并且会有一个过渡。
如果这有帮助,请让我知道
西瓦尼,我明白你的意思了。我将尝试添加循环,看看它是否改变了什么,谢谢。
嗨Shivani再次。我仍然没有任何运气完成我试图做的事情,这是在给定状态下连续监控模拟输入,使用F(1)宏单元执行一个运行的计算,并在满足某个计算条件时触发一个状态转换。例如,使用堆栈机将温度计代码从与F(1)单元输入相关的4个模拟比较器连续转换为3位格雷代码,然后在3位F(1)输出中设置特定位时触发状态转换。对于F(1)代码,我有如下内容:
正如你所说,没有循环语句,F(1)计算只执行一次进入状态。有了一个循环和延迟,它看起来像在模拟堆栈机进入一个无限循环,F(1)的输出连续变化,但控制永远不会返回到ASM和过渡永远不会发生。这有可能吗?如果有的话,你有一个实际的例子可以分享吗?谢谢你!
嗨,马修,
请在附件中找到F(1)宏单元格的工作示例。命令序列与你的稍有不同
亲切的问候
Shivani
谢谢你的例子,Shivani,抱歉我的回复延迟了,不幸的是,我所经历的问题仍然存在。F(1)单元进入循环并连续计算ACMP输入的4个输入与,在你的例子中不是问题。但是如果我说OUT0 F(1)细胞和连接状态转换输入ASM看起来从来没有触发,循环继续无限和控制不会返回给ASM在这种情况下,状态转换输入只是来自哪里F(1)的输出。
如果我将F(1)的OUT0连接到ASM过渡输入和F(1)上的“中断”引脚,那么当OUT0变高时,过渡被触发,我假设因为控制被返回,循环与ASM接收到过渡信号并发中断。但这似乎是一个竞赛风险,并不是一个特别有用的配置,无论如何,因为该连接将在所有状态和所有4种可能的F(1)配置中持久存在。我假设这是正确的行为,一旦F(1)进入一个无限循环在特定的状态,唯一的方法是通过外部输入到ASM或使用中断引脚强制返回控制到ASM?