生成要在Verilog中编译的多行

生成要在Verilog中编译的多行,verilog,Verilog,我正在做一个VGA学校的项目,我将在FPGA上合成。我正在与Xilinx合作,并使用Verilog作为HDL。该项目说,我必须生成固定数量的粒子,在屏幕上显示它们,并且通过使用键盘,我必须控制这些粒子的环境(如风、重力等) 我可以使用以下方法生成一个大小为1像素(大小不重要)的粒子: wire p1 =(posx>=part1x[13:4] && posx<=(part1x[13:4]+1) && posy>=part1y[12:4] &am

我正在做一个VGA学校的项目,我将在FPGA上合成。我正在与Xilinx合作,并使用Verilog作为HDL。该项目说,我必须生成固定数量的粒子,在屏幕上显示它们,并且通过使用键盘,我必须控制这些粒子的环境(如风、重力等)

我可以使用以下方法生成一个大小为1像素(大小不重要)的粒子:

  wire p1 =(posx>=part1x[13:4] && posx<=(part1x[13:4]+1) && posy>=part1y[12:4] && posy<=(part1y[12:4]+1));
wire p1=(posx>=part1x[13:4]&&posx=part1y[12:4]&&posy=part1x[13:4]&&posx=part1y[12:4]&&posy=part2x[13:4]&&posx=part2y[12:4]&&posx=part3y[12:4]&&posx=part3y[12:4]&&posy您可以使用一个“for”循环来生成它。下面是一个非常简单的示例:

wire input[100];
wire output[100];
// ...
genvar i; 
generate 
  for (i = 0; i < 100; i = i+1)  begin
    assign output[i] = ~input[i];
  end  
endgenerate  
导线输入[100];
导线输出[100];
// ...
genvar i;
生成
对于(i=0;i<100;i=i+1)开始
分配输出[i]=~输入[i];
结束
最终生成
为了将此应用到您的案例中,您可能需要从使用
part1x
part2x
等切换到使用一个大“数组”,并根据
i
计算偏移量

希望有帮助。祝你好运!

你可以使用“for”循环来生成它。下面是一个非常简单的示例:

wire input[100];
wire output[100];
// ...
genvar i; 
generate 
  for (i = 0; i < 100; i = i+1)  begin
    assign output[i] = ~input[i];
  end  
endgenerate  
导线输入[100];
导线输出[100];
// ...
genvar i;
生成
对于(i=0;i<100;i=i+1)开始
分配输出[i]=~输入[i];
结束
最终生成
为了将此应用到您的案例中,您可能需要从使用
part1x
part2x
等切换到使用一个大“数组”,并根据
i
计算偏移量


希望有帮助。祝你好运!

我明白了。非常感谢你的时间和帮助,拉扎连科先生。后续问题:既然我有100个粒子,我该如何编写
分配红色=(p1 | | p2 | | p3 | | | |边界)?3'b111:3'b000;
@AnandWu:我不确定我是否正确理解你的问题。你能再详细一点吗?或者甚至创建一个单独的问题吗?谢谢。我制作了一些数组并使用generate来帮助我解决这个问题,但现在我不知道如何编写p[0]| p[1]| p[2]| p[3]| | | | | p[100](不写全部内容,如上所述)。@AnandWu:你可以在公共汽车上简单地使用“或”操作符。如果你有
wire p[1000]
,例如,如果
p
中的任何一条线都是1,你可以通过
|p
得到1,如果所有的线都是0,你也可以得到0。我明白了。非常感谢你的时间和帮助,拉扎伦科先生。接下来的问题:既然我有100个粒子,我该如何编写
分配红色=(p1 | p2 | p3 | | | | |··················?3'b111:3'b000;
@AnandWu:我不确定我是否正确理解你的问题。你能再详细一点吗?或者甚至创建一个单独的问题吗?谢谢。我制作了一些数组并使用generate来帮助我解决这个问题,但现在我不知道如何编写p[0]| p[1]| p[2]| p[3]| | | | | p[100](不写全部内容,如上所述)。@AnandWu:你可以简单地在总线上使用“或”操作符。例如,如果你有
导线p[1000];
,如果
p
中的任何导线是1,你可以做
|p
得到1,如果所有导线都是0,则得到0。