跳过主要内容

基于F(1)宏单元的SLG46880V仿真问题

GreenPAK和GreenFET

7个月前

发布的马修·H。0点 6个回答
0的问题

我在SLG46880V设备上使用F(1)计算宏单元。看起来,当使用来自专用模拟比较器引脚的输入单元进行计算时,F(1)块的输出被路由到FSM过渡输入,状态在模拟中没有正确过渡。

当从一般连接矩阵路由输入时,它似乎可以正常工作。请查看图片和示例文件的链接:

https://imgur.com/a/liAV0ZG

https://imgur.com/a/PkO0luS

https://www.dropbox.com/s/l8loe30ldw3pf7g/F%281%29%20error%20example.gp6?dl=0

7个月前

ssaravan

嗨,马修,

谢谢你的帮助。f(1) Computation Macrocell将开始执行指令的唯一时间是当ASM Macrocell第一次进入一个新的状态。(您还可以在数据表的F(1)宏单元格部分找到一些更有用的信息)

因此,当输入电压小于ACMP的参考电压时,ACMP降低,F(1)块停止,ASM保持在状态0。因此,你看不到过渡。能否在命令序列中,除了OUT0之外,尝试使用Loop with Delay命令?所以每次迭代通过循环时,阈值就会被监控,并且会有一个过渡。

如果有帮助请告诉我

亲切的问候,

Shivani

7个月前

马修·H。 0点

好的,希瓦尼,我明白你的意思了。我将尝试添加循环,看看它是否改变了什么,谢谢。

7个月前

马修·H。 0点

嗨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个月前

ssaravan

嗨,马修,

请在附件中找到F(1)宏单元格的工作示例。命令序列与您的略有不同

亲切的问候

Shivani

附件 大小
ACMPs F (1) . zip 8.47 KB

7个月前

马修·H。 0点

谢谢你的例子,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?

6个月前

ssaravan

嗨,马修,

我明白你的意思了。您是否可以尝试使用一个延迟块将OUT0连接到ASM?也许像一次射击延迟或者更好的DFF,这样你就不会进入竞争条件

亲切的问候

Shivani