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.
==========================================================
==========================================================
====================
Folder Hierarchy organization:
...
...
@@ -11,166 +11,176 @@ Folder Hierarchy organization:
|
|-- hdl:
| | HDL (Verilog/VHDL) cores related to the BPM.
| |
| |
| |-- ip_cores:
| | | Third party reusable modules, primarily Open hardware
| | | Third party reusable modules, primarily Open hardware
| | | modules (http://www.ohwr.org).
| | |
| | |-- etherbone-core:
| | | Connects two Wishbone
Bus
ses, either a true hardware bus
| | | or emulated software bus, through
t
Ethernet.
| | |-- general-cores (fork from original projec
ct):
| | | Connects two Wishbone
bu
ses, either a true hardware bus
| | | or emulated software bus, through Ethernet.
| | |-- general-cores (fork from original projec
t):
| | General reusable modules.
| |
| |-- modules:
| | | Modules specific to BPM hardware.
| | |
| | |
| | |-- custom_common:
| | | Common (reusable) modules to BPM hardware and possibly
| | | Common (reusable) modules to BPM hardware and possibly
| | | to other designs.
| | |-- custom_wishbone:
| | Wishbone modules to BPM hardware.
| |
| |-- platform:
| | Platform-specific code, such as
xilinx c
hipscope wrappers.
| | Platform-specific code, such as
Xilinx C
hipscope wrappers.
| |
| |-- sim:
| | Generic simulation files, reusable Bus Functional Modules (BFM),
| | Generic simulation files, reusable Bus Functional Modules (BFM
s
),
| | constants definitions.
| |
| |-- syn:
| |
Synthesis specific files (user constraints files and top design
| |
Synthesis specific files (user constraints files and top design
| | specification).
| |
| |-- testbench:
| | Testbenches for modules and top level designs. May use modules
| | defined elsewhere (specific within the 'sim" directory).
| |
Testbenches for modules and top level designs. May use modules
| |
defined elsewhere (specific within the 'sim" directory).
| |
| |-- top:
|
Top design modules.
|
|
Top design modules.
|
|-- sw:
| Software related to interfacing the BPM carrier board with a PC
| via PCIe.
| | Software related to interfacing the BPM carrier board with a PC
| | 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
|
<http://www.ohwr.org/projects/wrpc-sw>):
| Embedded software that runs inside the LM32 softcore processor.
|
|-- arch:
| Architecture specific code, like linker scripts and boot code.
|
|-- boards:
| Board specific parameters and initialization.
|
|-- dev:
| Device specific code, such as UART, GPIO and DMA interfaces
|
|-- include:
| | General headers, mosly API device headers.
| |
| |-- hw:
| | Device specefic registers and strucutures. This defnitions
| | are included by the more general headers located inside
| | the "include" top directory.
| |
| |-- memmgr:
| Memory pool for "dynamic" alocated memory. Code by
| by Eli Bendersk
y.
|
|-- lib:
| Utilities and general functions, such as the memmgr subsystem
| and a printf-like function.
|
|-- tests:
| Folder dedicated to software testing.
|
|-- tools:
General tools for generating RAM loadable file by the firmware
FPGA.
==========================================================
|-- embedded-sw (based on the original project by Alessandrio Rubini
| | and others
<http://www.ohwr.org/projects/wrpc-sw>):
| |
| | Embedded software that runs inside the LM32 softcore processor.
| |
| |-- arch:
| | Architecture specific code, like linker scripts and boot code.
| |
| |-- boards:
| | Board specific parameters and initialization.
| |
| |-- dev:
| | Device specific code, such as UART, GPIO and DMA interfaces
| |
| |-- include:
| | | General headers, mostly API device headers.
| | |
| | |-- hw:
| | | Device specific registers and structures. This definitions
| | | are included by the more general headers located inside
| | | the "include" top directory.
| | |
| | |-- memmgr:
| | Memory pool for "dynamic" allocated memor
y.
|
|
| |-- lib:
|
| Utilities and general functions, such as the memmgr subsystem
|
| and a printf-like function.
| |
| |-- tests:
|
| Folder dedicated to software testing.
|
|
| |-- tools:
| |
General tools for generating RAM loadable file by the firmware
| |
FPGA.
==========================================================
====================
Cloning this repository:
This repository makes use of git submodules, located at 'hdl/ip_cores' folder:
hdl/ip_cores/general-cores
hdl/ip_cores/etherbone-core
hdl/ip_cores/general-cores
hdl/ip_cores/etherbone-core
To clone the whole repository use the following command:
$ git clone --recursive git://github.com/lerwys/bpm-sw.git (read only)
or
$ git clone --recursive git@github.com:lerwys/bpm-sw.git (read+write)
$ git clone --recursive git://github.com/lerwys/bpm-sw.git (read only)
or
$ git clone --recursive git@github.com:lerwys/bpm-sw.git (read+write)
For older versions of Git (<1.6.5), use the following:
$ git clone git://github.com/lerwys/bpm-sw.git
or
$ git clone git@github.com:lerwys/bpm-sw.git
$ git clone git://github.com/lerwys/bpm-sw.git
or
$ git clone git@github.com:lerwys/bpm-sw.git
$ git submodule init
$ git submodule update
$ git submodule init
$ git submodule update
To update each submodule within this project use:
$ git submodule foreach git rebase origin master
==========================================================
$ git submodule foreach git rebase origin master
==========================================================
====================
Simulation instructions:
-> Go to a testbench directory. It must have a top manifest file:
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
Go to a testbench directory. It must have a top manifest file:
cd /hdl/testbench/path_to_testbench
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:
-> Go to a syn directory. It must have a top manifest file:
cd /hdl/top/path_to_top_design
-> Run the following commands. You must have hdlmake2 command available
in your PATH environment variable.
-> Create the synthesis makefile and an ISE project
Go to a syn directory. It must have a top manifest file:
cd /hdl/top/path_to_top_design
Run the following commands. You must have hdlmake2 command available
in your PATH environment variable.
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
for memories (ROMs). However, the xilinx initialization file (.mif)
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
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
on the simulation folder.
for memories (ROMs). However, the xilinx initialization file (.mif)
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
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
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