-
Notifications
You must be signed in to change notification settings - Fork 3
Main repository for the BPM firmware and software
License
lerwys/bpm-sw-old-backup
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
============================================================================== Repository containing the Beam Position Monitor FPGA firmware and software. ============================================================================== Folder Hierarchy organization: * | |-- hdl: | | HDL (Verilog/VHDL) cores related to the BPM. | | | |-- ip_cores: | | | Third party reusable modules, primarily Open hardware | | | modules (http://www.ohwr.org). | | | | | |-- etherbone-core: | | | Connects two Wishbone buses, either a true hardware bus | | | or emulated software bus, through Ethernet. | | |-- general-cores (fork from original project): | | General reusable modules. | | | |-- modules: | | | Modules specific to BPM hardware. | | | | | |-- custom_common: | | | 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 Chipscope wrappers. | | | |-- sim: | | Generic simulation files, reusable Bus Functional Modules (BFMs), | | constants definitions. | | | |-- syn: | | 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). | | | |-- top: | Top design modules. | |-- sw: | | 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, 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 memory. | | | |-- 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 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 [email protected]: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 [email protected]:lerwys/bpm-sw.git $ git submodule init $ git submodule update To update each submodule within this project use: $ 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 $ hdlmake2 --make-isim Compile the project $ make Create the simulation executable ELF file $ 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 $ hdlmake2 --make-ise --ise-proj Compile the source files locally $ make local Load the generated .bit file with iMPACT or other tool $ impact ============================================================================== Known 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.
About
Main repository for the BPM firmware and software
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published