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

verilog generate用法求助

时间:10-02 整理:3721RD 点击:
写了一个小程序 想测试一下Verilog   generate的用法 程序如下:
`timescale 1ns/1ps
module test_gen(corStart,corEnable,q1,q2,cor1to0);
input [63:0] q1,q2;
input [15:0] corEnable;
input corStart;
output [63:0] cor1to0;
generate
genvar i;
genvar j;
j=0;
for(i=0;i<=63;i=i+1)

begin:cor1to0_gen
assign cor1to0[i] = (corEnable[j/4]&corStart)?q2[i]&q1[i]:1'b0;
j=j+1;
end
endgenerate
endmodule

quartus编译总是在j=0;和j=j+1;这两句上报错,想问一下各位大神  generate块里面能不能这样写,其中i,j都不应该存在于最后的逻辑中;
如果能的话,该怎样改呢。
错误报告:
Error (10170): Verilog HDL syntax error at test_gen.v(14) near text "=";  expecting ".", or an identifier, or "(", or "["
Error (10170): Verilog HDL syntax error at test_gen.v(18) near text "=";  expecting ".", or an identifier, or "(", or "["

for循环嵌套能否解决?将j也放在for循环当中。

j的上限是多少?

for循环应该是需要写很多次的东西,通过循环,并行执行,简化Code。这里面j=j+1明显不行,肯定不符合你的设计意图。

其实这个例子里的j和i的作用一样,所以有点多余  把j去掉,原来j地方改成i就行了  但还是想知道通过genvar声明的变量,难道只能用在for(;;)里面吗  既然改变了不会被综合 为什么不能用在像j=j+1;这样的语句里呢

把J循环放进去

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

网站地图

Top