如何在Verilog中输出常量值?

如何在Verilog中输出常量值?,verilog,Verilog,我试图输出一个1280位的数组,每个10位长,数字为0->128 我听说localparam可能是最好的选择,但这似乎是一个奇怪的请求,所以我想知道是否有经验的人可以帮助我 谢谢您可以在初始或重置语句中使用for循环: reg [0:1279] big_vector; integer i; // here you need an initial // or a reset section for (i=0; i<128; i=i+1) big_vector[ i*128

我试图输出一个1280位的数组,每个10位长,数字为0->128

我听说localparam可能是最好的选择,但这似乎是一个奇怪的请求,所以我想知道是否有经验的人可以帮助我


谢谢

您可以在初始或重置语句中使用for循环:

reg [0:1279] big_vector;
integer i;

// here you need an initial
// or a reset section
   for (i=0; i<128; i=i+1)
      big_vector[ i*128 +: 10] = i;
reg[0:1279]大_向量;
整数i;
//这里你需要一个首字母
//或重置部分

对于(i=0;i,您可以创建一个函数,为localparam或任何其他信号提供一个常量值

wire [1279:0] signal;

assign signal = pattern(0);

function [1279:0] pattern(input arg); // Verilog requires at least one argument to a function
integer i;
begin
     for (i=0;i<128;i=i+1)
       pattern[i*10 +:10] = i;
end
endfunction
wire[1279:0]信号;
分配信号=模式(0);
函数[1279:0]模式(输入参数);//Verilog要求函数至少有一个参数
整数i;
开始

对于(i=0;i输出一个数组是什么意思?你是说你有一个1280位的模块输出端口需要输出这个值,还是一个函数/任务?或者只是一个需要这个值的通用变量?我的意思是,我想要一个输出,其中位0->9等于0;10->19等于1…1270->1279等于128。这可能吗?谢谢,戴夫。我没有我以前没有真正使用过函数。它们看起来可能是无关的“函数”,但习惯verilog的所有方面是很好的
    wire [1279:0] signal;

    assign signal = pattern();

    function bit [1279:0] pattern(); 
      for (int i=0;i<128;i++)
           pattern[i*10 +:10] = i;
    endfunction