VHDL 中多个if else的问题!!!!!!!!!!!!!
各位大侠,小弟我正在做一个VHDL的题目,是要5位counter计数器数数。大家帮我相信begin后面的ifelse怎么写就可以了。大致的要求是:当en=0程序停止,计数...
各位大侠,小弟我正在做一个VHDL的题目,是要5位counter计数器数数。大家帮我相信begin 后面的if else怎么写就可以了。
大致的要求是:
当en=0 程序停止,计数器还是停在上一个数字上面。
当en=1,如果按 master_reset 被按是1时,计数器显示‘00000’.
如果master_reset为0时, 如果p_load为0 则结果会跟input的p一样(p是7)。
如果p_load被按结果为1, 然后如果updown=1,计数器就会往上数(1,2,3,4...)
updown=0,计数器往下数(7,6,5,4....)
其中: en , m_reset,p_load,updown都是只有1和0的input。
我自己写的,但是是错的:
if(en='0') then
count_sig<=count_sig;
elsif(m_reset='1') then
count_sig<='00000';
elsif(m_reset='0')then
if(p_load='1') then
elsif (updown='1') then
count_sig<=count_sig+1;
elsif(updown='0') then
count_sig<=count_sig-1;
else
count_sig<=P;
end if;
end if;
这个是我重新在这打出来的,如果大家看到上面分号之内的错误就不要指出了,就说说ifelse吧,我自己都晕了,不知道在写上面了。。。 展开
大致的要求是:
当en=0 程序停止,计数器还是停在上一个数字上面。
当en=1,如果按 master_reset 被按是1时,计数器显示‘00000’.
如果master_reset为0时, 如果p_load为0 则结果会跟input的p一样(p是7)。
如果p_load被按结果为1, 然后如果updown=1,计数器就会往上数(1,2,3,4...)
updown=0,计数器往下数(7,6,5,4....)
其中: en , m_reset,p_load,updown都是只有1和0的input。
我自己写的,但是是错的:
if(en='0') then
count_sig<=count_sig;
elsif(m_reset='1') then
count_sig<='00000';
elsif(m_reset='0')then
if(p_load='1') then
elsif (updown='1') then
count_sig<=count_sig+1;
elsif(updown='0') then
count_sig<=count_sig-1;
else
count_sig<=P;
end if;
end if;
这个是我重新在这打出来的,如果大家看到上面分号之内的错误就不要指出了,就说说ifelse吧,我自己都晕了,不知道在写上面了。。。 展开
2个回答
展开全部
if(en='0') then
count_sig<=count_sig;
elsif(m_reset='1') then
count_sig<='00000';
elsif(m_reset='0')then 这个elseif多余,直接用else,或者和下面的if一起用elsif(p_load='1)then
if(p_load='1') then
elsif (updown='1') then
count_sig<=count_sig+1;
elsif(updown='0') then 错误同上,ifelse本身就是if(updown='0')的意思,没必要再判定条件
count_sig<=count_sig-1;
else
count_sig<=P;
end if;
end if;
如果你还想不清楚的话,就画一个二叉树,else用在同一层的判定中,而elseif则用在下一层,自己好好想想
count_sig<=count_sig;
elsif(m_reset='1') then
count_sig<='00000';
elsif(m_reset='0')then 这个elseif多余,直接用else,或者和下面的if一起用elsif(p_load='1)then
if(p_load='1') then
elsif (updown='1') then
count_sig<=count_sig+1;
elsif(updown='0') then 错误同上,ifelse本身就是if(updown='0')的意思,没必要再判定条件
count_sig<=count_sig-1;
else
count_sig<=P;
end if;
end if;
如果你还想不清楚的话,就画一个二叉树,else用在同一层的判定中,而elseif则用在下一层,自己好好想想
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实就是简单的逻辑嵌套,注意end if 的使用。
你问题的描述也很乱,说实话看不懂~。问题描述清楚了别人才好帮你解答啊
你问题的描述也很乱,说实话看不懂~。问题描述清楚了别人才好帮你解答啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询