VHDL问题 同一进程中不同时钟信号问题
我已经把其中一个信号下降沿判断改成对两个相邻状态的判断怎么还是报错u3:process(clk,b,cnt1,cnt2,current_state,b_next)begi...
我已经把其中一个信号下降沿判断改成对两个相邻状态的判断怎么还是报错
u3:process(clk,b,cnt1,cnt2,current_state,b_next)
begin
case current_state is
when s01=>if b='0' then --检测码头
cnt1<=0;
elsif clk'event and clk='1' then------------提示说这行有问题
cnt1<=cnt1+1;b_next<=b;
end if;
if b='0' and b_next='1' then
cnt2<=cnt1;
end if;
if cnt2>7000 then
next_state<=s02;
else next_state<=s01;
end if;
Error (10822): HDL error at tiqu.vhd(66): couldn't implement registers for assignments on this clock edge 展开
u3:process(clk,b,cnt1,cnt2,current_state,b_next)
begin
case current_state is
when s01=>if b='0' then --检测码头
cnt1<=0;
elsif clk'event and clk='1' then------------提示说这行有问题
cnt1<=cnt1+1;b_next<=b;
end if;
if b='0' and b_next='1' then
cnt2<=cnt1;
end if;
if cnt2>7000 then
next_state<=s02;
else next_state<=s01;
end if;
Error (10822): HDL error at tiqu.vhd(66): couldn't implement registers for assignments on this clock edge 展开
展开全部
你是要写一个状态机么?
建议你先看看状态机的书写规范
状态机有一段式、两段式和三段式书写方式
一般建议用两段式或者三段式
这里不能粘附件,我给你一个一段式的模板吧
你仅仅参考一下,如果想学vhdl还是好好看看资料吧
process (clk_i, rst_i)
begin -- process
if rst_i = '1' then -- asynchronous reset (active low)
cs <= IDLE
elsif clk_i'event and clk_i = '1' then -- rising clock edge
case cs is
when IDLE =>
cs <= S1;
when S1 =>
if xx = yy then
cs <= s2;
else
cs <= IDLE;
end if;
when others => null;
end case;
end if;
end process;
建议你先看看状态机的书写规范
状态机有一段式、两段式和三段式书写方式
一般建议用两段式或者三段式
这里不能粘附件,我给你一个一段式的模板吧
你仅仅参考一下,如果想学vhdl还是好好看看资料吧
process (clk_i, rst_i)
begin -- process
if rst_i = '1' then -- asynchronous reset (active low)
cs <= IDLE
elsif clk_i'event and clk_i = '1' then -- rising clock edge
case cs is
when IDLE =>
cs <= S1;
when S1 =>
if xx = yy then
cs <= s2;
else
cs <= IDLE;
end if;
when others => null;
end case;
end if;
end process;
追问
是的,确实是用到状态机,这段程序主机想 b信号的高电平时间的宽度,用cnt1,cnt2来计数,算出来,如果宽度是否>7000,如果大于是跳到状态S02,否则还仍为状态S01,问题还没有解决,不过谢谢了
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
两个时钟上升沿有先后顺序的话 两个IF语句应该嵌套的
追问
那频率比较低的那是应该是外面的一个还是频率低的在外面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个时钟上升沿有先后顺序的话 两个IF语句应该嵌套的
追问
不是说,同一进程里面不能有两个判断上升沿的语句么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询