Design flow:
project file *.prj contains the names of all vhdl files for the design:
sample:
---------
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