Создать массив выходных пинов - PullRequest
0 голосов
/ 30 октября 2019

Я новичок в Verilog и только что получил TinyFGPA Bx. Я запустил некоторый пример кода и поэтому получил светодиоды и кнопки, работающие на разных портах и ​​управляющие светодиодами с помощью кнопок. В настоящее время я хочу подключить 8 светодиодов к моей хлебопечке и подключиться через контакты с 1 по 8. Можно ли создать массив типа {PIN_1, PIN_2 и т. Д.}}, А затем в цикле for назначить контакты для включения и выключения? на основе какого-то результата от блока всегда? Я вставил свой код ниже, над которым я работаю. Это набор примеров кода, плюс я пытаюсь понять, смогу ли я запустить массив.

module Button_Toggle_LED
  (input  CLK,
   input  PIN_11,
   output PIN_1, PIN_2, PIN_3, PIN_4, PIN_5, PIN_6, PIN_7, PIN_8
   );

  reg  r_LED_1    = 1'b0;
  reg  r_Switch_1 = 1'b0;
  wire  [7:0] pinArray [7:0] = {PIN_1, PIN_2, PIN_3, PIN_4, PIN_5, PIN_6, PIN_7, PIN_8};
  wire w_Switch_1;
  genvar i;

  // Instantiate Debounce Module
  Debounce_Switch Debounce_Inst
  (.i_Clk(CLK),
   .i_Switch(PIN_11),
   .o_Switch(w_Switch_1));

  // Purpose: Toggle LED output when w_Switch_1 is released.
  always @(posedge CLK)
  begin
    r_Switch_1 <= w_Switch_1;         // Creates a Register

    // This conditional expression looks for a falling edge on w_Switch_1.
    // Here, the current value (i_Switch_1) is low, but the previous value
    // (r_Switch_1) is high.  This means that we found a falling edge.
    if (w_Switch_1 == 1'b0 && r_Switch_1 == 1'b1)
    begin
      r_LED_1 <= ~r_LED_1;         // Toggle LED output
    end
  end

  for(i = 0; i <= 8; i = i + 1) begin
    assign pinArray[i] = r_LED_1;
end
endmodule

Моя текущая ошибка ниже

Button_Toggle_LED.v:9: ERROR: Invalid array access.
scons: *** [hardware.blif] Error 1

Я имел дело сошибки по одной и подозреваю, что это внесло другие ошибки в код, поскольку я не уверен, что я делаю. Заранее благодарим за любую помощь!

Дэвид

...