集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 11803|回复: 22

verilog这个程序的错误什么意思啊?

[复制链接]
encounter 发表于 2010-6-28 00:21:44 | 显示全部楼层 |阅读模式
verilog这个程序的错误什么意思啊?
module tryfunct(clk,n,result,reset);
input clk,reset;
input [3:0] n;
output [31:0] result;
reg [31:0] result;
always @(posedge clk)
begin
if(!reset)
result<=0;
else
result<=n*factorial(n)/((n*2)+1);
end
function [31:0] factorial;
input [3:0] operand;
reg [3:0] index;
begin
factorial=1;
for(index=2;index<=operand;index=index+1) //说这行有错
factorial=index*factorial;
end
endfunction
endmodule
Error: Verilog HDL For Statement error at tryfunct.v(18): must use only constant expressions in terminating conditions
Error: Can't elaborate top-level user hierarchy
VVC 发表于 2010-6-28 01:34:25 | 显示全部楼层
各位大哥帮下忙吧,我检查不出了
ICE 发表于 2010-6-28 03:03:57 | 显示全部楼层
我在自己的机子上编译了一下,通过了啊!<br>
不过看你的那上面的错误提示,好像是说for(index=2;index&lt;=operand;index=index+1)里的operand应该换成常量,不能用变量!<br>
我也是初学者,说的不对,大家别见笑!^_^
usd 发表于 2010-6-28 04:12:03 | 显示全部楼层
呵呵,我也是初级学者,我编译的提示错误是<br>
@E: CS162 :"F:\tryfunct.v":20:12:20:26|loop iteration limit 2000 exceeded - add '// synthesis loop_limit 4000' before the loop construct
interi 发表于 2010-6-28 05:40:19 | 显示全部楼层
呵呵 我用modelsim编译也过了
CTT 发表于 2010-6-28 06:23:08 | 显示全部楼层
好像没什么问题啊!
HDL 发表于 2010-6-28 07:09:47 | 显示全部楼层
用modelsim编译的话没有错误的提示,<br>
但是用Syplify综合的话会提示有错误的~<br>
<br>
[ 本帖最后由 jerryer 于 2006-7-18 09:28 编辑 ]
CHAN 发表于 2010-6-28 07:46:45 | 显示全部楼层
我是quartus ii编译的,郁闷中。
inter 发表于 2010-6-28 09:27:15 | 显示全部楼层
原帖由 jerryer 于 2006-7-18 09:26 发表<br>
用modelsim编译的话没有错误的提示,<br>
但是用Syplify综合的话会提示有错误的~ 废话,你写的本来就是不可综合的代码<br>
for循环不能综合
longtime 发表于 2010-6-28 11:00:35 | 显示全部楼层
for可以综合的,while才不行的!
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 03:50 , Processed in 0.065247 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表