GreenPAK和GreenFET
7个月前
发布的马修·H。0点 6个回答我在SLG46880V设备上使用F(1)计算宏单元。看起来,当使用来自专用模拟比较器引脚的输入单元进行计算时,F(1)块的输出被路由到FSM过渡输入,状态在模拟中没有正确过渡。
当从一般连接矩阵路由输入时,它似乎可以正常工作。请查看图片和示例文件的链接:
https://www.dropbox.com/s/l8loe30ldw3pf7g/F%281%29%20error%20example.gp6?dl=0
7个月前
嗨Shivani再次。我仍然没有任何运气完成我正在尝试做的事情,这是在给定状态下连续监控模拟输入,使用F(1)宏单元执行运行计算,并在满足计算的特定条件时触发状态转换。例如,使用堆栈机将与F(1)单元输入相关联的4个模拟比较器的温度计代码连续转换为3位格雷码,然后在3位F(1)输出中的特定位被设置时触发状态转换。对于F(1)代码,我有如下内容:
LOAD4 //将LOAD4输入位推入栈顶位OUT2 //将堆栈顶位推入栈顶位OUT1, MSB LOAD2 //将LOAD2输入位推入栈顶位OUT1 //将堆栈顶位推入栈顶位OUT1,中间位LOAD1 LOAD3 INV //将堆栈顶位反转,LOAD3 AND //栈顶两位push result back to top OUT0 //将top位复制到OUT0 PUSH0 //堆栈的top位必须为0才能触发loop指令loop w DELAY //返回开始
正如你所说的,如果没有循环语句,F(1)计算只在进入状态时执行一次。使用循环和延迟,它看起来像在模拟堆栈机进入一个无限循环,F(1)的输出不断变化,但控制永远不会返回到ASM,过渡永远不会发生。这有可能吗?如果有,你有可以分享的工作例子吗?谢谢你!
7个月前
谢谢你的例子,Shivani,抱歉我的回复延迟了,不幸的是,我正在经历的问题仍然存在。F(1)单元进入循环,连续计算ACMP输入的4输入和,在你的例子中不是问题。但是如果我说OUT0 F(1)细胞和连接状态转换输入ASM看起来从来没有触发,循环继续无限和控制不会返回给ASM在这种情况下,状态转换输入只是来自哪里F(1)的输出。
如果我连接F(1)的OUT0到ASM过渡输入和F(1)上的“中断”引脚,然后过渡触发时OUT0高,我假设因为控制返回和环路中断与接收过渡信号的ASM并发,但这似乎是一种竞赛风险,并不是一个特别有用的配置,无论如何,因为这种连接会在所有状态和所有四种可能的F(1)配置中持续存在。我假设这是正确的行为,尽管,一旦F(1)进入一个无限循环在一个特定的状态,唯一的方式打破是通过外部输入到ASM或使用中断引脚强制返回控制到ASM?
7个月前
嗨,马修,
谢谢你的帮助。f(1) Computation Macrocell将开始执行指令的唯一时间是当ASM Macrocell第一次进入一个新的状态。(您还可以在数据表的F(1)宏单元格部分找到一些更有用的信息)
因此,当输入电压小于ACMP的参考电压时,ACMP降低,F(1)块停止,ASM保持在状态0。因此,你看不到过渡。能否在命令序列中,除了OUT0之外,尝试使用Loop with Delay命令?所以每次迭代通过循环时,阈值就会被监控,并且会有一个过渡。
如果有帮助请告诉我
亲切的问候,
Shivani