本帖最后由 fpgaw 于 2010-11-19 06:44 编辑
状态机的输出进程中有这样的语句:
process(state,……)
variable path:path_type;
variable data1,data2,data,k,l:data_type;
begin
case(state)
when st1 =>
data1:=k;
when st2 =>
data:=data1+l;
when st3 =>
……
end case
end process;
如果是这样行为级仿真和后仿真都没有问题,但是如果一旦在一个分支中加入对data1的另外一个赋值,如
process(state,……)
variable path:path_type;
variable data1,data2,data,k,l,m:data_type;
begin
case(state)
when st1 =>
data1:=k;
when st2 =>
data:=data1+l;
when st3 =>
……
when st4 =>
data1:=m;
when st5 =>
data:=data1+l;
end case
end process;
仿真时候行为级同样没有问题,但后仿真时
则不论是到st2状态,还是到st5状态,data1的赋值是不能被正确的赋入
求教大虾这是个什么问题?综合其synplify pro 8.1 |