3706|1

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

菜鸟求指导~VHDL交通灯程序的编译错误··· [复制链接]

其中一个process如下,可不可以这样计数呀,就是不同的状态要延续不同的时间
process(clk,reset,call)
        begin
                if(reset='1')then
                        cur_st<=s0;
                else
                        if(cur_st=s0)then
                                if(clk'event and clk='1')then
                                        if(call='0')then
                                                if(count0=4999)then
                                                        cur_st<=next_st;
                                                        count0<=0;
                                                else
                                                        count0<=count0+1;
                                                end if;
                                        end if;
                                end if;
                        elsif(cur_st=s1 or cur_st=s3)then
                                if(clk'event and clk='1')then
                                        if(call='0')then
                                                if(count1=24999)then
                                                        cur_st<=next_st;
                                                        count1<=0;
                                                else
                                                        count1<=count1+1;
                                                end if;
                                        end if;
                                end if;
                        elsif(cur_st=s2 or cur_st=s4)then
                                if(clk'event and clk='1')then
                                        if(call='0')then
                                                if(count2=9999)then
                                                        cur_st<=next_st;
                                                        count2<=0;
                                                else
                                                        count2<=count2+1;
                                                end if;
                                        end if;
                                end if;
                        end if;
                end if;
        end process;

出现如下编译错误,求救啊!!!该怎么改呢??
Error (10821): HDL error at jiaotongdeng.vhd(21): can't infer register for "cur_st.s4" because its behavior does not match any supported register model
Error (10821): HDL error at jiaotongdeng.vhd(21): can't infer register for "cur_st.s3" because its behavior does not match any supported register model
Error (10821): HDL error at jiaotongdeng.vhd(21): can't infer register for "cur_st.s2" because its behavior does not match any supported register model
Error (10821): HDL error at jiaotongdeng.vhd(21): can't infer register for "cur_st.s1" because its behavior does not match any supported register model
Error (10821): HDL error at jiaotongdeng.vhd(21): can't infer register for "cur_st.s0" because its behavior does not match any supported register model
Error (10822): HDL error at jiaotongdeng.vhd(33): couldn't implement registers for assignments on this clock edge
Error (10822): HDL error at jiaotongdeng.vhd(44): couldn't implement registers for assignments on this clock edge
Info (10018): Can't recognize finite state machine "cur_st" because it has a complex reset state
Error: Can't elaborate top-level user hierarchy
Error: Quartus II Analysis & Synthesis was unsuccessful. 8 errors, 6 warnings
        Error: Peak virtual memory: 214 megabytes
        Error: Processing ended: Wed Aug 24 15:50:17 2011
        Error: Elapsed time: 00:00:03
        Error: Total CPU time (on all processors): 00:00:03
Error: Quartus II Full Compilation was unsuccessful. 10 errors, 6 warnings
此帖出自FPGA/CPLD论坛

最新回复

if(cur_st=s0)thenif(clk'event and clk='1')thenif(call='0')thenif(count0=4999)then   楼主这种语法格式绝对不正确,不符合电路,VHDL标准的电路编写方式   begin if (rst='1') then   -------------- if(clk'event and clk='1')then --------------- end if;  详情 回复 发表于 2011-8-25 08:33
点赞 关注
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

if(cur_st=s0)then
if(clk'event and clk='1')then
if(call='0')then
if(count0=4999)then

 

楼主这种语法格式绝对不正确,不符合电路,VHDL标准的电路编写方式

 

begin

if (rst='1') then

  --------------

if(clk'event and clk='1')then

---------------

end if;

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表