Configuration

The configuration of calicoes is a simple description of the setup hardware in a single XML file located in the /opt/calicoes/config folder.

It is based on the Calxml Pyrame format. Please read the corresponding documentation before continuing.

Here is a real example of configuration file :

<?xml version="1.0" encoding="UTF-8"?>
<ecal name="LLR_1SLAB">
  <domain name="localhost">
    <param name="domain_ip">127.0.0.1</param>
    <varmod name="varmod"></varmod>
    <signal name="spill">
      <param name="signal_function">pulse</param>
      <param name="signal_freq">2</param>
      <param name="signal_hl">4</param>
      <param name="signal_ll">0</param>
      <param name="signal_delay">0</param>
      <param name="signal_pw">0.03</param>
      <param name="signal_fe">100e-9</param>
      <param name="signal_re">100e-9</param>
      <param name="signal_conf_string">ag_33500(channel=1,bus=tcp(host=10.220.0.3,port=5025))</param>
    </signal>
    <param name="acqpc_replay">1</param>
    <param name="dif_nb_asu">1</param>
    <param name="asu_version">FEV10</param>
    <param name="asu_nb_skiroc">16</param>
    <param name="skiroc_file">/opt/calicoes/config/all_on_1pF_E0.SC.txt</param>
    <acqpc name="pcacq_1">
      <gdcc name="gdcc_1_1">
        <param name="gdcc_mac_addr">00:0a:35:01:fe:08</param>
        <param name="gdcc_pc_dev">eth0</param>
        <param name="dif_alim">PP</param>
        <dif name="dif_1_1_1">
          <param name="dif_z">1</param>
          <param name="dif_gdcc_port">7</param>
          <asu name="asu_1_1_1_1">
            <param name="asu_version">fev10</param>
            <param name="asu_nb_skiroc">16</param>
          </asu>
        </dif>
      </gdcc>
    </acqpc>
  </domain>
</ecal>
  • The varmod is not a hardware but a piece of software allowing the components to share variables. It is absolutely mandatory.
  • The signals :
    • The spill signal is a pulse signal. Its parameters are high level (hl), low level (ll), falling edge time (fe), raising edge time (re), frequency (freq), pulse width (pw) and phase. It has also a config string describing the pattern generator and a channel parameter corresponding to the channel on the PG. For more information on PG, please see PG pyrame documentation
    • You can add two other signals if necessary: injection and trigger. They have to be declared the same way and they will be triggered automatically by Calicoes at the start of the acquisition.
    • Take care to declare the signals before DIFs because they need to be configured first.
  • The acquisition PC is a convenient abstraction for the Pyrame acquisition chain.
  • The GDCC is a generic driver for the old LDA card but also the new GDCC card. The two mandatory parameters are gdcc_mac_addr and gdcc_pc_dev: the MAC address of the card and the PC interface name on which it is connected.
  • The DIFs must be declared explicitly because they necessarily have different port numbers.
  • The ASUs are the different chip-containing PCBs that are chained on a single DIF. Their version allows us to route the slow control correctly.
  • The skiroc chips are declared implicitely by the dif_nb_skiroc parameter. The bitstream of the chips can be given inlined with the skiroc_bitstream parameter or in a file with the skiroc_file parameter. If you need a different bitstream for the differentn rocs, then you can not use the implicit declaration. Note that the chipid of every skiroc is set automatically by Calicoes (four MSb set to the ASU number 0-16 and four LSb set to chip number 0-16).