Line 60... |
Line 60... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.34 2001/12/19 07:33:54 mohor
|
|
// Synplicity was having troubles with the comment.
|
|
//
|
// Revision 1.33 2001/12/17 10:14:43 mohor
|
// Revision 1.33 2001/12/17 10:14:43 mohor
|
// Things related to msr register changed. After THRE IRQ occurs, and one
|
// Things related to msr register changed. After THRE IRQ occurs, and one
|
// character is written to the transmit fifo, the detection of the THRE bit in the
|
// character is written to the transmit fifo, the detection of the THRE bit in the
|
// LSR is delayed for one character time.
|
// LSR is delayed for one character time.
|
//
|
//
|
Line 325... |
Line 328... |
|
|
// Transmitter Instance
|
// Transmitter Instance
|
uart_transmitter transmitter(clk, wb_rst_i, lcr, tf_push, wb_dat_i, enable, stx_pad_o, tstate, tf_count, tx_reset, lsr_mask);
|
uart_transmitter transmitter(clk, wb_rst_i, lcr, tf_push, wb_dat_i, enable, stx_pad_o, tstate, tf_count, tx_reset, lsr_mask);
|
|
|
// Receiver Instance
|
// Receiver Instance
|
uart_receiver receiver(clk, wb_rst_i, lcr, rf_pop, srx_pad_i, enable, rda_int,
|
uart_receiver receiver(clk, wb_rst_i, lcr, rf_pop, srx_pad_i, enable,
|
counter_t, rf_count, rf_data_out, rf_error_bit, rf_overrun, rx_reset, lsr_mask, rstate, rf_push);
|
counter_t, rf_count, rf_data_out, rf_error_bit, rf_overrun, rx_reset, lsr_mask, rstate, rf_push);
|
|
|
|
|
// Asynchronous reading here because the outputs are sampled in uart_wb.v file
|
// Asynchronous reading here because the outputs are sampled in uart_wb.v file
|
always @(dl or dlab or ier or iir or scratch
|
always @(dl or dlab or ier or iir or scratch
|
Line 503... |
Line 506... |
// Modem Status Register
|
// Modem Status Register
|
reg [3:0] delayed_modem_signals;
|
reg [3:0] delayed_modem_signals;
|
always @(posedge clk or posedge wb_rst_i)
|
always @(posedge clk or posedge wb_rst_i)
|
begin
|
begin
|
if (wb_rst_i)
|
if (wb_rst_i)
|
|
begin
|
msr <= #1 0;
|
msr <= #1 0;
|
|
delayed_modem_signals[3:0] <= #1 0;
|
|
end
|
else begin
|
else begin
|
msr[`UART_MS_DDCD:`UART_MS_DCTS] <= #1 msi_reset ? 4'b0 :
|
msr[`UART_MS_DDCD:`UART_MS_DCTS] <= #1 msi_reset ? 4'b0 :
|
msr[`UART_MS_DDCD:`UART_MS_DCTS] | ({dcd, ri, dsr, cts} ^ delayed_modem_signals[3:0]);
|
msr[`UART_MS_DDCD:`UART_MS_DCTS] | ({dcd, ri, dsr, cts} ^ delayed_modem_signals[3:0]);
|
msr[`UART_MS_CDCD:`UART_MS_CCTS] <= #1 {dcd_c, ri_c, dsr_c, cts_c};
|
msr[`UART_MS_CDCD:`UART_MS_CCTS] <= #1 {dcd_c, ri_c, dsr_c, cts_c};
|
delayed_modem_signals[3:0] <= #1 {dcd, ri, dsr, cts};
|
delayed_modem_signals[3:0] <= #1 {dcd, ri, dsr, cts};
|