【发布时间】:2015-11-27 01:10:47
【问题描述】:
我是 VHDL 的初学者,开始为我所在的课程编写代码。我正在研究数字报警自行车锁,我正在尝试找到一种调用此代码的有效方法,但我目前正在获得语法错误。
PROCESS (Clk, H)
BEGIN
CASE current_state IS
WHEN s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s63=>
IF H = "0" THEN
current_state <= s0;
END If;
WHEN s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30,s31,s32,s33,s34,s35,s36,s37,s38,s39,s40,s41,s42,s43,s44,s45,s46,s47,s48,s49,s50,s51,s52,s53,s54,s55,s56,s57,s58,s59,s60,s61,s62=>
IF H = "0" THEN
current_state <= s52;
Elsif (rising_edge(Clk) THEN
current_state <= next_state;
END IF;
END CASE
END PROCESS;
基本上,这些都是状态类型,我想基本上调用所有这些状态,并检查它们的H值,然后会调用某些条件。但是,我收到此错误:
ERROR:HDLParsers:164 - "(Directory///)" Line 50. parse error, unexpected COMMA, expecting PIPE or ROW
我不能使用逗号,但是任何有经验的 VHDL 代码都知道如何解决这个问题,因此我们不必为每个 s-state 显式重复代码吗?
【问题讨论】:
标签: function if-statement case vhdl