«Цель одновременного назначения или соединения с выходным портом должна быть типа net» - PullRequest
0 голосов
/ 07 февраля 2020

Я сталкиваюсь со следующими ошибками при попытке синтезировать мой код для запуска на моей плате Anvyl:

 ERROR:HDLCompiler:329 - "C:/Users/Chase/Desktop/Code 
 Templates/final_bcd_counter.v" Line 25: Target <digit_1> of concurrent assignment or output port connection should be a net type.

 ERROR:HDLCompiler:329 - "C:/Users/Chase/Desktop/Code 
 Templates/final_bcd_counter.v" Line 26: Target <digit_2> of concurrent assignment or output port connection should be a net type.

Мне был предоставлен файл Lab_board.v для управления платой, который выглядит следующим образом :

`timescale 1ns / 1ps

module lab_board(LED, SW, CLK);

output  [7:0] LED;
input  [7:0] SW;
input CLK;

bcd_count_7 counter( 
.max_count(SW[6:0]), 
.CLK(CLK), 
.run(SW[7]), 
.digit_l(LED[3:0]),
.digit_2(LED[7:4])
); 


endmodule

Код, который выдают ошибки, - это мой файл final_bcd_counter.v, который является основным драйвером программы, который передает все необходимые значения на плату. Это выглядит следующим образом:

// This is the top module for the programmable BCD counter.
// It implements a programmable 7-bit counter and a binary-
// to-bcd converter that can output two digits.


module bcd_count_7(max_count, CLK, run, digit_1, digit_2);

  input [6:0] max_count;
  input CLK, run;
  output reg [3:0] digit_1;
  output reg [3:0] digit_2;

  //Wires and registers for interconnect if needed
  wire [6:0] countin_out;

  // Programmable 7-bit counter module
  prog_count_7 counter(.max_count(max_count), 
            .run(run), 
            .CLK(CLK), 
            .count_out(countin_out));

  // Binary-to-BCD Converter for converting count_out to BCD
  binary_bcd_2 bcd_converter(.bin_in(countin_out),
                  .digit_1(digit_1), 
                  .digit_2(digit_2));

endmodule

Я пытался изменить тип digit_1 и digit_2 безрезультатно. Может ли решение создать провода, которые подключаются к лабораторной плате вместо передачи выходных регистров, если да, то как это будет выглядеть?

Любая помощь приветствуется. При необходимости я могу предоставить код других модулей в программе.

Спасибо!

1 Ответ

0 голосов
/ 07 февраля 2020

Вы объявили digit_1 / 2 как переменную, и она должна быть net в Verilog. Я предполагаю, что это выходные порты вашего модуля binary_bcd_2. SystemVerilog не имеет этого ограничения.

Просто удалите ключевое слово reg из объявления порта. Я добавил wire для ясности, но это то, что подразумевается

module bcd_count_7(
  input wire [6:0] max_count,
  input wire CLK, run,
  output wire [3:0] digit_1,
  output wire [3:0] digit_2
);
...