2016-11-16 2 views
-1

Я новичок в systemverilog, и у меня есть эта ошибка, которую я не могу понять. Это сообщение об ошибке:Невозможно неявно подключить порт к ошибке экземпляра

Ошибка (10897): SystemVerilog ошибка при TopLevel.sv (103): не может неявно подключить порт "ALU_SRC_B" в экземпляре "control_module" из модуля "Управление" - нет такой объект виден в данном объеме

Это кусок кода, который терпит неудачу:

// Control module 
Control control_module (
    .Instruction(Instruction[8:5]), 
    .ALU_OP, 
    .ALU_SRC_B, 
    .REG_WRITE, 
    .BRANCH, 
    .MEM_WRITE, 
    .MEM_READ, 
    .REG_DST, 
    .MEM_TO_REG, 
    .HALT(HALT) 
); 

И это мой модуль управления:

module Control(
    input  [8:0] Instruction, 
    output logic [3:0] ALU_OP, 
    output logic [1:0] ALU_SRC_B, 
    output logic  REG_WRITE, 
    output logic  BRANCH, 
    output logic  MEM_WRITE, 
    output logic  MEM_READ, 
    output logic  REG_DST, 
    output logic  MEM_TO_REG, 
    output logic  HALT 
    ); 

    logic [3:0] OPCODE = Instruction[8:5]; 
    always_comb begin 
... 

Модуль управления находится в правильном каталоге, так почему я получаю эту ошибку?

+2

Где вы экземпляр 'Control control_module (' у вас есть проволочный канал d 'ALU_SRC_B'? Нам нужно увидеть провод, а также экземпляр. – Morgan

+2

Пожалуйста, вставьте весь свой код tb – noobuntu

ответ

2

Я дал ваш код попробовать и причина, по которой вы получаете сообщение, заключается в том, что для ваших несвязанных портов в control_module вам нужно показать пустые скобки, чтобы указать, что это не связано. В противном случае вы получите сообщение, как показано (что немного загадочно).

TestBench:

module tb; 

    wire[8:0] Instruction; 
    wire  HALT; 
// Control module 
Control control_module (
    .Instruction(Instruction[8:5]), 
    .ALU_OP(), 
    .ALU_SRC_B(), 
    .REG_WRITE(), 
    .BRANCH(), 
    .MEM_WRITE(), 
    .MEM_READ(), 
    .REG_DST(), 
    .MEM_TO_REG(), 
    .HALT(HALT) 
); 

    initial begin 
    #100ns 
    $finish; 
    end 

endmodule 

ДИЗАЙН:

// Code your design here 
module Control(
    input  [8:0] Instruction, 
    output logic [3:0] ALU_OP, 
    output logic [1:0] ALU_SRC_B, 
    output logic  REG_WRITE, 
    output logic  BRANCH, 
    output logic  MEM_WRITE, 
    output logic  MEM_READ, 
    output logic  REG_DST, 
    output logic  MEM_TO_REG, 
    output logic  HALT 
); 

endmodule 

Вы можете найти рабочий пример здесь: https://www.edaplayground.com/x/63Eq

Попробуйте принимать одну из пустых скобок и обратите внимание, вы получите ту же ошибку сообщение ..

-1

Ошибка означает, что вы не объявили ALU_SRC_B в том объеме, в котором вы создали экземпляр модуля управления.

Смежные вопросы