Fiber Channel Video Controller Mid-Project Review Tsachy Kapchitz & Michael Grinkrug Super.: Alex Gurovich Technion Digital Lab, Elbit Systems
Project Goals Design a controller that receives FC traffic from an external receiver and passes to memory only video data directed to it.
Block Diagram Input: –HP Receiver Output: –SRAM / LCD Interface: –Config. Params (address, video params etc.) –Status Register
Input Unit Functionality: –Get data [words], comma and clock from HP receiver –Combine the data into DW and pass to Frame Controller –Generate clock of half the frequency of the clock provided by HP receiver –Pass COM_DET signal with the relevant DW Input: (from HP receiver) –Data [15:0] –COM_DET signal –Clock (RBC) Output: (to Frame Controller) –Data [31:0] –Comma signal –Clock (half the frequency of RBC)
Input Unit - uArch
Input Unit - clock generation This clock (f/2) will be the operating clock of the controller (Frame / Container Controllers) Memory Unit (address placement and SRAM / LCD interface) will work at a different frequency (a bit higher)
Input Unit - Assumptions HP Receiver operates in 2-Bytes per clock mode (not Ping-Pong) FC frames are DW aligned, so comma always will be passed in parallel with SOF / EOF The data from HP is in 8 bits per Byte format (after 10 to 8 conversion)
Frame Controller Functionality: –Receive data from Input Unit by DW –Analyze the data on FC Header level –Pass the relevant payload to Container Controller –Generate FC frame status according to internal state in order to know the cause of the problem Input: (from Input Unit) –Data [31:0] –Clock (half of RBC) –Comma signal –Configuration registers (DID etc. from ConfStat) Output: (to Container Controller) –Data [31:0] –Valid + BC –New_Container –Frame Status Register
Frame Controller - functionality
Frame Controller - Block Diagram Frame header Analyzer - main FSM, that parses FC frame header fields Sequence Follower - figures the next expected sequence num. and sequence count CRC is only compared and OK/NOK bit set in status register Suspender - FIFO of depth 2 that suspends the data in order to get the end of the frame (CRC)
Frame Controller - uArch Frame Header Analyzer
Frame Controller - uArch Sequence Follower New_container is a pulse that accompanies the first DW of container header
Frame Controller - uArch Suspender BC : –11 - DW – Bytes – Bytes – Byte - #byte_fill
Frame Controller - Assumptions Sequence on FC level 1 video container Single sequence at a time (one video stream) The link is FIFO (no surpassing frames) Point to point connection (single sender) If an error on FC frame level occurs - current sequence will be discarded (thus current video frame will be partially lost) Upon CRC error only, the data will be passed through and an appropriate status will be generated
Frame Controller - Testing Methodology Frame Controller: –C program that generates a text file with FC frames Parameters to the program: (some are randomized to increase test coverage) –Num. of sequences –Max num. of frames per sequence –Frame size range (low & high limits) FC payload is a sequential data, that will be later changed to “FC Containers” –VHDL test-bench that reads an input file (text) and “simulates” HP-receiver using that input
Container Controller Functionality: –Get container from Frame Controller and write video objects to memory using an appropriate method, according to video system (with help of Memory Unit) –Write ancillary object to a separate memory Input: (from Frame Controller) –Data [31:0] –BC –Valid –New_Container –Memory Unit interface Output: (to Memory Unit) –SRAM interface –Memory Unit interface
Container Header
Container Controller - Block Diagram FIFO
Container Controller - Header Analyzer
Container Controller - Header Analyzer (cont.) Data flows through the block and relevant fields are checked and loaded into Object Information registers Objects size is loaded into a “temp” register and transferred together with offset Data SIZE Object Info Frame Contrl. Obj. Extractor
Container Controller - Objects Information
Container Controller - Object Extractor
Container Controller - Object Extractor FSM
Container Controller - Aligner
Container Controller - Memory Unit
Container Controller - Memory Unit FSM
Container Controller - Assumptions Memory Unit gets Index of the first valid (TYPE & Size) interlaced mode - video field object Single video stream
Backup