打印
[Actel FPGA]

综合时出错

[复制链接]
1781|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3B1105|  楼主 | 2010-5-24 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module key_count(
                    clk,
                    reset,
                    key,
                    a,b,c,d                    
                );


input  clk;
input       reset;
input       key;
output      a,b,c,d;

reg          a,b,c,d;
reg  [3:0]  key_num;

always @( posedge clk or negedge key or negedge reset )
begin
       if(!key)
       begin
            key_num <= key_num + 4'b0001;
       end

       if(!reset)
       begin
            key_num <= 4'b0000;
            {a,b,c,d} <= 4'b0000;
        end

       case(key_num)
            4'b0000 :   {a,b,c,d}   <= 4'b0000;
            4'b0001 :   {a,b,c,d}   <= 4'b0001;
            4'b0010 :   {a,b,c,d}   <= 4'b0010;
            4'b0011 :   {a,b,c,d}   <= 4'b0011;
            4'b0100 :   {a,b,c,d}   <= 4'b0100;
            default :   {a,b,c,d}   <= 4'b0000;
        endcase

end

endmodule



在综合的时候出现这样的提示:The logic for d does not match a standard flip-flop

请问这是什么原因啊?

相关帖子

沙发
yelinggtx| | 2010-5-28 17:41 | 只看该作者
逻辑有问题,case语句放到另一个Always块里~

使用特权

评论回复
板凳
金鱼木鱼| | 2010-5-30 13:10 | 只看该作者
报错信息提示d触发器不是一个标准的触发器,这是因为在你的程序设计中使用了两个信号(reset和key_num)同时驱动一个D触发器。

改进:在case语句上加上else语句。不过你这种程序设计思路还需要大大改进,多学习一下FPGA编程吧~

使用特权

评论回复
地板
六楼的窗户| | 2010-5-30 13:17 | 只看该作者
楼上正解

使用特权

评论回复
5
3B1105|  楼主 | 2010-5-30 13:22 | 只看该作者
本帖最后由 3B1105 于 2010-5-30 13:26 编辑

谢谢大家的回复,正在努力学习周工的030

使用特权

评论回复
6
英明_郑| | 2010-5-30 13:23 | 只看该作者
怎么混积分呀,要50分才能开博

使用特权

评论回复
7
米其林r| | 2010-5-30 13:39 | 只看该作者
我也是在用030,以后可以交流下啊

使用特权

评论回复
8
3B1105|  楼主 | 2010-5-30 13:51 | 只看该作者
恩 好的  我刚开始学 可能有很多不懂得地方,多多指教,我的QQ810610186

使用特权

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

本版积分规则

315

主题

1645

帖子

4

粉丝