Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
Beam Positoning Monitor - Gateware
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
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Beam Positoning Monitor - Gateware
Commits
2d3558af
Commit
2d3558af
authored
Nov 21, 2012
by
Lucas Russo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
README: fix some typos and update hierarchy organization tree
parent
d8e9b951
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
115 additions
and
105 deletions
+115
-105
README
README
+115
-105
No files found.
README
View file @
2d3558af
==========================================================
==========================================================
====================
Repository containing the Beam Position Monitor FPGA firmware and
Repository containing the Beam Position Monitor FPGA firmware and
software.
software.
==========================================================
==========================================================
====================
Folder Hierarchy organization:
Folder Hierarchy organization:
...
@@ -11,166 +11,176 @@ Folder Hierarchy organization:
...
@@ -11,166 +11,176 @@ Folder Hierarchy organization:
|
|
|-- hdl:
|-- hdl:
| | HDL (Verilog/VHDL) cores related to the BPM.
| | HDL (Verilog/VHDL) cores related to the BPM.
| |
| |
| |-- ip_cores:
| |-- ip_cores:
| | | Third party reusable modules, primarily Open hardware
| | | Third party reusable modules, primarily Open hardware
| | | modules (http://www.ohwr.org).
| | | modules (http://www.ohwr.org).
| | |
| | |
| | |-- etherbone-core:
| | |-- etherbone-core:
| | | Connects two Wishbone
Bus
ses, either a true hardware bus
| | | Connects two Wishbone
bu
ses, either a true hardware bus
| | | or emulated software bus, through
t
Ethernet.
| | | or emulated software bus, through Ethernet.
| | |-- general-cores (fork from original projec
ct):
| | |-- general-cores (fork from original projec
t):
| | General reusable modules.
| | General reusable modules.
| |
| |
| |-- modules:
| |-- modules:
| | | Modules specific to BPM hardware.
| | | Modules specific to BPM hardware.
| | |
| | |
| | |-- custom_common:
| | |-- custom_common:
| | | Common (reusable) modules to BPM hardware and possibly
| | | Common (reusable) modules to BPM hardware and possibly
| | | to other designs.
| | | to other designs.
| | |-- custom_wishbone:
| | |-- custom_wishbone:
| | Wishbone modules to BPM hardware.
| | Wishbone modules to BPM hardware.
| |
| |
| |-- platform:
| |-- platform:
| | Platform-specific code, such as
xilinx c
hipscope wrappers.
| | Platform-specific code, such as
Xilinx C
hipscope wrappers.
| |
| |
| |-- sim:
| |-- sim:
| | Generic simulation files, reusable Bus Functional Modules (BFM),
| | Generic simulation files, reusable Bus Functional Modules (BFM
s
),
| | constants definitions.
| | constants definitions.
| |
| |
| |-- syn:
| |-- syn:
| |
Synthesis specific files (user constraints files and top design
| |
Synthesis specific files (user constraints files and top design
| | specification).
| | specification).
| |
| |
| |-- testbench:
| |-- testbench:
| | Testbenches for modules and top level designs. May use modules
| |
Testbenches for modules and top level designs. May use modules
| | defined elsewhere (specific within the 'sim" directory).
| |
defined elsewhere (specific within the 'sim" directory).
| |
| |
| |-- top:
| |-- top:
|
Top design modules.
|
Top design modules.
|
|
|-- sw:
|-- sw:
| Software related to interfacing the BPM carrier board with a PC
| | Software related to interfacing the BPM carrier board with a PC
| via PCIe.
| | via PCIe.
| |
| |-- drivers:
| | Linux Kernel code for device drivers
| |
| |-- include:
| | Header files for device structures and definitions
| |
| |-- lib:
| Utilities and API functions exported by the drivers
|
|
|-- embedded-sw (based on the original project by Alessandrio Rubini
and others
|-- embedded-sw (based on the original project by Alessandrio Rubini
|
<http://www.ohwr.org/projects/wrpc-sw>):
| | and others
<http://www.ohwr.org/projects/wrpc-sw>):
| Embedded software that runs inside the LM32 softcore processor.
| |
|
| | Embedded software that runs inside the LM32 softcore processor.
|-- arch:
| |
| Architecture specific code, like linker scripts and boot code.
| |-- arch:
|
| | Architecture specific code, like linker scripts and boot code.
|-- boards:
| |
| Board specific parameters and initialization.
| |-- boards:
|
| | Board specific parameters and initialization.
|-- dev:
| |
| Device specific code, such as UART, GPIO and DMA interfaces
| |-- dev:
|
| | Device specific code, such as UART, GPIO and DMA interfaces
|-- include:
| |
| | General headers, mosly API device headers.
| |-- include:
| |
| | | General headers, mostly API device headers.
| |-- hw:
| | |
| | Device specefic registers and strucutures. This defnitions
| | |-- hw:
| | are included by the more general headers located inside
| | | Device specific registers and structures. This definitions
| | the "include" top directory.
| | | are included by the more general headers located inside
| |
| | | the "include" top directory.
| |-- memmgr:
| | |
| Memory pool for "dynamic" alocated memory. Code by
| | |-- memmgr:
| by Eli Bendersk
y.
| | Memory pool for "dynamic" allocated memor
y.
|
|
|
|-- lib:
| |-- lib:
| Utilities and general functions, such as the memmgr subsystem
|
| Utilities and general functions, such as the memmgr subsystem
| and a printf-like function.
|
| and a printf-like function.
|
| |
|-- tests:
| |-- tests:
| Folder dedicated to software testing.
|
| Folder dedicated to software testing.
|
|
|
|-- tools:
| |-- tools:
General tools for generating RAM loadable file by the firmware
| |
General tools for generating RAM loadable file by the firmware
FPGA.
| |
FPGA.
==========================================================
==========================================================
====================
Cloning this repository:
Cloning this repository:
This repository makes use of git submodules, located at 'hdl/ip_cores' folder:
This repository makes use of git submodules, located at 'hdl/ip_cores' folder:
hdl/ip_cores/general-cores
hdl/ip_cores/general-cores
hdl/ip_cores/etherbone-core
hdl/ip_cores/etherbone-core
To clone the whole repository use the following command:
To clone the whole repository use the following command:
$ git clone --recursive git://github.com/lerwys/bpm-sw.git (read only)
$ git clone --recursive git://github.com/lerwys/bpm-sw.git (read only)
or
or
$ git clone --recursive git@github.com:lerwys/bpm-sw.git (read+write)
$ git clone --recursive git@github.com:lerwys/bpm-sw.git (read+write)
For older versions of Git (<1.6.5), use the following:
For older versions of Git (<1.6.5), use the following:
$ git clone git://github.com/lerwys/bpm-sw.git
$ git clone git://github.com/lerwys/bpm-sw.git
or
or
$ git clone git@github.com:lerwys/bpm-sw.git
$ git clone git@github.com:lerwys/bpm-sw.git
$ git submodule init
$ git submodule init
$ git submodule update
$ git submodule update
To update each submodule within this project use:
To update each submodule within this project use:
$ git submodule foreach git rebase origin master
$ git submodule foreach git rebase origin master
==========================================================
==========================================================
====================
Simulation instructions:
Simulation instructions:
-> Go to a testbench directory. It must have a top manifest file:
Go to a testbench directory. It must have a top manifest file:
cd /hdl/testbench/path_to_testbench
cd /hdl/testbench/path_to_testbench
-> Run the following commands. You must have hdlmake2 command available
in your PATH environment variable.
-> Create the (ISim) simualation makefile
1 - hdlmake2 --make-isim
Run the following commands. You must have hdlmake2 command available
in your PATH environment variable.
-> Compile the project
Create the (ISim) simualation makefile
2 - make
$ hdlmake2 --make-isim
-> Create the simulation executable elf file
Compile the project
3 - make fuse TOP_MODULE=<top_level_testbench_module_without_the_extension>
$ make
-> Execute the simulation with GUI and aditional commands
Create the simulation executable ELF file
4 - ./isim_proj -view wave.wcfg -tclbatch isim_cmd -gui
$ make fuse TOP_MODULE=<top_level_testbench_module_without_the_extension>
==========================================================
Execute the simulation with GUI and aditional commands
$ ./isim_proj -view wave.wcfg -tclbatch isim_cmd -gui
==============================================================================
Synthesis instructions:
Synthesis instructions:
-> Go to a syn directory. It must have a top manifest file:
Go to a syn directory. It must have a top manifest file:
cd /hdl/top/path_to_top_design
cd /hdl/top/path_to_top_design
-> Run the following commands. You must have hdlmake2 command available
Run the following commands. You must have hdlmake2 command available
in your PATH environment variable.
in your PATH environment variable.
-> Create the synthesis makefile and an ISE project
Create the synthesis makefile and an ISE project
$ hdlmake2 --make-ise --ise-proj
1 - hdlmake2 --make-ise --ise-proj
Compile the source files locally
-> Compile the source files locally
$ make local
2 - make loca
l
Load the generated .bit file with iMPACT or other too
l
-> Load the generated .bit file with iMPACT or other tool
$ impact
3 - impact
==============================================================================
==========================================================
Know Issues:
Know
n
Issues:
wb_fmc150/sim/: This folder containts behavioral simulation models
wb_fmc150/sim/: This folder containts behavioral simulation models
for memories (ROMs). However, the xilinx initialization file (.mif)
for memories (ROMs). However, the xilinx initialization file (.mif)
paths are absolute to a specific machine! You either have to change
paths are absolute to a specific machine! You either have to change
the path to match your machine or figure a way to specifies a relative
the path to match your machine or figure a way to specifies a relative
path (specifiying only the name of the mif file does not work as the
path (specifiying only the name of the mif file does not work as the
simulator is not called within this folder). Try a relative path based
simulator is not called within this folder). Try a relative path based
on the simulation folder.
on the simulation folder.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment