¿Cómo declarar valores de registro como una entrada en Verilog?

0

Tengo un conjunto de datos que consta de 30 valores y cada uno de 16 bits de ancho. Intenté agregar estos valores como una entrada en mi código de Verilog de la siguiente manera:

'timescale 1ns / 1ps
module com (inp,clk,out);
input clk;
input reg [15:0] inp;//dataset
output out;
.
.
.

pero cuando estoy escribiendo input reg [15:0] inp; está mostrando some error .

¿Alguien puede decirme cómo puedo usar estos valores de conjunto de datos como una entrada en mi código de verilog?

    
pregunta David

2 respuestas

0

Si desea asignar un valor a algo , es un registro ( reg ). Si desea conectar dos cosas, entonces necesita un wire . Si desea obtener una señal de un bloque externo, use un input y si desea enviar una señal a un bloque externo, use un output . output s puede ser wire s o reg s, pero input no puede ser reg . Si está tratando de asignar un valor a inp dentro de su bloque, entonces ¿cómo puede decir que otro bloque determina el valor de inp ?

Quizás esto es más lo que estás intentando hacer: en el límite del reloj, si el restablecimiento es alto, inp_registered obtiene 0 . De lo contrario, obtiene el valor de inp :

module com(
    rst,
    clk,
    inp
);

input rst;
input clk;
input [15:0] inp;

reg [15:0] inp_registered;

[...]

always @(posedge clk) begin
    if (rst == 1) begin
        inp_registered = 0;
    end
    else begin
        inp_registered = inp;
    end
end
endmodule
    
respondido por el Kevin Kruse
0

Las entradas son solo entradas, no hay distinción entre las entradas controladas por cables y las entradas controladas por regs.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas