打印

FSM中组合进程CASE语句问题

[复制链接]
1688|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thymon|  楼主 | 2009-12-17 20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FSM代码:
PROCESS(clk_153K)        --时序逻辑
BEGIN
    IF (clk_153K'EVENT AND clk_153K = '1')THEN
       IF(reset = '0')THEN
         CUR_STATE <= R_start;
       ELSE
         CUR_STATE <= NEXT_STATE;
      ...
END PROCESS;

PROCESS(CUR_STATE)    --组合逻辑
BEGIN
  CASE CUR_STATE IS
  WHEN  R_start =>
         NEXT_STATE <= R_centre;
         dalay_count <= "0000";
         rxd_data <= "0000"&dalay_count;
  WHEN  R_centre =>
        NEXT_STATE <= R_wait;
        dalay_count <= dalay_count + 1;   --问题所在,值不更新,望指点
        rxd_data <= "0000"&dalay_count;
  WHEN  R_wait =>
       dalay_count <= "0010";
       rxd_data <= "0000"&dalay_count;
       NEXT_STATE <= R_sample;
  WHEN  R_sample =>
       dalay_count <= "0011";
       rxd_data <= "0000"&dalay_count;
       NEXT_STATE <= R_stop;
  WHEN  R_stop =>
       dalay_count <= "0100";
       rxd_data <= "0000"&dalay_count;
       NEXT_STATE <= R_start;
  WHEN  OTHERS =>
       NEXT_STATE <= R_start;
  END CASE;
END PROCESS;

相关帖子

沙发
thymon|  楼主 | 2009-12-17 20:46 | 只看该作者
等了半天也不见人来揭帖子!难道是我的问题?那我简单化:我怀疑组合逻辑的CASE(亦可能是所有CASE语句)中,不能执行算术运算?还是怎么地!本来是一个比较大的逻辑程序,上面这个是我又写的测试程序!发现对信号dalay_count 是只能赋值,而不能进行加法运算!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝