ISE13.2调用$random报错
时间:10-02
整理:3721RD
点击:
我是初学者!使用的是ISE13.2学习VERILOG,今天在写代码时调用了$random,但是synthesize时报错,如下:
ERROR:Xst:850 - "random_puls.v" line 31: Unsupported System Function Call.
代码如下:
`timescale 1ns / 1ps
module random_puls(
output [9:0] dout
);
reg [9:0] rdout;
integer delay1,delay2,k;
initial
begin
#10 rdout = 0;
for(k=0;k<100;k=k+1)
begin
delay1 = 20*({$random}%6);
delay2 = 20*(1 + {$random}%3);
#delay1 rdout = 1<<({$random}%10);
#delay2 rdout = 0;
end
end
assign dout = rdout;
endmodule
请大家帮我看看怎么回事!
下面是LICENSE的状况,帮我看看是不是破解没成功!
我用$display($time)试过,没有报错!难道就是random不行?
在ModelSim下试了,没问题!看样子是ISE的问题,可能需要配置吧!
呵呵,你明显对可综合语句不理解,系统函数都是不可综合的。$random和$display运用的效果不一样,得到的结果当然不同了:前者是产生数据用的,综合找不到这样的东西,就得不到数据,肯定会出错;后者只是一个显示功能,综合工具自动把它忽略掉了。总之就是一个是产生激励,一个是观察结果,综合器处理的方式不同,才会得到你看到的情况。而modelsim下不存在综合的这个操作,只是一般编译的话,这两个函数都是没有问题的。
$random不可综合的,兄弟,你的软件哪里下的吖?能不能发个给我啊?