All pastes #384486 Raw Edit

Anonymous

public text v1 · immutable
#384486 ·published 2007-03-07 02:49 UTC
rendered paste body

File Types:
(complete list on page 373 of the dev system reference guide)

prj - list of vhdl source files for input to xst
scr - script for input to xst
VHD - VHDL source file(s) - input to XST "synthesis" step
NGC - unknown acronym - XST netlist - output of XST "synthesis" step, input to "NGDbuild"
UCF - User Constraints File - input to "NGDbuild"
NGC - Native Generic Database - output of "NGDbuild", input to "mapping" step
NCD - Native Circuit Description - output of "mapping" step, input to place and route - also output of place and route
PCF - Physical Constraints File - output of "mapping" step
MRP - Map RePoprt - output of "mapping" step, human readable
ncd - native circuit description - output of "implementation" step


Design flow:

short version:

.vhd
synthesis
.ngc
ngdbuild  (.ucf added here)
.ngd
mapping
.ncd .pcf
placing
.ncd
routing
.ncd
bitgen
.bit


project file *.prj contains the names of all vhdl files for the design:

---------
vhdl work somefile.vhd
vhdl work otherfile.vhf
---------

work is a default library, not sure what thats all about

our device is the 2s200pq208-5

first step: synthesis.... uses xst

remember to set enviroment vars:

    source ~/xilinx/settings.sh"

xst has its own prompt, but the commands are long and you don't want to type them
use script mode... put the commands in a script file "foo.src", and run it like so:

    ~/xilinx/bin/lin/xst -ifn foo.scr -ofn log.file.name

that writes results to screen and log.file.name

So what goes in the script file?

----------------------------------------------------
    set -tmpdir ./tmp
    set -xsthdpdir ./work
    run
    -ifn foo.prj
    -ifmt VHDL
    -top some-entity-name
    -ofn foo.ngc
    -ofmt NGC
    -p 2s200pq208-5
----------------------------------------------------

(there can be more - later)

The result of this is "foo.ngc"

Next step - build NGD

    ngdbuild -uc constraints.ucf foo.ngc foo.ngd

  note: maybe should pass the unplaced .bmm file into ngdbuild?  -bm foo-unplaced.bmm

Next step - mapping

    map foo.ngd 

The biggie - place and route

    par -r foo.ncd foo-placed.ncd foo.pcf

    par -p foo-placed.ncd foo-routed.ncd foo.pcf

Make a bitfile

    bitgen foo-routed.ncd foo.bit foo.pcf

  Note: if there was an unplaced .bmmm file passed into ngdbuild, this should produce a placed one for use with data2mem? 

Merge ROM/RAM content
see http://home.mnet-online.de/al/BRAM_Bitstreams.html
(this is not correct yet)

to view the contents of a bitfile:

    data2mem -bm foo.bmm -bt foo.bit -d > viewable.file

to merde data from a data file into the bitfile"

    data2mem -bm foo.bm -bt foo.bit -bd data.mem -o b merged.bit

format of .mem:

@addr data data data
@addr data data data

addresses are only needed where there is a break in the data stream, not on every line

    data2mem -bm mapping.bmm -bd data.mem -bt foo.bit