blob: e203125be1d5bb49d5113108cc9ee0be4a56389a [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// Generic differential receiver for USB. Note that this is meant for emulation purposes only, and
// the pull-up, calibration and pok signals are not connected in this module.
`include "prim_assert.sv"
module prim_generic_usb_diff_rx #(
parameter int CalibW = 32
) (
input wire input_pi, // differential input
input wire input_ni, // differential input
input input_en_i, // input buffer enable
input core_pok_h_i, // core power indication at VCC level
input pullup_p_en_i, // pullup enable for P
input pullup_n_en_i, // pullup enable for N
input [CalibW-1:0] calibration_i, // calibration input
output logic usb_diff_rx_obs_o, // observability output
output logic input_o // output of differential input buffer
);
assign input_o = (input_en_i) ? input_pi & ~input_ni : 1'b0;
logic unused_pullup_p_en, unused_pullup_n_en;
logic [CalibW-1:0] unused_calibration;
logic unused_core_pok;
assign unused_calibration = calibration_i;
assign unused_pullup_p_en = pullup_p_en_i;
assign unused_pullup_n_en = pullup_n_en_i;
assign unused_core_pok = core_pok_h_i;
prim_buf obs_buf (
.in_i (input_o),
.out_o (usb_diff_rx_obs_o)
);
endmodule : prim_generic_usb_diff_rx