CROCS - Work Package 1

This work package introduces some of the basic concepts of a cosmic ray detector and shows you how to design and build a prototype cosmic ray counter using advanced digital electronics design methods.

Sketch of the CROCS apparatus

Sketch of the CROCS apparatus.

A simplified diagram of the final detector is shown above. The scintillator tile generates a flash of light when a cosmic ray particle passes through. The wavelength shifting fibre absorbs a small amount of the light and re-emits it at a longer wavelength. The fibre also acts as an optical fibre to bring the light to a silicon photomultipler (SiPM) light detection element. The silicon photomultiplier converts the light pulse into an analoque electrical signal. An amplifier and shaper circuit is used to make the very fast and very small analogue signal easier to process without requiring expensive electronic equipment. At this stage the signal can be converted to digital by applying a threshold to the analogue signal.


The aim of this work package is to design a digital electronic circuit that receives the digital signal described above and counts the number of occurrences separately for at least two detectors.

The second step is to count the number of times a signal is seen from two detectors at the same time.

The Nexys3 development board

The Nexys3 board.

You may be already familiar with building prototype circuits by breadboarding and you may like to try building the above circuits that way. However, in this work package we will design the circuit using an FPGA (field-programmable gate array) and software design tools. FPGAs are very widely used today in many electronic circuits because they can be programmed in software to implement almost any function from something as simple as an AND gate to something as complex as a computer CPU. FPGAs are reprogrammable so they are very convenient for trying out different prototype circuits without having to physically place and connect components on a printed circuit board or breadboard. You will use the Xilinx Spartan 6 FPGA on a Nexys3 prototyping PCB to implement your designs.

We have pre-installed the Xilinx WebPack software on the PCs that we will use but you will need to install the software yourselves on your own PCs. The WebPack software is available free from the Xilinx website or you can use the installation media we have provided. More details...

The next step is to open the design explorer and create a new design project. You will use the schematic capture method of creating your design. This means that you create your design as a schematic diagram and the design tools convert it into a form that can be downloaded into the FPGA.

There are actually several steps needed to convert the schematic into FPGA logic (generate, compile, map, place and route) but for the moment you don't need to know the details as the tools do them for you.

Getting familiar with the tools

The WebPack ISE tools include a library of basic components or symbols that you can use in your design. Some of these, like AND gates and OR gates, may already be familiar and we suggest that you start by drawing a schematic diagram using these simple gates to get used to the design environment. But keep your first circuit very simple so that it is easier to analyse its behaviour. Setting up a new ISE project from scratch is a bit fiddly so we have created some projects in advance for this work package.


First open the project called CROCS-WP1. We will use this to try out all the steps from drawing the schematic diagram to testing it in the FPGA. The main steps are:

Schematic design
Use the schematic editor to modify the pre-loaded simple circuit.
Behavioural simulation
Use the Isim simulator to verify that the design does what you expect.
Use the tools to synthesize the circuit for the Spartan 6 FPGA.
Firmware download
Create and download the firmware into the Spartan 6 FPGA.
Try it out
Compare its behaviour with the simulation.

If you want to keep this or the following projects for later, save it and archive it.


Now open the ISE project CROCS-WP1.2. This project illustrates how to create synchronous (clocked) logic circuits. Follow the same steps as above and compare the behaviour of the circuit.

Create your own

Finally, try to create a new project to design a new circuit using synchronous logic that counts the number of digital pulses received. Count also the number of times that two or more signals are received at the same time. The easiest way to start is to copy the CROCS-WP1.2 project and modify the copy. Make use of the library of standard components (symbols) to create your design.


There are lots of fun things you can try on your own using this kit and we have only really scratched at the surface of what it is possible to do. Explore the tools yourselves after the workshop to try to design your own circuits. If you design something you think may be useful or interesting to the CROCS community we can add it to the CROCS library for the benefit of all.