用VHDL(如果elsif elsif其他句)满足问题

M

Matrix_YL

Guest
您好所有

我见到我的设计与一个奇怪的事
, 当我想执行使用(如果elsif elsif其他状态机)

代码:

当等待=“

如果RNW = '1',那么

state_next“=接收;

elsif完成= '1',那么

state_next“=完成;

elsif失败“= '1',那么

state_next“=失败;

其他的

state_next“=等待;

如果结束;
 
“waitig,”结束“,”失败“,”接受“是有限状态机的状态,但你为什么使用程序中的infering其中一些条件,很可能是一些问题在这里。我看到,在机图,条件“完成”只是一个信号或infering条件
, 而不是全局变量,它是不一样的matter.it是我的想法,可能也是不对的,但希望它会你的想法加以纠正。

 
如果在else语句,但有时也会对编译器的问题时
, 两个或两个以上条件
, 桁架,您可能要三思

 
当等待=“
如果RNW = '1',那么
state_next“=接收;
elsif完成= '1',那么
state_next“=完成;' then

elsif 失败“= '1',
那么
state_next“=失败;
其他的
state_next“=等待;
如果结束;

我想这应该是失败= '1'只
也许这所造成的问题

 
代码:

当等待=“

如果RNW = '1',那么

state_next“=接收;

elsif完成= '1',那么

state_next“=完成;

- elsif失败“= '1',那么

- state_next“=失败;

其他的

state_next“=等待;

如果结束;
 
首先
, 您需要使用正确的条件。
to '1', which is always true.

请注意
, 您如果不 小于或等于
'1',这总是正确的测试。您的状态机将永远在等待状态超过一个周期。

 
tkbits说:

首先,您需要使用正确的条件。to '1', which is always true.
请注意,您如果不 小于或等于
'1',这总是正确的测试。
您的状态机将永远在等待状态超过一个周期。
 
到Matrix_XL:
时会发生什么所有thre条件为真?

 
Matrix_YL说:代码:

当等待=“

如果RNW = '1',那么

state_next“=接收;

elsif完成= '1',那么

state_next“=完成;

- elsif失败“= '1',那么

- state_next“=失败;

其他的

state_next“=等待;

如果结束;
 
大家好

我知道与我的密克罗尼西亚错误的
, 但我不知道如何解决它。任何人都可以给我正确的代码来解决我的问题。

thx提前

 
maksya说:

“= -是不是”小于或等于“经营者。
这是一个在VHDL信号赋值运算符。

 
大家好

谢谢大家的耐心!我没有注意到存在
代码:

失败“= '1'

 
ü dont使用
, 如果.. elsif .....

多数民众赞成更好的用例
因为

如果.. elsif ..导致prirority ....第一种情况下被认为是第一...使用case语句..则没有pripority来...关心
香卡

 
seeeee矩阵...我是第一个告诉回合小错误.... ü
为帮助我按钮ü点感谢推...

小心,
塞勒马:Ḏ

 

Welcome to EDABoard.com

Sponsor

Back
Top