0

LEDを点滅させたい周波数を選択するために2つのスイッチを使用しようとしています。私のVerilogコードは次のとおりです。

`timescale 1ns / 1ps

module clk_divider(
    input clk,
    input rst,
     input [1:0] sw,
    output led
    );

reg n;

always@(sw[0],sw[1])
    n = (27 - sw);

    wire [n-1:0] din;
    wire [n-1:0] clkdiv;

    dff dff_inst0 (
         .clk(clk),
         .rst(rst),
         .D(din[0]),
         .Q(clkdiv[0])
    );


    genvar i;
    generate
        for (i = 1; i < n; i=i+1) 
        begin : dff_gen_label
             dff dff_inst (
                  .clk(clkdiv[i-1]),
                  .rst(rst),
                  .D(din[i]),
                  .Q(clkdiv[i])
             );
             end
    endgenerate;

    assign din = ~clkdiv;

    assign led = clkdiv[n-1];

endmodule

構文を確認すると、「n は定数ではありません」と表示されます。このエラーを回避するにはどうすればよいですか? 私には、うまくいくはずです。どんな助けでも大歓迎です!!!

4

1 に答える 1