Skip to content

Integration

Patrick Lehmann edited this page Sep 8, 2015 · 5 revisions

Table of Content:

  1. Adding the Library and it's Dependencies as git submodules
  2. Configuring PoC on a Local System
  3. Creating PoC's my_config and my_project Files
  4. Compiling shipped Xilinx IPCores to Netlists

All Windows command line instructions are intended for Windows PowerShell, if not marked otherwise. So executing the following instructions in Windows Command Prompt (cmd.exe) won't function or result in errors! See the Requirements wiki page on where to download or update PowerShell.

The PicoBlaze-Library is meant to be integrated into HDL projects. Therefore it's recommended to create a library folder and add the PicoBlaze-Library as a git submodule. After the repository linking is done, some short configuration steps are required to setup paths and tool chains.

  • Step 1: Link the PoC-Library as a git submodule to a project repo.
  • Step 2: Run PoC's configuration routine to setup paths and tool chains.
  • Step 3: Create a my_config and a my_project file from template.
  • Step 4: Run netlist generation for pre-configured IP cores (optional).

1. Adding the Library and it's Dependencies as git submodules

The following command line instructions will create a library folder lib\ and clone all depenencies as git submodules into subfolders.

Linux:
Windows (PowerShell):
function gitsubmodule([string]$dir, [string]$url, [string]$name) {
  $p = pwd
  mkdir lib -ErrorAction SilentlyContinue; cd lib
  git submodule add $url $dir
  cd $dir
  git remote rename origin github
  cd $p
  git add .gitmodules "lib\$dir"
  git commit -m "Added new git submodule $dir in 'lib\$dir' ($name)."
}

cd <ProjectRoot>
gitsubmodule "PoC" "git@github.com:VLSI-EDA/PoC.git" "PoC-Library"
gitsubmodule "L_PicoBlaze" "git@github.com:Paebbels/PicoBlaze-Library.git" "PicoBalze-Library"
gitsubmodule "opbasm" "git@github.com:Paebbels/opbasm.git" "Open PicoBlaze Assembler"

2. Configuring PoC on a Local System

To run PoC's automated testbenches or use the netlist compilaltion scripts of PoC, it's required to configure a synthesis and simulation tool chain.

cd <ProjectRoot>
cd lib\PoC\
.\poc.ps1 --configure

3. Compiling shipped Xilinx IPCores (*.xco files) to netlists

The PicoBlaze-Library and the PoC-Library are shipped with some pre-configured IPCores from Xilinx. These IPCores are shipped as *.xco files and need to be compiled to netlists (*.ngc files) and there auxillary files (*.ncf files; *.vhdl files; ...). This can be done by invoking PoC's Netlist.py through one of the provided wrapper scripts: netlist.[sh|ps1].

Compiling needed IPCores from PoC for a KC705 board:

cd <ProjectRoot>
cd lib\PoC\netlist
foreach ($i in 1..15) {
  .\netlist.ps1 --coregen PoC.xil.ChipScopeICON_$i --board KC705
}

Compiling needed IP cores from L_PicoBlaze for a KC705 board:

cd ....
cd lib\L_PicoBlaze\netlist\<DeviceString>\
# TODO: write a script to regenerate all IP Cores
Clone this wiki locally