Skip to content

Integration

Patrick Lehmann edited this page Jul 17, 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. Compiling shipped Xilinx IPCores (*.xco files) 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! PowerShell is shipped with Windows since Vista. See the requirements wiki page on where to download or update PowerShell.

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.

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 IPCores from L_PicoBlaze for a KC705 board:

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

See also

Clone this wiki locally