ACIA_Reset ( clk, rst, Reset, DCD_n ) |
| ACIA Reset may be hardware or software |
ACIA_Status (Reset, clk ) |
| ACIA Status Register
ACIA_Status : process(clk, Reset, TxIEnb, RxIEnb,
RxDR, TxBE, DCD_n, CTS_n, DCDInt,
FErr, OErr, PErr ) |
ACIA_Control ( CtrlReg, TxDbit ) |
| ACIA Transmit Control |
ACIA_Read_Write (clk, Reset ) |
| Generate Read / Write strobes. |
| ACIA_Read_Write: process(clk, Reset, cs, rw, Addr, DataIn ) |
ACIA_Data_Mux (Addr, StatReg, RecvReg) |
| Set Data Output Multiplexer |
ACIA_DCD_edge ( reset, clk ) |
| Data Carrier Detect Edge rising edge detect
ACIA_DCD_edge : process( reset, clk, DCD_n, DCDDel ) |
ACIA_DCD_Int ( reset, clk ) |
| Data Carrier Detect Interrupt
If Data Carrier is lost, an interrupt is generated
To clear the interrupt, first read the status register
then read the data receive register
ACIA_DCD_Int : process( reset, clk, DCDState, DCDEdge, ReadRR, ReadSR ) |