vhdl语言中, if then 语句问题.

if (td='0') then at_next<=a1;
else t<='0';at_next<=a2;
end if;
这句话的意思是想当td=1时,转到a2状态,同时让t<=0.由于在前面设置当t<=0时,td自动变为0. 所以,执行时发现程序无法转到a2状态.我试了一下,好像是当td='1'时,t<='0'.系统判断td变为0.不往a2状态转,反过来又去执行if (td='0') then at_next<=a1;这样就一直死循环在a1状态. 哪位能帮我改改程序,让它按我的本意转换?

其实我也不明白
不过貌似是这样
if (td='0') then
t <= '1';
at_next<=a1;
else
t<='0';
at_next<=a2;
end if;
就可以了吧
温馨提示:内容为网友见解,仅供参考
无其他回答

vhdl语言中, if then 语句问题.
if (td='0') then t <= '1';at_next<=a1;else t<='0';at_next<=a2;end if;就可以了吧

VHDL的IF语句是 IF THEN ELSIF 向上与怎么解释啊?
IF 条件1 then 满足条件1执行的代码;elsif 条件2 then 满足条件2执行的代码;(此处如果还有条件继续选择elsif,否则)else 剩余情况下执行的代码;end if;IF语句的执行是有优先性选择的,程序一进来会先判断条件1是否满足,然后是条件2,一直继续下去。看看如果还有不明白的给我发邮件吧liuyle04@gmail...

VHDL语言中的if-then语句可以用嵌套吗?
当然可以

vhdl语言关于if语句的问题。
begin if(rst='1')then counter<="0000";else if(a'event and a='1')then if(counter="1111")then counter<="0000";else counter<=counter+'1';end if;else if(b'event and b='1')then if(counter="0000")then counter<="1111";else counter<=counter-'1';end if;end if;end ...

一段VHDL程序 注释 请教
1' and js='1'and pause='1')then --如果stop为1(clk有上升 if(b='0')then --沿),start为1,且js为1,pause为1时,num:=num+1; --如果b为0,则num自加1,end if; --结束。

VHDL中 怎么在确认一个条件语句之后执行多个顺序语句。
VHDL里if后的语句都是并行执行的,没有先后之分,如 A<='1';B<='0';if(C)then A<=A AND B;B<=A OR B;end if;结果A 是'0',B是'1'。非要追求顺序的话只能是B<=(A AND B) OR B;VHDL只是描述语言,不是逻辑语言

vhdl语言中if语句里条件句到底要不要加括号?
没有歧义的的话可以不加:if dht_en='1' and dht_color="00" then 加括号是为了不产生歧义(下面如果把括号去掉,意思完全变了):if (state=s1 or state=s2) and datain_en='1' then

vhdlif语句不判断直接执行else后的语句
vhdlif语句不判断直接执行else后的语句 BEGINPROCESS(din(6),clk)BEGINIFdin(6)='1'THENFLAG<='0';ELSEIF(clk'EVENTANDclk='1'ANDFLAG='0')THENIFs2='0'THENSnum1<=(Snum1(16DOWNTO0))&'0'+("00000000000000"&din(3DOWNTO0)... BEGIN PROCESS(din(6),clk) BEGIN IF din(6)='1' THEN...

VHDL 中多个if else的问题!!!
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则用在下一层,自己好好想想 ...

VHDL的if语句的初级问题!
IF语句是顺序语句,顺序语句应该放在进程Process中啊,可你连process都没有,肯定会报错啦。

相似回答