在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2329|回复: 4

[求助] 【求助】 一个时钟上升沿报错,以前从来没遇到过

[复制链接]
发表于 2010-8-10 00:17:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
filter: process(clk, rst)
    begin
        if rst = '0'  then
            st <= s0;
            fil_outQ(17 downto 0)<= (others =>'0');
        elsif RISING_EDGE(clk) then
            if fil_ready = '1' then
                fil_cnt <= 0;
                product_Q <= (others =>'0');
                sum_Q <=  (others =>'0');
                fil_ramQ_rdaddr <= fil_ramQ_wraddr ;
                signaltap_rom_addr <=  (others =>'0');
                st <= s1;
                else null;
            end if;
        end if;
        case st is
          when s0 =>
              signaltap_rom_addr <=  (others =>'0');
              fil_cnt <= 0;
              product_Q <= (others =>'0');
              sum_Q <=  (others =>'0');
              filter_out_ready <= '0';
          when s1 =>
              data_Q <= fil_ramQ_rddata;
              data_stap <= signaltap_rom_data;      
              product_Q <= data_stap*data_Q;
              sum_Q <= sum_Q +(product_Q(29)&product_Q);
              fil_ramQ_rdaddr <= fil_ramQ_rdaddr - 1;
              signaltap_rom_addr <= signaltap_rom_addr+1;
              if fil_cnt = 253 then
                  fil_outQ(17 downto 0) <= sum_Q(29 downto 12)+("0000000000000000"&sum_Q(11));
                  fil_cnt<= fil_cnt + 1;
              elsif fil_cnt = 254 then
                  filter_out_ready <= '1';
                  fil_cnt <= fil_cnt + 1;
              elsif fil_cnt = 255 then
                  st <= s0;
                  filter_out_ready <= '0';
              else
                  fil_cnt <= fil_cnt + 1;
                  filter_out_ready <= '0';
              end if;
          when others =>     st <= s0 ;
          end case;
      --else null;
      --end if;
  end process;

代码段在这里
但是就是有个 Error   couldn't implement registers for assignments on this clock edge      在第六行 elsif RISING_EDGE(clk) then这里 我看到可能是elsif 后没有else了但是我改了还是出现这个问题···请高手指点一下···
发表于 2010-8-10 09:06:12 | 显示全部楼层
case写在时钟外面?你这是什么写法?我估计是这个的问题,你把case那一段都注释掉肯定对
发表于 2010-8-10 09:50:36 | 显示全部楼层
ls看问题很犀利呀
发表于 2010-8-10 11:44:08 | 显示全部楼层
ls看问题也很犀利呀
发表于 2010-8-10 12:43:39 | 显示全部楼层
可以看看把case放到时钟条件下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

如何优化 SoC 设计

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-19 14:28 , Processed in 0.025175 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表