Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
W
White Rabbit core collection
  • Project
    • Project
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 29
    • Issues 29
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Schedules
  • Wiki
    • Wiki
  • image/svg+xml
    Discourse
    • Discourse
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • Projects
  • White Rabbit core collection
  • Wiki
  • Development instructions

Development instructions

Last edited by Erik van der Bij Feb 02, 2016
Page history

Development instructions

Repo layout

The repository contains only generic and reusable White Rabbit cores, which are not be tied to any particular piece of hardware (for example, the Routing Table Unit belongs to the WR Switch HDL repository, because it would be of very little use anywhere else). If there are any platform dependencies, the platform-specific part should be clearly separated from the generic part.

The repo is organized as follows:

  • modules - "big" modules, such as the WR Endpoint or the WR Core - each in a separate subdirectory, with dir name matching the name of of the top level entity. Only platform-independent RTL code is allowed.
  • platform - platform dependent code, for example wrappers for gigabit transceivers or Chipscope cores.
  • sim - simulation models and header files
  • top - top level entities for actual hardware implementations (i.e. FPGA-wide top levels). Each design should be placed in a separate subdirectory with the name matching the pattern hw_platform/@firmware_name. For example,spec_1_1/wr_core_demo@ means a demo project for the WR core synthesized for the SPEC 1.1. card. FPGA pin assignment files should be also stored in top/ subdirectory.
  • syn - synthesis-specific files and resulting binaries - for example ISE/Quartus projects. Only the files which are necessary to run a synthesis (i.e. hdlmake manifests, .xise or .qpf files may be uploaded here). Pushing synthesis outputs (reports, intermediate netlists, etc.) is forbidden, with an exception of tested FPGA bitstreams which may take long time to build from sources.
  • testbench - testbenches, grouped in subdirectories with names corresponding to the names of the modules being tested. Each testbench must contain a simulation run script and a hdlmake manifest.

Coding style

In general, the OHR VHDL coding guidelines should be followed. However, due to large complexity of some of the modules, there are some exceptions:

* you must not prefix signals with s_.

* if the module inteface comprises multiple repetitive signals, use structures instead of flattened std_logic ports. This makes the interconnections between the modules much easier to understand and less error prone. For compatibility with Verilog and gate-level simulations, you should provide a module with flattened ports. Names of modules with structs in ports are prefixed with x, for example:

-- version with structs
entity xwr_module is
  port (
    wb_i : t_wishbone_slave_in;
    wb_o : t_wishbone_slave_out
    );
end xwr_module;

-- version without structs
entity wr_module is
  port (
    wb_adr_i : in  std_logic_vector;
    wb_dat_i : in  std_logic_vector;
    wb_ack_o : out std_logic;
    );
end wr_module;
  • do not type signals, names and keywords in UPPERCASE.
  • for every Wishbone module, implement a generic g_interface_mode, allowing the user to choose between Classic and Pipelined (B4) bus operation.
  • use Emacs-style formatting VHDL formatting rules (2-space indentation) and file header.
Clone repository
  • Board vfc hd
  • Board vfc hd ports
  • Current release
  • Development instructions
  • Documents
  • Documents
    • Project attachments
    • Version 'v3.0' attachments
    • Wr ptp core hdl specification v2.0
    • Wr ptp core building manual for release 2.0
    • Wr ptp core manual for release 2.1
    • Wr ptp core release tests
    • Wr ptp core release v3.0 documentation
    • Wr ptp core v4.0 files
    • Wr ptp core v4.1 files
    • Wr ptp core v4.2 files
More Pages

New Wiki Page

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