close Warning: Can't synchronize with repository "(default)" (/common/SVN/crkit does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Initial Version and Version 1 of crkit/Software/Firmware/Framework/R3_arch

Jun 15, 2010, 7:30:20 PM (12 years ago)



  • crkit/Software/Firmware/Framework/R3_arch

    v1 v1  
     1== R3 Architecture ==
     5=== Overview ===
     7With R3, we have included a dedicated control plane with RMAP processor which will handle all register map
     8related accesses. In future releases, we may replace the RMAP processor with a real 32-bit soft processor such
     9as Xilinx Microblaze, or equivalent processors.
     11The register maps associated with the control plane handle all Board related controls e.g. RF SPI, general purpose
     12IOs, LEDs and so forth. Whereas, data plane centric register maps are maintained within the Tx and Rx data planes.
     13Within each dataplane, we have an option of having a dataplane top level register map, and/or an application specific
     14register map. Usually, the top level register map are shared among multiple applications, whereas application
     15specific register maps are only designed for a particular application.
     17__Figure 1 - R3 architecture overview__
     19[[Image(r3_arch.jpg, 900px)]]
     21From Host, we can control the hardware (RMAP read/write operations) by sending RMAP ethernet frame messages. The Tx Command Generator forwards RMAP specific frames to RMAP Processor, whereas data specific frames are routed to the Tx Memory Controller. The RMAP frames are then parsed by the RMAP processor, where a register map read/write operation can be initiated.
     23For RMAP read operations, the read data need to be forwarded back to Host. This is accomplished by following operations : [[BR]]
     241. RMAP Processor forwards read data to Rx Memory Controller. Note : shared access to Rx buffer with dataflow.[[BR]]
     252. Generate Ethernet frame, with added header control information for RMAP read synchronization at Host.[[BR]][[BR]]
     27=== Global Memory Map ===
     29R3 global memory map is currently divided into 4 regions : Common control, Common Interrupt Control, Receiver and Transmitter. 65Kbytes are reserved for each region. The total number of address bits are 32-bit, but we will only use the lower 16-bits per region e.g. 65Kbytes per region. Therefore, bits19-16 are used for region address decoding between Common control, Receiver and Transmitter as illustrated in figure 3.
     31__Figure 2 - R3 Global Memory__
     33[[Image(r3_glob_mem.jpg, 400px)]]
     36'''Common Control''' - Control Plane register map e.g. SPI, LEDs, and board level IO.[[BR]]
     37'''Common INTC'''    - Interrupt Controller map. Individual interrupt lines from Common Control, XMTR and RCVR are consolidated in a single location. Once an interrupt is set (by INTR ethernet frame), Host shall read the INTC status register to identify which of the 3 regions has triggered an interrupt e.g. coarse parsing, followed by fine parsing. [[BR]]
     38'''XMTR'''           - Transmitter register map.[[BR]]
     39'''RCVR'''           - Receiver register map. [[BR]][[BR]]
     42__Figure 3 - R3 Top Address Decoding__
     47=== Ethernet Frame Formatting ===
     48In this section, the ethernet frame payload structures are detailed for Host -> HW, and HW -> Host
     49directions. Some header information are appended to provide additional control information.[[BR]]   
     51[wiki:Internal/SDR/Firmware/Framework/R3_arch/eth_from_host Host -> HW] : two types of Ethernet frames e.g. rmap and data frames.[[BR]]
     52[wiki:Internal/SDR/Firmware/Framework/R3_arch/eth_to_host HW -> Host] : two types of Ethernet frames e.g. rmap read and data. The data frames are further classified in additional subtypes such as generic data, FFT data structures and so forth. Host may perform additional processing on the data structures.
     54Segmentation - this function is performed by the 'Tx Ethernet Interface' module. This module will automatically segment the data structure if size is greater than 1500 bytes (payload is stored in Rx Buffer). Some control information are appended to denote first, intermediate and last segment. Refer to [wiki:Internal/SDR/Firmware/Framework/R3_arch/eth_to_host HW -> Host] for further details.
     57=== Control Flow ===
     58As with previous revisions, R3 control flow is message-based. Host sends commands to HW, where they get parsed and acted on accordingly. R3 control flow scheme is detailed in the [wiki:Internal/SDR/Firmware/Framework/R3_arch/ctl_flow Control Flow Diagram].[[BR]][[BR]] 
     59=== Multi-clocks Synchronization ===
     62=== Block Level Specifications ===
     64[wiki:Internal/SDR/Firmware/Framework/R3_arch/blk_xmtr XMTR][[BR]]
     65[wiki:Internal/SDR/Firmware/Framework/R3_arch/blk_rcvr RCVR][[BR]]
     66[wiki:Internal/SDR/Firmware/Framework/R3_arch/blk_ctl Control Plane][[BR]]
     69=== FPGA Architecture ===
     71The [wiki:Internal/SDR/Firmware/Framework/R3_arch/fpga_arch modularity] of the FPGA architecture design provides a path for upgradeability. All main components can be upgraded or replaced as long as the integrity of IO interfaces are maintained. [[BR]][[BR]]
     74=== Register Maps ===
     77[wiki:Internal/SDR/Firmware/Framework Return ..]