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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9551|回复: 5

modelsim不全认可verilog语法的事吗

[复制链接]
发表于 2006-10-20 14:51:41 | 显示全部楼层 |阅读模式

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

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

x
这是一个booth乘法器!
程序如下:

`timescale 1ns/1ns
module ceshi1(a,b,c);
input  [3:0] a;
input  [3:0] b;
output [7:0] c;

reg    [8:0] q;
reg    [7:0] c;

integer i;

always @ (a,b)       
begin
q={4'b0000,b,1'b0};
for(i=4;i>=0;i=i-1)
if(i==0)  c=q[8:1];
else
begin
   case(q[1:0])
        2'b01:   q[8:5]<=q[8:5]+a[3:0];
        2'b10:   q[8:5]<=q[8:5]-a[3:0];
        default: q<=q;                 

   endcase
  #2q<={q[8],q[8:1]};
  #2 $display("q=%b,i=%d,c=%b",q,i,c); //************若不要此句,结果错误!
end

end
endmodule

这个$display在里面只起到显示结果的作用吧,可有可无,但是为什么么没有就不行呢!!
而且在我用红色标出的begin —end里面。语句应该是顺序执行的,但是没有延迟就不是顺序执行!!
我是在modelsi中运行的!!

敬请高手赐教!!!
 楼主| 发表于 2006-10-20 14:54:16 | 显示全部楼层
调试这个程序化了我整整一天的时间,现在虽然好了,但是不能在ise中综合!

而且对于其中的疑惑人未能揭开,摆脱各位!!!
发表于 2006-10-20 15:36:16 | 显示全部楼层

新手吧

估计老兄是新手吧。建议看看什么是可综合设计、什么是时序逻辑、组合逻辑。booth算法理解起来还是有点难度的,老兄还是先把简单的东西搞清楚了后再来搞这个booth乘法器。
发表于 2006-10-21 11:43:52 | 显示全部楼层
好像q被赋值了两次,但在逻辑综合时,只有最后的赋值才执行,因此case语句不起作用。逻辑模拟不一样。
 楼主| 发表于 2006-10-22 16:29:12 | 显示全部楼层
小弟的确是新手!
看了些关于科综合的条件以及阻塞于非阻塞的区别,把程序中所有的《=改为=后,问题顺利解决!多谢各位!

不过理解还不是很透!
只能继续努力,希望得到各位的指教!
发表于 2006-10-25 10:23:21 | 显示全部楼层
modelsim只有查不出来的语法错误,还有不认识的正确语法么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 21:27 , Processed in 0.023263 second(s), 9 queries , Gzip On, Redis On.

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