在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3775|回复: 8

[求助] 组合逻辑循环??新手求助

[复制链接]
发表于 2012-11-15 19:21:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
always @(*)
begin
   case(state)
   ...
   calcu:
     begin
       address1=tk0;
       address2=tk1;
       add1=data;
       add2=tk3;
       sum=temp;
     end
   ...
    endcase..
end
assign addr = address1 ^ address2;
rom rom(.addr(addr),.data(data));
assign temp=add1+add2;
addr是rom模块的输入地址,data是查表之后的输出。rom模块里也是组合逻辑,就给一个地址,一个输出。状态机输出地址之后经过异或送入查找表,然
后输出值反馈到状态机,作为加法器的一个输入。
这两段代码为什么仿真结果会不一样?下面的这段代码把加法器放在状态机里的仿真结果是正确的,上面的这段代码把加法器放在外面怎么就不对了,最
后的sum为什么不等于temp,这是为什么?是不是因为组合逻辑循环的问题?
个人感觉两段代码都是有组合逻辑循环的,不过上面的这段代码应该有两段组合逻辑的循环。
这是一段示意的代码。实际代码类似
always @(*)
begin
   case(state)
   ...
   calcu:
     begin
       address1=tk0;
       address2=tk1;
       sum=data+tk3;
     end
   ...
    endcase..
end
assign addr = address1 ^ address2;
rom rom(.addr(addr),.data(data));
发表于 2012-11-16 09:01:48 | 显示全部楼层
会不会是always模块里面综合出来了reg,导致sum和temp的值差了一拍
发表于 2012-11-16 09:25:06 | 显示全部楼层
从你给的这些代码看,第一个代码的加法是随便更新结果的,第二个代码的加法只有在state变化的时候才会更新结果。
 楼主| 发表于 2012-11-16 12:24:57 | 显示全部楼层
回复 3# falloutmx


   
        首先,谢谢你的回复!
但是为什么在上面的代码里,add1是等于查表之后的结果data,data是由状态机的输出变量作为地址查表之后的结果,这也应该是一个组合逻辑循环吧?这里是不是也有可能出问题
发表于 2012-11-16 15:15:37 | 显示全部楼层
是否因为查找rom时,data需要在下一个时钟才能输出。而此时已经不在本状态了呢?你这个状态机非常乱,建议写成时序逻辑的。
发表于 2012-11-16 15:44:41 | 显示全部楼层
上面一段代码是明显的组合回环。
至于为何放到状态机内部就是正确的你想要的结果这个问题。应该是你所列出的代码不是全部,State这个信号应该是打拍得到的,这样就可以解释了。
 楼主| 发表于 2012-11-16 18:12:05 | 显示全部楼层
回复 6# fpga008


    组合循环在设计当中允许吗?
发表于 2012-11-16 20:28:22 | 显示全部楼层
回复 7# 109010118


    实际设计中坚决不允许循环逻辑,状态机都是尽量少用
 楼主| 发表于 2012-11-18 19:45:46 | 显示全部楼层
回复 6# fpga008


    下面的那段代码是组合循环吗?因为两段代码查表之后的结果都是返回状态机的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-12 04:11 , Processed in 0.031236 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表