【发布时间】:2014-03-09 20:33:04
【问题描述】:
我目前正在编写我的第一个 FSM,但不确定我的逻辑是否正确。我的任务是为以下逻辑创建状态图:
A = 00
B = 01
C = 10
D = 11
输出为 1 时:
BDA
BAA
BAD
因此我创建了以下 vhdl 代码来完成此操作:
因此,每次我将其输出 1 时,我都会将其发送回 B 并计数 + 1。这应该在 LED 上显示为在 18 位序列中找到的次数。
我是否以正确的方式处理这个问题?我对如何通过 18 位序列移动它感到困惑。我应该将板上的开关作为我的 18 位,表示为 SW。我可以用SW(17 downto 0) 替换data_in 吗?
【问题讨论】:
-
State diagram 对某些人来说似乎有不同的含义,或者您只是没有向我们展示您的含义?没有字符文字“00”、“11”或“10”。请注意,数据是单个元素 std_logic。根据您的上下文子句和附加使用子句,没有可用的“+”运算符。您要求对非功能源代码中没有证据的执行环境(例如测试台)进行批评。您的 VHDL 设计描述没有传达足够的信息来满足您的要求。
-
@David Koontz 好的,有没有办法将 18 位转换为 9 - 2 位条目,我可以对其进行测试以使其正确?也许使用移位寄存器?另外,我该怎么做才能让它成为一个计数?
标签: logic vhdl fsm digital-logic