Changes between Initial Version and Version 1 of Component/Vci Multi Tty


Ignore:
Timestamp:
May 5, 2007, 8:31:34 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Multi Tty

    v1 v1  
     1[wiki:Component SocLib Components General Index]
     2
     3= !VciMultiTty Functional Description =
     4
     5This VCI target is a TTY terminal controller. This hardware component controls
     6up to 256 terminals, emulated as XTERM windows. The number of emulated
     7terminals is defined by the arguments in the constructor.
     8The constructor creates as many UNIX XTERM processes as the number N of emulated terminals.
     9It creates N PTY pseudo-terminals (one for each XTERM process), to support the bidirectional
     10communication between the TTY controller process and the XTERM processes.
     11Each terminal is acting both as a character display, and a keyboard interface.
     12For each terminal, a specific IRQ is activated when a character is entered at the keyboard.
     13The terminal index i is defined by the ADDRESS![12:4] bits.
     14This hardware component cheks for segmentation violation, and can be used
     15as a default target.
     16
     17Each TTY controller contains 3 memory mapped registers:
     18
     19 * '''TTY_DISPLAY'''     : ADDRESS![3:0] = 0x0
     20This 8 bits pseudo-register is write only.
     21Any write request will interpret the 8 LSB bits of the WDATA field
     22as an ASCII character, and this character will be displayed on the addressed terminal.
     23
     24 * '''TTY_KEY_STS''' : ADDRESS![3:0] = 0x4
     25This Boolean status register is read-only.
     26A read request returns the zero value if there is no pending character.
     27It returns a non zero value if there is a pending character in the keyboard buffer.
     28
     29 * '''TTY_KEY_BUF'''    : ADDRESS![3:0] = 0x8
     30This 8 bits register contains one single ASCII character.
     31This register is read-only. A read request returns the ACSII character
     32in the 8 LSB bits of the RDATA field, and reset the status register
     33
     34= !VciMultiTty CABA  Implementation =
     35
     36The caba implementation is in
     37 * source:trunk/soclib/systemc/include/caba/target/vci_multi_ram.h
     38 * source:trunk/soclib/systemc/src/caba/target/vci_multi_ram.cc
     39
     40== Template parameters: ==
     41 * The VCI parameters
     42
     43== Constructor parameters ==
     44{{{
     45VciMultiTty(
     46     sc_module_name name,   // Instance name
     47     const soclib::common::IntTab &index,   //  Target index
     48     const soclib::common::MappingTable &mt,   // Mapping Table
     49     const char *first_tty_name,   // TTY names (as many names as terminals)
     50     ...);
     51}}}
     52
     53== Ports ==
     54
     55 * sc_in<bool> '''p_resetn''' : Global system reset
     56 * sc_in<bool> '''p_clk''' : Global system clock
     57 * soclib::common::!VciiTarget<vci_param> '''p_vci''' : The VCI port
     58 * sc_out<bool> '''*p_irq''' : Pointer on the interrupt ports array.