etherforth_logo

SRAM module

This module generates address, data, and control signals for the external SRAM, converts 18-bit GA144 data into 16-bit wide SRAM and back, and also provides access points for other modules.

node 208 node 107 node 108 node 109 node 007 node 008 node 009 sram module floorplan

Description

Nodes 007, 008, and 009 act as a low-level interface to onboard SRAM. It is contolled by node 108, which also performs conversion of 18-bit words used by GA144 into 16-bit wide SRAM words and back. Difference in word width makes it necessary to read and write data in chunks of eight 18-bit words (stored in SRAM as nine 16-bit words). Node 108 also provides SRAM access for three SRAM masters, which operate on "first come, first served" basis. The system is designed in such a way as to eliminate possible race conditions.

Node 107 requests access to SRAM when it receives text from node 106 of Utility module to be printed in block 001. It also allows access to SRAM from PC using Async serial module and ether messages. This feature has been useful during system development. This node is also used to read blocks of source code upon request by Compiler module and Loader module.

Node 208 is another SRAM master. It reads blocks to fill video buffer, and writes them back if modified by Editor. It also reads content of block 000 when interpreting command line. Finally, node 500 of Utilities module sends a request to this node to reload video buffer with block 001 content whenever it needs to provide feedback to the user.

The last SRAM master is node 109, which can copy content of one block to another, and erase a whole block. These functions are launched by commands copy and wipe, respectively.