== CRKit Overview == The CRKit framework is a VHDL-based set of building blocks interconnected into a complete radio system, which makes the process of building a custom radio application quick and easy. The framework is Ethernet command based: it takes in data and control commands. Data commands are used to send user application data, whereas control commands are used to set certain parameters of the user application, e.g. changing the operating mode or configuring the ADCs, DACs and the RF cards. [[Image(crkit_arch.jpg, 800px)]] As seen in the Figure, the framework consist of three types of building blocks apart from the application:[[BR]] a) basic blocks that are part of the CRKit firmware library and are essential for running any application on this platform - Ethernet interfaces, SPI, DAC and ADC interfaces,[[BR]] b) framework specific blocks that are connecting other blocks and facilitating command based structure - System controller, Command generator, Memory controller, and [[BR]] c) Xilinx blocks that are providing standard DSP and hardware functions - FIFOs and buffers. The most important blocks of the framework are: * System controller – it is used to route commands among various blocks in the framework. * Command generator – processes the Ethernet packets and generates commands that can be understood by the system controller * Memory Controllers – these blocks manage space in the Tx and Rx buffers and give out necessary information like the buffer being full or empty, or the next address location to write data, etc. The framework thus reduces user effort by assembling all the essential parts of the system and allowing user to concentrate on the application. Any application must conform to the interface given by the CRKit. [[Image(app_arch.jpg, 500px)]] The CRKit provides a control block and a register map to support the application. The Application RMAP is optional. The user may opt out this option and only use the User Specific RMAP instead. The user may or may not use these blocks, i.e., the user application may contain its own control logic and its own register map (optional).User specific logic/functions are contained in the User Application module. [..]