Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
H
HDL Core Lib
  • Project
    • Project
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • Wiki
    • Wiki
  • image/svg+xml
    Discourse
    • Discourse
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • Projects
  • HDL Core Lib
  • Wiki
  • Timetagformat

Timetagformat

Last edited by OHWR Gitlab support Mar 27, 2019
Page history

Time-tag Format proposal

This page defines a standard format for time-tag in OHR designs.

A time-tag is composed of four fields; Metadata, UTC seconds, Coarse time, Fine time.

The Metadata field holds application specific informations. The four MSBs are reserved for the time-tag format version.

The UTC seconds field comes from a counter incremented by a PPS (Pulse Per Second) signal. This counter can be in the WR (White Rabbit) core in WR enabled designs. If the design is not WR enabled, one has to implement a counter that can be set external (e.g. from a remote computer).

The Coarse time field comes from a counter clocked at 125MHz starting with the PPS signal and reset at 124999999. Again this counter can come from the WR core or can be implemented separately.

The Fine time field is used in case of high resolution application (like TDC or Fine Delay). If the applications doesn't require high resolution, this field can be set to 0. It consists of a fractional part of the Coarse time counter. The LSB represents: 8E-9/(2**field_size) where field_size is the number of bits of the Fine time field.

The time-tag size is 128-bit. The each field is described below:

Metadata* (32-bit):
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
|\4=. tag version |\8=. reserved |\20=. application specific data |

UTC seconds* (32-bit):
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
|\32=. UTC seconds |

Coarse time* (32-bit)
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
|\32=. 125MHz clock ticks |

Fine time* (32-bit)
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
|\32=. fraction of 125MHz clock tick |

As the Coarse time field only goes from 0 to 124999999, another solution to have a bigger UTC seconds field would be:

Metadata 32-bit
UTC seconds 35-bit
Coarse time 27-bit
Fine time 32-bit
Clone repository
  • Documents
  • Hdl git rules
  • Home
  • News
  • Timetagformat
  • Documents
    • Material on synchronizers
    • Vhdl coding guidelines
    • Wishbone b4 specification
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.