Мне было интересно, что произойдет, если я создам модуль с объявлением определенного вектора размера в качестве входных данных, а затем передал ему вектор меньшего размера, создавая его позже. Например, скажем, я создаю модуль таким образом:Ввод вектора меньшего размера в модуль Verilog
module example(input, ....);
input[15:0] input;
...
endmodule
А потом я его экземпляр позже, но передать его меньший размер входного вектора следующим образом:
wire[11:0] foo;
example bar(foo, ....);
Так что происходит с input
в этом дело? Так как input
должен быть 16 бит, то это просто нулевая прокладка foo
слева?
Вы можете легко ответить на этот вопрос самостоятельно, выполнив симуляцию. Либо посмотрите на формы сигналов, чтобы увидеть, какое значение имеет значение «вход» внутри модуля, или используйте «$ monitor». – toolic
«input» в вашем примере - это ключевое слово verilog, и оно не может использоваться как имя переменной – Emman