微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog中generate的用法(genvar)

verilog中generate的用法(genvar)

时间:10-02 整理:3721RD 点击:
有没有见过这种用法的
wire [1:0] a, b, c;
  
   parameter PW = 2;
  
  //assign c[1:1] = a ^ b;
  
  generate
genvar i;
      for(i=0; i <= 1;i = i+1)begin : geniiii
         assign c[ i : i ]
     = (  (a ^ ( (b /*+ i[PW-1:0]*/) & {PW{1'b1}} ) ) == {1'b1, {PW-1{1'b0}}}   );
     end
  endgenerate

赋值语句中i[PW-1:0],i作为genvar定义变量,还能这样用?ise无法综合。

将 genvar i 放到 generate 前面

不管是放到前面还是里面,ise都不能通过,像上面代码一样屏蔽i[PW-1:0]可以通过ise

丁。。

这个看过,应该可以综合,你查查资料吧

这个电路使用SYnplify综合没有问题,XST对综合的语法检查太严格了,建议给generate起一个名字试一试,genvar放在前面

综合的代码还是只用简单的rtl级风格吧,你用这些语言你能知道综合出来的东西是啥啊...性能如何保证..

这个主要用在TESTBENTCH中的

看看。

把 i[PW-1:0] 换成  bi[PW-1:0],试试

话说 可以被综合了

generate就是展开,是一个缩减代码的方法。

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

网站地图

Top