微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > ISE13.2调用$random报错

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不可综合的,兄弟,你的软件哪里下的吖?能不能发个给我啊?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top