mirror of
https://github.com/wfjm/w11.git
synced 2026-01-15 00:12:31 +00:00
- major release w11a_V0.60 (tagged)
- after 0.581: documentation updates, no functional changes
- from 0.5 -> 0.6:
- revised ibus and rbus protocol; backend server rewritten; Nexys3 port;
Cypress Fx2 support; LP11,PC11 support
This commit is contained in:
parent
4732555297
commit
46331caebb
@ -1,4 +1,4 @@
|
||||
# $Id: INSTALL.txt 512 2013-04-28 07:44:02Z mueller $
|
||||
# $Id: INSTALL.txt 559 2014-06-06 21:26:47Z mueller $
|
||||
|
||||
Guide to install and build w11a systems, test benches and support software
|
||||
|
||||
@ -29,15 +29,30 @@ Guide to install and build w11a systems, test benches and support software
|
||||
All instructions below assume that the project files reside in a
|
||||
working directory with the name represented as <wdir>
|
||||
|
||||
To download latest tagged version (V0.5) of w11a
|
||||
- to download latest snapshot of trunk
|
||||
|
||||
cd <wdir>
|
||||
svn co http://opencores.org/ocsvn/w11/w11/tags/w11a_V0.5
|
||||
cd <wdir>
|
||||
svn co http://opencores.org/ocsvn/w11/w11/trunk
|
||||
|
||||
To download latest snapshot of trunk
|
||||
- to download tagged verions (from major releases)
|
||||
list available svn tags
|
||||
|
||||
svn ls http://opencores.org/ocsvn/w11/w11/tags
|
||||
|
||||
and download one of them
|
||||
|
||||
cd <wdir>
|
||||
svn co http://opencores.org/ocsvn/w11/w11/tags/<tag>
|
||||
|
||||
- to download specific svn revision (from minor releases)
|
||||
determine desired svn revsion from list given on
|
||||
http://opencores.org/project,w11,overview
|
||||
|
||||
and download
|
||||
|
||||
cd <wdir>
|
||||
svn co -r <rev> http://opencores.org/ocsvn/w11/w11/trunk
|
||||
|
||||
cd <wdir>
|
||||
svn co http://opencores.org/ocsvn/w11/w11/trunk
|
||||
|
||||
2. System requirements ----------------------------------------------------
|
||||
|
||||
@ -108,6 +123,10 @@ Guide to install and build w11a systems, test benches and support software
|
||||
export PATH=$PATH:$RETROBASE/tools/bin
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RETROBASE/tools/lib
|
||||
|
||||
To access the man pages update also the MANPATH
|
||||
|
||||
export MANPATH=$MANPATH:$RETROBASE/doc/man
|
||||
|
||||
In most cases the boost library version coming with the distribution will
|
||||
work, similar for Tcl, in those cases simply use
|
||||
|
||||
@ -352,18 +371,32 @@ Guide to install and build w11a systems, test benches and support software
|
||||
|
||||
8c. Available systems ------------------------------------------------
|
||||
|
||||
Note: Currently ready to build versions exist for
|
||||
Digilent S3BOARD (-1000 FPGA version)
|
||||
Digilent Nexys2 board (-1200 FPGA version)
|
||||
Digilent Nexys3 board
|
||||
Currently ready to build versions exist for
|
||||
- Digilent S3BOARD (-1000 FPGA version)
|
||||
- Digilent Nexys2 board (-1200 FPGA version)
|
||||
- Digilent Nexys3 board
|
||||
|
||||
Tarballs with ready to use bit file and and all logfiles from the tool
|
||||
chain can be downloaded from
|
||||
http://www.retro11.de/data/oc_w11/bitkits/
|
||||
This area is organized in folders for different releases. The tarball
|
||||
file names contain information about release, Xlinix tool, and design:
|
||||
<release>_<tool>_<design>.tgz
|
||||
|
||||
To build the designs locally use
|
||||
|
||||
1. rlink tester
|
||||
a. for Digilent Nexys2 board
|
||||
a. for Digilent S3BOARD
|
||||
|
||||
cd $RETROBASE/rtl/sys_gen/tst_rlink/s3board
|
||||
make sys_tst_rlink_s3.bit
|
||||
|
||||
b. for Digilent Nexys2 board
|
||||
|
||||
cd $RETROBASE/rtl/sys_gen/tst_rlink/nexys2
|
||||
make sys_tst_rlink_n2.bit
|
||||
|
||||
b. for Digilent Nexys3 board
|
||||
c. for Digilent Nexys3 board
|
||||
|
||||
cd $RETROBASE/rtl/sys_gen/tst_rlink/nexys3
|
||||
make sys_tst_rlink_n3.bit
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: README.txt 556 2014-05-29 19:01:39Z mueller $
|
||||
$Id: README.txt 559 2014-06-06 21:26:47Z mueller $
|
||||
|
||||
Release notes for w11a
|
||||
|
||||
@ -22,6 +22,7 @@ Release notes for w11a
|
||||
2. Files ---------------------------------------------------------------------
|
||||
|
||||
doc Documentation
|
||||
doc/man man pages for retro11 commands
|
||||
rtl VHDL sources
|
||||
rtl/bplib - board and component support libs
|
||||
rtl/bplib/atlys - for Digilent Atlys board
|
||||
@ -82,10 +83,40 @@ Release notes for w11a
|
||||
|
||||
3. Change Log ----------------------------------------------------------------
|
||||
|
||||
- w11a_V0.50 -> w11a_V0.60 cummulative summary of key changes
|
||||
- revised ibus protocol V2 (in w11a_V0.51)
|
||||
- revised rbus protocol V3 (in w11a_V0.52)
|
||||
- backend server rewritten in C++ and Tcl (in w11a_V0.53 and w11a_V0.562)
|
||||
- add Nexys3 port of w11a (in w11a_V0.54)
|
||||
- add Cypress FX2 support (in w11a_V0.56 and w11a_V0.57)
|
||||
- added LP11,PC11 support (in w11a_V0.58)
|
||||
- reference system now ISE 14.7 and Ubuntu 12.04 64 bit, ghdl 0.31
|
||||
- many code cleanups; use numeric_std
|
||||
- many documentation improvements
|
||||
- development status upgraded to beta (from alpha)
|
||||
|
||||
- trunk (2014-06-06: svn rev 23(oc) 559+(wfjm); tagged w11a_V0.60) +++++++++
|
||||
|
||||
- Summary
|
||||
- many documentation updates; no functional changes
|
||||
|
||||
- New features
|
||||
- Tarballs with ready to use bit files and and all logfiles from the tool
|
||||
chain can be downloaded from
|
||||
http://www.retro11.de/data/oc_w11/bitkits/
|
||||
This area is organized in folders for different releases. The tarball
|
||||
file names contain information about release, Xlinix tool, and design.
|
||||
|
||||
- Changes
|
||||
- documentation updates
|
||||
- URL of oskits changed, they are now unter
|
||||
http://www.retro11.de/data/oc_w11/oskits
|
||||
|
||||
- trunk (2014-05-29: svn rev 22(oc) 556(wfjm); untagged w11a_V0.581) ++++++++
|
||||
- summary
|
||||
|
||||
- Summary
|
||||
- new reference system
|
||||
- Switched from ISE 13.3 to 14.7.
|
||||
- switched from ISE 13.3 to 14.7.
|
||||
- map/par behaviour changed, unfortunately unfavorably for w11a.
|
||||
On Nexys3 no timing closure anymore for 80 MHz, only 72 MHz can
|
||||
be achieved now.
|
||||
|
||||
210
doc/man/man1/ti_rri.1
Normal file
210
doc/man/man1/ti_rri.1
Normal file
@ -0,0 +1,210 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: ti_rri.1 558 2014-06-01 22:20:51Z mueller $
|
||||
.\"
|
||||
.\" Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH TI_RRI 1 2013-05-20 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
ti_rri \- \fBRlink\fP Backend Server
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH SYNOPSIS
|
||||
.
|
||||
.SY ti_rri
|
||||
.OP OPTIONS
|
||||
.OP COMMANDS
|
||||
.YS
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
The \fBti_rri\fP command creates a \fBtclsh\fP(1) based \fBRlink\fP backend
|
||||
server session. After loading all basic packages and shared libraries which
|
||||
implement the tcl binding of the \fBRlink\fP server the command
|
||||
|
||||
.RS 2
|
||||
.PD 0
|
||||
.IP "-" 2
|
||||
creates the default \fIrlc\fP and \fIrls\fP commands representing the connection
|
||||
and the server objects
|
||||
.IP "-"
|
||||
loads additional tcl packages when requested with \fB\-\-pack\fP
|
||||
.IP "-"
|
||||
sets up logging and debug according to \fB\-\-log\fP, \fB\-\-logl\fP,
|
||||
\fB\-\-dmpl\fP, and \fB\-\-tiol\fP
|
||||
.IP "-"
|
||||
starts an additional process if requested with \fB\-\-run\fP
|
||||
.IP "-"
|
||||
opens a connection when requested with \fB\-\-fifo\fP,
|
||||
\fB\-\-term\fP, or \fB\-\-cuff\fP
|
||||
.IP "-"
|
||||
and finally executes all remaining \fICOMMANDS\fP arguments as tcl commands
|
||||
.PD
|
||||
.RE
|
||||
.PP
|
||||
If no \fICOMMANDS\fP are present or if the \fB\-\-int\fP options is given
|
||||
an interactive mode is entered with all features of \fBtclsh\fP(1) with
|
||||
tclreadline loaded.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH OPTIONS
|
||||
.\" ----------------------------------------------
|
||||
.IP \fB\-\-pack=\fIplist\fR
|
||||
load, with 'package require', additional packages. \fIplist\fP is a comma
|
||||
separated list of package names. Note that the packages
|
||||
.BR rutiltpp ,
|
||||
.BR rlinktpp ,
|
||||
and
|
||||
.BR rlink
|
||||
are automatically loaded already by \fBti_rri\fP.
|
||||
.
|
||||
.\" -- --run -------------------------------------
|
||||
.IP \fB\-\-run=\fIcmd\fR
|
||||
execute the shell command \fIcmd\fP as subprocess before the \fBrlink\fP
|
||||
port is opened. This is mainly used to start \fBghdl\fP(1) based test
|
||||
benches, usually via the \fBtbw\fP(1) wrapper script.
|
||||
.
|
||||
.\" -- --fifo ------------------------------------
|
||||
.IP \fB\-\-fifo\fR[=\fIname\fR[,\fIopts\fR]]
|
||||
open a fifo type \fBrlink\fP port. It uses a named pipe, and is usually
|
||||
employed in conjunction with the \fB\-\-run\fP option.
|
||||
Optional arguments are
|
||||
.RS
|
||||
.IP \fBname\fP
|
||||
name prefix for the named pipe file names. Default is 'rlink_cext_fifo'.
|
||||
Two fifo's are generated, one with a '_tx' and one with a '_tx' appended
|
||||
to the name prefix.
|
||||
.IP \fBopts\fP
|
||||
comma separated list of further options for the fifo port:
|
||||
.RS
|
||||
.PD 0
|
||||
.TP
|
||||
.B keep
|
||||
fifo is kept open on exit
|
||||
.PD
|
||||
.RE
|
||||
.RE
|
||||
.
|
||||
.\" -- --term ------------------------------------
|
||||
.IP \fB\-\-term\fR[=\fIname\fR[,\fIbaud\fR[,\fIopts\fR]]]
|
||||
open a serial port type \fBrlink\fP port. Optional arguments are
|
||||
.RS
|
||||
.IP \fBname\fP
|
||||
tty device name, default is 'USB0'. If \fIname\fP does not start with '/'
|
||||
the name is prefixed with '/dev/tty'.
|
||||
.IP \fBbaud\fP
|
||||
serial port baud rate, default is '115k'. Allowed baud rate settings are:
|
||||
.RS
|
||||
.PD 0
|
||||
.IP "" 3
|
||||
2400, 4800, 9600, 19200, 19k, 38400, 38k,
|
||||
57600, 57k, 115200, 115k, 230400, 230k,
|
||||
460800, 460k, 500000, 500k, 921600, 921k,
|
||||
1000000, 1000k, 1M, 1500000, 1500k,
|
||||
2000000, 2000k, 2M, 2500000, 2500k,
|
||||
3000000, 3000k, 3M, 4000000, 4000k, 4M
|
||||
.PD
|
||||
.RE
|
||||
.IP \fBopts\fP
|
||||
comma separated list of further options for the serial port connection:
|
||||
.RS
|
||||
.PD 0
|
||||
.IP \fBbreak\fP
|
||||
send a break, do autobaud
|
||||
.IP \fBcts\fP
|
||||
hardware flow control (cts/rts)
|
||||
.IP \fBxon\fP
|
||||
software flow control (xon/xoff)
|
||||
.PD
|
||||
.RE
|
||||
.RE
|
||||
.
|
||||
.\" -- --cuff ------------------------------------
|
||||
.IP \fB\-\-cuff\fR[=\fIname\fR[,\fIopts\fR]]
|
||||
open a USB via Cypress FX2 type \fBrlink\fP port. Optional arguments are
|
||||
.RS
|
||||
.IP \fBname\fP
|
||||
USB path, default derived from environment variables RETRO_FX2_VID and
|
||||
RETRO_FX2_PID.
|
||||
.IP \fBopts\fP
|
||||
comma separated list of further options for the fifo port:
|
||||
.RS
|
||||
.PD 0
|
||||
.IP \fBtrace\fP
|
||||
trace USB activities
|
||||
.PD
|
||||
.RE
|
||||
.RE
|
||||
.
|
||||
.\" -- --log ------------------------------------
|
||||
.IP \fB\-\-log=\fIfile\fR
|
||||
set log file name. Default is to write to \fBstdout\fP(3).
|
||||
.
|
||||
.\" -- --logl -----------------------------------
|
||||
.IP \fB\-\-logl=\fIlvl\fR
|
||||
set rlink logging level. Default is '2', allowed values are:
|
||||
.RS
|
||||
.PD 0
|
||||
.IP \fB0\fP 3
|
||||
no logging
|
||||
.IP \fB1\fP 3
|
||||
log rlink commands with communication errors
|
||||
.IP \fB2\fP 3
|
||||
log rlink commands with failed checks
|
||||
.IP \fB3\fP 3
|
||||
log all rlink commands
|
||||
.PD
|
||||
.RE
|
||||
.
|
||||
.\" -- --dmpl -----------------------------------
|
||||
.IP \fB\-\-dmpl=\fIlvl\fR
|
||||
set rlink dump level. Default is '0', allowed values are as for the
|
||||
\fB\-\-logl\fP option.
|
||||
.
|
||||
.\" -- --tiol -----------------------------------
|
||||
.IP \fB\-\-tiol=\fIlvl\fR
|
||||
set I/O trace level. Default is '0', allowed values are:
|
||||
.RS
|
||||
.PD 0
|
||||
.IP \fB0\fP 3
|
||||
no I/O trace
|
||||
.IP \fB1\fP 3
|
||||
trace buffer activities
|
||||
.IP \fB2\fP 3
|
||||
trace character activities
|
||||
.PD
|
||||
.RE
|
||||
.
|
||||
.\" -- --int ------------------------------------
|
||||
.IP \fB\-\-int\fP
|
||||
enter interactive mode even when further tcl commands are given on the
|
||||
\fBti_rri\fP command line.
|
||||
.
|
||||
.\" -- --help -----------------------------------
|
||||
.IP \fB\-\-help\fP
|
||||
print help text and exit
|
||||
.
|
||||
.\" -- -- ---------------------------------------
|
||||
.IP \fB\-\-\fP
|
||||
all following arguments are treated as tcl commands.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH COMMANDS
|
||||
For arguments of the form '@<name>.tcl' the respective file is
|
||||
sourced. All other arguments are treated as Tcl commands and executed
|
||||
with eval.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH EXAMPLES
|
||||
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR ti_w11 (1),
|
||||
.BR ghdl (1),
|
||||
.BR tbw (1),
|
||||
.BR tclsh (1)
|
||||
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
89
doc/man/man1/ti_w11.1
Normal file
89
doc/man/man1/ti_w11.1
Normal file
@ -0,0 +1,89 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: ti_w11.1 550 2014-02-03 08:16:57Z mueller $
|
||||
.\"
|
||||
.\" Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH TI_W11 1 2013-05-20 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
ti_w11 \- Quick starter for \fBti_rri\fP with \fBw11\fP CPU designs
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH SYNOPSIS
|
||||
.
|
||||
.SY ti_w11
|
||||
.OP OPTIONS
|
||||
.OP "ti_rri options and commands"
|
||||
.YS
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
Generates the \fBti_rri\fP(1) commands for starting the \fBrri\fP backend
|
||||
in standard configurations with \fBw11\fP CPU designs. Connections to
|
||||
FPGA boards as well as to \fPghdl\fP based simulations are supported.
|
||||
|
||||
Since \fBti_w11\fP is only a quick starter for \fBti_rri\fP(1) this man page
|
||||
will only describe briefly the \fBti_w11\fP specific options, for any further
|
||||
detail consult the \fBti_rri\fP(1) man page.
|
||||
|
||||
\fBti_w11\fP will print the generated \fBti_rri\fP(1) command to stdout before
|
||||
executing it.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH OPTIONS
|
||||
.SS "setup options for FPGA connects"
|
||||
.IP \fB-u\fP
|
||||
use \fB\-\-cuff\fP connect (USB via Cypress FX2)
|
||||
.IP \fB-t\fIDN\fR[,\fIopts\fP]
|
||||
use \fB\-\-term\fP connect, \fID\fP specifies device name, \fIN\fP
|
||||
specified the device number, and \fIopts\fP the addtional options
|
||||
a \fB\-\-term\fP can hold (e.g. break or xon). \fID\fP is mapped as
|
||||
.RS
|
||||
.PD 0
|
||||
.IP \fBs\fP 4
|
||||
use /dev/ttyS* (* is device number \fIN\fP)
|
||||
.IP \fBu\fP 4
|
||||
use /dev/ttyUSB* (* is device number \fIN\fP)
|
||||
.PD
|
||||
.RE
|
||||
.
|
||||
.SS "setup options for ghdl simulation runs"
|
||||
.IP \fB-s3\fP
|
||||
start \fItb_w11a_s3\fP simulation (w11a on S3BOARD)
|
||||
.IP \fB-n2\fP
|
||||
start \fItb_w11a_n2\fP simulation (w11a on Nexys2 board)
|
||||
.IP \fB-n3\fP
|
||||
start \fItb_w11a_n3\fP simulation (w11a on Nexys3 board)
|
||||
.
|
||||
.SS "common options"
|
||||
.IP \fB-e "\fR=\fIfile"\fR
|
||||
load and execute \fIfile\fP. If the file type is '.mac' the file will
|
||||
be on the fly compiled with \fBasm-11\fP(1), for all other file types
|
||||
it is assumed that the are in \fBlda\fP(5) format.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH EXAMPLES
|
||||
.IP "\fBti_w11 -u @211bsd_rk_boot.tcl\fR" 4
|
||||
Assumes a FPGA board, with a \fBw11\fP CPU design already configured,
|
||||
is connected via USB. \fBti_rri\fP(1) will be started and the given
|
||||
boot script executed.
|
||||
|
||||
.IP "\fBti_w11 -n3 -e $RETROBASE/tools/asm-11/w11/sys/dl11/simple_out.mac\fR"
|
||||
Will start the \fItb_w11a_n3 test\fP bench in \fBghdl\fP(1), on the fly
|
||||
compile the \fIsimple_out.mac\fP test program with \fBasm-11\fP(1), load
|
||||
and execute it. This little test code just produces
|
||||
.EX
|
||||
Hello world!
|
||||
Hello world!
|
||||
.EE
|
||||
forever, just abort with ^C if you have seen enough.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR ti_rri (1),
|
||||
.BR asm-11 (1)
|
||||
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
469
doc/man/man1/vbomconv.1
Normal file
469
doc/man/man1/vbomconv.1
Normal file
@ -0,0 +1,469 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: vbomconv.1 558 2014-06-01 22:20:51Z mueller $
|
||||
.\"
|
||||
.\" Copyright 2010-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH VBOMCONV 1 2013-10-20 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
vbomconv \- generate files and actions from vbom manifest files
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH SYNOPSIS
|
||||
.
|
||||
.SY vbomconv
|
||||
.B \-\-help
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-dep_xst
|
||||
|
|
||||
.B \-\-dep_ghdl
|
||||
|
|
||||
.B \-\-dep_isim
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-xst_prj
|
||||
|
|
||||
.B \-\-isim_prj
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-ghdl_a_cmd
|
||||
|
|
||||
.B \-\-ghdl_a
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-ghdl_i_cmd
|
||||
|
|
||||
.B \-\-ghdl_i
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-ghdl_m_cmd
|
||||
|
|
||||
.B \-\-ghdl_m
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.BI \-\-xst_export "\fR=\fPpath"
|
||||
|
|
||||
.BI \-\-ghdl_export "\fR=\fPpath"
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.BI \-\-isim_export "\fR=\fPpath"
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-get_top
|
||||
.I vbom
|
||||
.
|
||||
.SY vbomconv
|
||||
.OP \-\-trace
|
||||
.B \-\-flist
|
||||
.I vbom
|
||||
.YS
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SS Introduction
|
||||
\fBvbomconv\fP is the central tool in a build system for
|
||||
\fIvhdl\fP projects. Each \fIvhdl\fP source file has an associated
|
||||
manifest file in \fBvbom\fP(5) format which contains a list of used
|
||||
libraries and instantiated components, and the name of the
|
||||
associated vhdl source file.
|
||||
The instantiated components are defined via their \fBvbom\fP file.
|
||||
All file names are relative to the current directory.
|
||||
A recursive traversal through all \fBvbom\fP's
|
||||
gives for each vhdl entity all the sources files needed to compile it,
|
||||
with duplicates removed and in proper compilation order, thus libraries first
|
||||
and top level design last.
|
||||
|
||||
The \fBvbomconv\fP tool does this traversal of \fBvbom\fP
|
||||
files and generates, depending on command line options, the files and/or
|
||||
commands needed to run a synthesis tool or to build a simulation model.
|
||||
Currently supported is synthesis with ISE \fBxst\fP and simulation with
|
||||
\fBghdl\fP(1) or ISE \fBISim\fP.
|
||||
\fBvbomconv\fP therefore currently generates
|
||||
|
||||
.PD 0
|
||||
.IP "\fB- xst\fP" 8
|
||||
project files
|
||||
.IP "\fB- ghdl\fP" 8
|
||||
commands for analysis, inspection and make step
|
||||
.IP "\fB- ISim\fP" 8
|
||||
project files
|
||||
.IP "\fB- make\fP" 8
|
||||
dependency files
|
||||
.PD
|
||||
|
||||
.PP
|
||||
Key advantage of this approach is that the individual \fBvbom\fP
|
||||
files are easy to maintain. They reflect the libraries and components used
|
||||
in the vhdl source they describe, a structural change in the vhdl source
|
||||
usually implies an update of the vbom. The project files are automatically
|
||||
generated from this 'local' information, which can be of great help in
|
||||
projects with many top level designs which large number of entities in
|
||||
different constellations.
|
||||
|
||||
\fBvbomconv\fP is usually embedded in a GNU \fBmake\fP(1) based build system.
|
||||
The \fIMakefile\fP's in general just contain a few definitions and includes,
|
||||
the whole \fBvbomconv\fP magic is encapsulated in some pattern rules for
|
||||
simulation and synthesis.
|
||||
Some are given in the EXAMPLES section.
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SS Principle of Operation
|
||||
\fBvbomconv\fP will start with processing the \fIvbom\fP
|
||||
file given as argument.
|
||||
Each file name extracted from a \fBvbom\fP is prepended with the directory
|
||||
path of the \fBvbom\fP.
|
||||
This ensures that all file names are relative to working directory under
|
||||
which \fBvbomconv\fP was started, even though each \fBvbom\fP file holds
|
||||
only file names which are relative to the \fBvbom\fP.
|
||||
|
||||
\fBvbomconv\fP expects that the entries in the \fBvbom\fP's
|
||||
are ordered, libraries first, than the components in the order they are
|
||||
instantiated, finally the name of the associated source file.
|
||||
Each \fI.vhd\fP file is added to a table of source files.
|
||||
Each \fI.vbom\fP file is added to a list of \fBvbom\fP's
|
||||
to be processed if it hasn't been processed yet.
|
||||
The sub-\fBvbom\fP's are processed in the order they were found which
|
||||
leads to breadth-first traversal of the \fBvbom\fP tree.
|
||||
|
||||
After all \fBvbom\fP's
|
||||
are processed a ranking algorithm will generate an ordered list of source
|
||||
files in proper compilation order. This ensures that libraries are compiled
|
||||
before a source refers to them with a '\fIuse\fP' clause, and that entities
|
||||
are compiled before they are refered to by an explicit instatiation.
|
||||
|
||||
The \fBvbom\fP file format supports conditional inclusion of files via a
|
||||
condition prefix.
|
||||
The main purpose of this mechanism is to handle libraries and components
|
||||
which are only refered in
|
||||
.EX
|
||||
-- synthesis translate_off
|
||||
-- synthesis translate_on
|
||||
.EE
|
||||
sections and are used only for simulation.
|
||||
|
||||
The \fBvbom\fP file format has a logical name mechanism to support the
|
||||
\fIconfiguration\fP mechanism of vhdl. A logical name can be defined with
|
||||
.EX
|
||||
<lname> = <filename>
|
||||
.EE
|
||||
and it can be used with
|
||||
.EX
|
||||
<lname> : <filename>
|
||||
.EE
|
||||
The first definition seen in the \fIvbom\fP
|
||||
traversal is taken, all others are ignored. The filename in the usage clause
|
||||
is the default used in case the logical name wasn't defined.
|
||||
|
||||
Last but not least are 3 directives defined in the \fBvbom\fP
|
||||
file format:
|
||||
.
|
||||
.IP "\fB@top\fP:\fIname\fP"
|
||||
allows to specify the top level design name in case it differs from the
|
||||
stem of the \fIvbom\fP file name.
|
||||
.
|
||||
.IP "\fB@lib\fP:\fIname\fP"
|
||||
allows to specify additional system libraries. Currently used to indicate
|
||||
that the \fIunisim\fP or \fIsimprim\fP libraries are needed by \fBghdl\fP.
|
||||
.
|
||||
.IP "\fB@ucf_cpp\fP:\fIfile\fP"
|
||||
indicates that a \fIfile\fP.ucf file is to be generated by \fBcpp\fP(1)
|
||||
from a \fIfile\fP.ucf_cpp source file. This allows to modularize ISE ucf files.
|
||||
.PP
|
||||
The full description of the file format and examples are given in a
|
||||
separate man page \fBvbom\fP(5).
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SH USAGE
|
||||
The \fBvbomconv\fP command has the form
|
||||
.IP "" 4
|
||||
.B vbomconv
|
||||
.RI [ options ]
|
||||
.RI [ action ]
|
||||
.I vbom
|
||||
.PP
|
||||
and must be called, with the exception of the \fB\-\-help\fP case, with
|
||||
exactly one \fIvbom\fP file.
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SH OPTIONS
|
||||
.P
|
||||
.IP \fB\-\-trace\fP
|
||||
Gives a detailed trace, written to \fIstderr\fP,
|
||||
of the vbom file traversal and processing, the process of source file ranking
|
||||
to determine the compilation order, and of the final internal file list and
|
||||
property table.
|
||||
.
|
||||
.SH ACTIONS
|
||||
.P
|
||||
.\" ----------------------------------------------
|
||||
.IP \fB\-\-help\fP
|
||||
Prints a usage summary to \fIstdout\fP and quits. This action is the only
|
||||
one not requiring a \fIvbom\fP file.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.TP
|
||||
.B \-\-dep_xst
|
||||
.TQ
|
||||
.B \-\-dep_ghdl
|
||||
.TQ
|
||||
.B \-\-dep_isim
|
||||
These three actions write to \fIstdout\fP dependency rules for inclusion in
|
||||
\fIMakefile\fPs.
|
||||
Together with an appropruate pattern rule they allow to automatitize
|
||||
the dependency handling, see the EXAMPLES section for practical usage.
|
||||
|
||||
\fB\-\-dep_xst\fP creates the dependencies for \fBxst\fP
|
||||
synthesis make flows and produces the following types of dependencies
|
||||
.EX
|
||||
\fI<stem>\fP.ngc : \fI<stem>\fP.dep_xst
|
||||
\fI<stem>\fP.ngc : \fB*\fP.vhd
|
||||
\fI<stem>\fP.dep_xst : \fB*\fP.vbom
|
||||
.EE
|
||||
with \fB*\fP indicating that one rule will be generated for each file
|
||||
involved.
|
||||
|
||||
If a \fB@ucf_cpp\fP directive was found also rules describing the
|
||||
.I ucf
|
||||
file handling are added
|
||||
.EX
|
||||
<stem>.ncd : <stem>.ucf
|
||||
include sys_w11a_n2.dep_ucf_cpp
|
||||
.EE
|
||||
If this mechanism is used the \fIMakefile\fP must contain, usually via
|
||||
another include, a pattern rule to create the \fI.dep_ucf_cpp\fP file,
|
||||
for example
|
||||
.EX
|
||||
%.dep_ucf_cpp : %.ucf_cpp
|
||||
cpp -I${RETROBASE}/rtl -MM $*.ucf_cpp |\\
|
||||
sed 's/\.o:/\.ucf:/' > $*.dep_ucf_cpp
|
||||
.EE
|
||||
|
||||
\fB\-\-dep_ghdl\fP creates the dependencies for \fBghdl\fP
|
||||
based simulation models and produces the following types of dependencies
|
||||
.EX
|
||||
\fI<stem>\fP : \fI<stem>\fP.dep_ghdl
|
||||
\fI<stem>\fP : \fB*\fP.vhd
|
||||
\fI<stem>\fP.dep_ghdl : \fB*\fP.vbom
|
||||
.EE
|
||||
|
||||
\fB\-\-dep_isim\fP creates the dependencies for ISE \fBISim\fP
|
||||
based simulation models and produces the following types of dependencies
|
||||
.EX
|
||||
\fI<stem>\fP_ISim : \fI<stem>\fP.dep_isim
|
||||
\fI<stem>\fP_ISim : \fB*\fP.vhd
|
||||
\fI<stem>\fP.dep_isim : \fB*\fP.vbom
|
||||
.EE
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.TP
|
||||
.B \-\-xst_prj
|
||||
.TQ
|
||||
.B \-\-isim_prj
|
||||
These two actions write to \fIstdout\fP a project file suitable for ISE
|
||||
\fBxst\fP or \fBISim\fP, respectively.
|
||||
The vhdl source files are in proper compilation order. See
|
||||
the EXAMPLES section for practical usage in a make flow.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.TP
|
||||
.B \-\-ghdl_a_cmd
|
||||
.TQ
|
||||
.B \-\-ghdl_a
|
||||
The \fB\-\-ghdl_a_cmd\fP action writes to \fIstdout\fP a list of
|
||||
\fB"ghdl -a"\fP commands for the \fBghdl\fP analysis step.
|
||||
The commands are in proper compilation order. The \fB\-\-ghdl_a\fP
|
||||
action immediately executes these commands via \fBexec\fP(3).
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.TP
|
||||
.B \-\-ghdl_i_cmd
|
||||
.TQ
|
||||
.B \-\-ghdl_i
|
||||
The \fB\-\-ghdl_i_cmd\fP action writes to \fIstdout\fP
|
||||
a \fB"ghdl -i"\fP command for the \fBghdl\fP inspection step with all
|
||||
source file names in proper compilation order. The \fB\-\-ghdl_i\fP
|
||||
action immediately executes this command via \fBexec\fP(3).
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.TP
|
||||
.B \-\-ghdl_m_cmd
|
||||
.TQ
|
||||
.B \-\-ghdl_m
|
||||
The \fB\-\-ghdl_m_cmd\fP action writes to \fIstdout\fP
|
||||
a \fB"ghdl -m"\fP command for the \fBghdl\fP inspection make with all
|
||||
required library and external object file qualifiers.
|
||||
The \fB\-\-ghdl_m\fP action immediately executes this command via
|
||||
\fBexec\fP(3).
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.TP
|
||||
.BI \-\-xst_export \fR=\fPpath
|
||||
.TQ
|
||||
.BI \-\-ghdl_export \fR=\fPpath
|
||||
.TQ
|
||||
.BI \-\-isim_export \fR=\fPpath
|
||||
These three actions create a flat copy of all source files needed for a
|
||||
\fBxst\fP synthesis or a \fBghdl\fP or \fBISim\fP
|
||||
simulation model in the directory \fIpath\fP.
|
||||
The sub directory structure is lost, all files will be in directory
|
||||
\fIpath\fP. This is for example helpful for setting up an ISE project.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP \fB\-\-get_top\fP
|
||||
Returns the top level entity name to \fIstdout\fP.
|
||||
Is by default the stem of the \fIvbom\fP file name, or given by a
|
||||
\fB@top\fP directive picked up during \fBvbom\fP traversal.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP \fB\-\-flist\fP
|
||||
Write an alphabetically sorted list of all source and vbom files to
|
||||
\fIstdout\fP.
|
||||
This information is for example helpful to build a project export tool.
|
||||
Note that in contrast to most other actions the files are not in compilation
|
||||
but in alphabetic order, and that also the \fBvbom\fP files are included
|
||||
in this list.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH EXIT STATUS
|
||||
Returns a non-zero exit status when the
|
||||
.I vbom
|
||||
file is not found or readable or none or multiple actions are given.
|
||||
.PP
|
||||
The \fB\-\-ghdl_a\fP, \fB\-\-ghdl_i\fP, or \fB\-\-ghdl_m\fP
|
||||
actions use \fBexec\fP(3) to execute the \fBghdl\fP command.
|
||||
In these cases the caller will see the exit status of \fBghdl\fP.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH BUGS
|
||||
.IP \(bu 2
|
||||
Duplicate file elimination fails when one source file is refered to by
|
||||
different \fIvbom\fP's
|
||||
with different paths, like for example the file
|
||||
.I aa/bb/cc/foo.vdh
|
||||
seen from
|
||||
.I aa/xx/yy
|
||||
via
|
||||
.EX
|
||||
../../bb/cc/foo.vhd
|
||||
../../../aa/bb/cc/foo.vdh
|
||||
.EE
|
||||
The synthesis and simulation tools will react with sometimes hard to
|
||||
trace error messages.
|
||||
.br
|
||||
To avoid this problem ensure that building of the relative paths
|
||||
is always done with the minimal number of \fI../\fP to reach the file.
|
||||
.
|
||||
.IP \(bu 2
|
||||
The handling of \fIucf\fP files with the \fB@ucf_cpp\fP directive
|
||||
is a kludge and should be revised.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH EXAMPLES
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SS Auto-Dependency Generation
|
||||
The \fB\-\-dep_xst\fP, \fB\-\-dep_ghdl\fP and \fB\-\-dep_isim\fP
|
||||
actions allow to setup together with the auto-rebuild and restart semantics
|
||||
of the GNU \fBmake\fP(1) \fIinclude\fP directive to fully automatize the
|
||||
proper generation of dependencies.
|
||||
Just add to the \fIMakefile\fP
|
||||
a pattern rule to create the dependency rule files from the \fBvbom\fP
|
||||
files and include them. In case they don't yet exists or are out of date
|
||||
\fBmake\fP(1) will (re-)create them and restart. Example for using
|
||||
\fB\-\-dep_xst\fP in a \fIMakefile\fP :
|
||||
.PP
|
||||
.EX
|
||||
VBOM_all = $(wildcard *.vbom)
|
||||
...
|
||||
%.dep_xst: %.vbom
|
||||
vbomconv --dep_xst $< > $@
|
||||
...
|
||||
include $(VBOM_all:.vbom=.dep_xst)
|
||||
.EE
|
||||
.PP
|
||||
After renames and deletions of source files the dependency rule files can have
|
||||
dangling entries which cause 'No rule to make target' errors. In that case
|
||||
just delete all '.dep_*' files. The script \fBrm_dep\fP(1)
|
||||
will do that recursively for a whole directory tree.
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SS Xst Synthesis
|
||||
A simple \fBmake\fP(1) flow for synthesis with \fBxst\fP using
|
||||
ISE \fBxflow\fP and the \fB\-\-xst_prj\fP action and a pattern
|
||||
rule looks like
|
||||
.PP
|
||||
.EX
|
||||
%.ngc: %.vbom
|
||||
if [ ! -d ./ise ]; then mkdir ./ise; fi
|
||||
(cd ./ise; vbomconv --xst_prj ../$< > $*.prj)
|
||||
(cd ./ise; touch $*.xcf)
|
||||
xtwi xflow -wd ise -synth xst_vhdl.opt $*.prj
|
||||
(cd ./ise; chmod -x *.* )
|
||||
if [ -r ./ise/$*.ngc ]; then cp -p ./ise/$*.ngc .; fi
|
||||
if [ -r ./ise/$*_xst.log ]; then cp -p ./ise/$*_xst.log .; fi
|
||||
.EE
|
||||
.PP
|
||||
It creates a working directory \fI./ise\fP, the xst project file, runs
|
||||
\fBxst\fP via ISE \fBxflow\fP, and copies the \fIngc\fP and \fIlog\fP files
|
||||
back into the working directory.
|
||||
The ISE environment is started with \fBxtwi\fR(1) wrapper.
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SS Ghdl Simulation
|
||||
A simple \fBmake\fP(1) flow for building a \fBghdl\fP simulation model from
|
||||
the sources described by a \fBvbom\fP file is given by the following
|
||||
pattern rule:
|
||||
.PP
|
||||
.EX
|
||||
% : %.vbom
|
||||
vbomconv --ghdl_i $<
|
||||
vbomconv --ghdl_m $<
|
||||
.EP
|
||||
.
|
||||
.\" --------------------------------------------------------
|
||||
.SS Collecting Statistics
|
||||
A simple way to determine the number of sources involved in a
|
||||
synthesis or simulation model is to count with \fBwc\fP(1)
|
||||
the lines of a \fB\-\-xst_prj\fP or \fB\-\-isim_prj\fP
|
||||
output like in
|
||||
.PP
|
||||
.EX
|
||||
vbomconv --xst_prj sys_w11a_n2.vbom | wc
|
||||
vbomconv --ghdl_a_cmd tb_w11a_n2.vbom | wc
|
||||
vbomconv --isim_prj tb_w11a_n2.vbom | wc
|
||||
.EP
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR vbom (5),
|
||||
.BR rm_dep (1),
|
||||
.BR ghdl (1),
|
||||
.BR xtwi (1),
|
||||
.BR cpp (1),
|
||||
.br
|
||||
.BR xilinx_ghdl_simprim (1),
|
||||
.BR xilinx_ghdl_unisim (1)
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
55
doc/man/man1/xtwi.1
Normal file
55
doc/man/man1/xtwi.1
Normal file
@ -0,0 +1,55 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: xtwi.1 558 2014-06-01 22:20:51Z mueller $
|
||||
.\"
|
||||
.\" Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH XTWI 1 2013-11-10 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
xtwi \- Xilinx Tool Wrapper script for ISE
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH SYNOPSIS
|
||||
.
|
||||
.SY xtwi
|
||||
.OP COMMAND
|
||||
.YS
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
The Xilinx ISE setup script redefines PATH and LD_LIBRARY_PATH. The ISE
|
||||
tools run fine in this environment, but other installed programs on the
|
||||
system can (and actually do) fail. \fBxtwi\fP helps to keep the ISE
|
||||
environment separate from the normal working environment.
|
||||
|
||||
The environment variable XTWI_PATH must be setup to the install path
|
||||
of the ISE version to be used. Without the /ISE_DS/ which is added
|
||||
by the ISE installation procedure.
|
||||
|
||||
\fBxtwi\fP uses XTWI_PATH to locate the ISE setup script, sources it,
|
||||
and execs the \fICOMMAND\fP. This way \fICOMMAND\fP is executed in the
|
||||
ISE environment, while the login shell stays clean.
|
||||
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH ENVIRONMENT
|
||||
.TP 4
|
||||
.B XTWI_PATH
|
||||
Install path of ISE, without the /ISE_DS/ appended by ISE installation
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH FILES
|
||||
.TP 4
|
||||
$XTWI_PATH/ISE_DS/settings32.sh
|
||||
.TQ
|
||||
$XTWI_PATH/ISE_DS/settings64.sh
|
||||
ISE setup script located and sourced on 32 or 64 bit systems
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR xtwv (1)
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
54
doc/man/man1/xtwv.1
Normal file
54
doc/man/man1/xtwv.1
Normal file
@ -0,0 +1,54 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: xtwv.1 558 2014-06-01 22:20:51Z mueller $
|
||||
.\"
|
||||
.\" Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH XTWV 1 2014-04-21 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
xtwv \- Xilinx Tool Wrapper script for Vivado
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH SYNOPSIS
|
||||
.
|
||||
.SY xtwv
|
||||
.OP COMMAND
|
||||
.YS
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
The Xilinx Vivado setup script redefines PATH and potentially LD_LIBRARY_PATH.
|
||||
The Vivado tools run fine in this environment, but other installed programs
|
||||
on the system might fail. \fBxtwv\fP helps to keep the Vivado environment
|
||||
separate from the normal working environment.
|
||||
|
||||
The environment variable XTWV_PATH must be setup to the install path
|
||||
of the Vivado version to be used.
|
||||
|
||||
\fBxtwv\fP uses XTWV_PATH to locate the Vivado setup script, sources it,
|
||||
and execs the \fICOMMAND\fP. This way \fICOMMAND\fP is executed in the
|
||||
Vivado environment, while the login shell stays clean.
|
||||
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH ENVIRONMENT
|
||||
.TP 4
|
||||
.B BXTWV_PATH
|
||||
Install path of Vivado
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH FILES
|
||||
.TP 4
|
||||
$XTWV_PATH/settings32.sh
|
||||
.TQ
|
||||
$XTWV_PATH/settings64.sh
|
||||
Vivado setup script located and sourced on 32 or 64 bit systems
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR xtwi (1)
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
@ -1,74 +1,156 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: vbom.5 522 2013-05-24 17:50:29Z mueller $
|
||||
.\" $Id: vbom.5 558 2014-06-01 22:20:51Z mueller $
|
||||
.\"
|
||||
.\" Copyright 2010- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\" Copyright 2010-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH VBOM 2010-07-25 "Retro Project" "Retro Project Manual"
|
||||
.TH VBOM 2013-10-20 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
vbom \- 'vhdl bill of material' file format
|
||||
vbom \- vhdl manifest file format - 'vhdl bill of material'
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
These files describe the sources needed to build a \fIvhdl\fP
|
||||
module. The source files are either given directly in case of libraries
|
||||
or via other \fIvbom\fP's in case of instantiated components.
|
||||
\fBvbom\fP files describe the sources needed to build a \fIvhdl\fP
|
||||
entity. The source files are either given directly in case of libraries
|
||||
or via other \fBvbom\fP's in case of instantiated components.
|
||||
They are used by \fBvbomconv\fP(1) to build project descriptions
|
||||
for synthesis and simulation tools.
|
||||
|
||||
The format has four types of lines:
|
||||
\fBvbomconv\fP expects that the entries in the \fBvbom\fP's
|
||||
are ordered, libraries first, than the components in the order they are
|
||||
instantiated, finally the name of the associated source file.
|
||||
|
||||
The format has five types of lines:
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP \fBcomments\fP
|
||||
each line starting with \fB#\fP is treated as comment and ignored.
|
||||
.IP \fBComments\fP 4
|
||||
Each line starting with '\fB#\fP' is treated as comment and ignored.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fBfile names\fP"
|
||||
either source files with a '\fI.vhd\fP' file type or nested \fIvbom\fP's
|
||||
with a '\fI.vbom\fP' file type. The must be given as relative path name
|
||||
from the directory the \fIvbom\fP file is located in.
|
||||
Absolute path names are not allowed, nor is expansion of environment variables.
|
||||
.IP "\fBFile names\fP"
|
||||
Either source files or nested \fBvbom\fP's. The file names must be given
|
||||
as relative path name from the directory the \fBvbom\fP file is located in.
|
||||
Absolute path names are not allowed, nor is expansion of environment variables.
|
||||
|
||||
Currently three file types are accepted:
|
||||
.RS
|
||||
.IP "\fB.vbom\fP" 6
|
||||
refers to a nested \fBvbom\fP. Usually used for instantiated components.
|
||||
.
|
||||
.IP "\fB.vhd\fP"
|
||||
refers to a source file. Usually used for libraries refered to in 'use'
|
||||
clauses, and as last file, the source file of the entity which is
|
||||
described by this \fBvbom\fP file.
|
||||
.
|
||||
.IP "\fB.c\fP"
|
||||
refers to the C source which implements a \fIvhdl\fP function or procedure
|
||||
via the \fIvhpi\fP mechanism. Supported only in conjunction with \fBghdl\fP.
|
||||
.
|
||||
.RE
|
||||
.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fBlogical names\fP"
|
||||
.IP "\fBConditional file names\fP"
|
||||
File names can be preceeded by a condition prefix of the form
|
||||
|
||||
.EX
|
||||
[\fItag\fP]filename
|
||||
[\fItag\fP,\fItag\fP,...]filename
|
||||
.EE
|
||||
|
||||
The main purpose of this mechanism is to handle libraries and components
|
||||
which are only refered in
|
||||
.EX
|
||||
-- synthesis translate_off
|
||||
-- synthesis translate_on
|
||||
.EE
|
||||
sections and are used only for simulation.
|
||||
|
||||
Currently supported \fItag\fP names are
|
||||
.RS
|
||||
.RS 3
|
||||
.PD 0
|
||||
.IP "\fBxst\fP" 6
|
||||
included in conjunction with xst synthesis
|
||||
.IP "\fBghdl\fP"
|
||||
included in conjunction with ghdl simulation
|
||||
.IP "\fBisim\fP"
|
||||
included in conjunction with isim simulation
|
||||
.IP "\fBsim\fP"
|
||||
included in conjunction with simulation (ghdl or isim)
|
||||
.PD
|
||||
.RE
|
||||
.RE
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fBLogical names\fP"
|
||||
A logical name can be defined with
|
||||
.EX
|
||||
<lname> = <filename>
|
||||
.EE
|
||||
The first definition of a logical name encountered in the traversal of the
|
||||
\fIvbom\fP's by \fBvbomconv\fP(1) is taken, all later definitions are ignored.
|
||||
\fBvbom\fP's by \fBvbomconv\fP(1) is taken, all later definitions are ignored.
|
||||
|
||||
A logical name can be used with
|
||||
.EX
|
||||
<lname> : <filename>
|
||||
.EE
|
||||
If it wasn't ???
|
||||
|
||||
The filename in the usage clause is the default used in case the
|
||||
logical name wasn't defined before it is used.
|
||||
|
||||
Again, the filenames, either of type \fI.vhd\fP or \fI.vbom\fP ,
|
||||
must be given as relative path name from the directory the \fIvbom\fP
|
||||
must be given as relative path name from the directory the \fBvbom\fP
|
||||
file is located in.
|
||||
|
||||
The definition clause just sets up the logical name for later usage.
|
||||
The usage clause
|
||||
|
||||
.\" ----------------------------------------------
|
||||
.IP \fBdirectives\fP
|
||||
The format is simple, essentially a list of file names, either
|
||||
source files with a '\fI.vhd\fP' file type or nested \fIvbom\fP's
|
||||
with a '\fI.vbom\fP' file type.
|
||||
Lines starting with \fB#\fP are treated as comments.
|
||||
|
||||
|
||||
.IP \fBDirectives\fP
|
||||
Directives start with a '\fB@\fP', currently implemented are:
|
||||
.RS
|
||||
.IP "\fB@top\fP:\fIname\fP" 4
|
||||
Specifies the top level design name. Mainly used when it is different
|
||||
from the stem of the \fBvbom\fP file name.
|
||||
.
|
||||
.IP "\fB@lib\fP:\fIname\fP"
|
||||
Specifies an additional system library. Allowed values for \fIname\fP are
|
||||
\fIunisim\fP and \fIsimprim\fP. Currently used to generate the appropriate
|
||||
-L options for \fBghdl\fP commands, e.g. generated by the
|
||||
\fBvbomconv\fP action \fB\-\-ghdl_m\fP.
|
||||
.
|
||||
.IP "\fB@ucf_cpp\fP:\fIfile\fP"
|
||||
Specifies that a \fIfile\fP.ucf file is to be generated by \fBcpp\fP(1)
|
||||
from a \fIfile\fP.ucf_cpp source file. This allows to modularize ISE ucf files.
|
||||
.RE
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH EXAMPLES
|
||||
.SS Simple entity
|
||||
A simple vhdl entity named \fIbp_2l4l\fP which is defined in the source
|
||||
file \fIbp_2l4l.vhd\fP, which uses the library \fIslvtypes\fP and
|
||||
instantiates \fIbp_2line\fP and \fIbp_4line\fP, might have a
|
||||
\fIbp_2l4l.vbom\fP like
|
||||
.PP
|
||||
.EX
|
||||
# libs
|
||||
../../vlib/slvtypes.vhd
|
||||
# components
|
||||
bp_2line.vbom
|
||||
bp_4line.vbom
|
||||
# design
|
||||
bp_2l4l.vhd
|
||||
.EE
|
||||
.PP
|
||||
Note that the vhdl source file \fIbp_2l4l.vhd\fP is always given in the
|
||||
\fBvbom\fP file which describes this source file.
|
||||
The comments are put in by convention to help the human reader and
|
||||
are not interpreted by \fBvbomconv\fP.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR vbomconv (1)
|
||||
.BR vbomconv (1),
|
||||
.BR ghdl (1),
|
||||
.BR cpp (1)
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/perl -w
|
||||
# $Id: vbomconv 543 2013-11-03 22:43:41Z mueller $
|
||||
# $Id: vbomconv 558 2014-06-01 22:20:51Z mueller $
|
||||
#
|
||||
# Copyright 2007-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
#
|
||||
@ -835,5 +835,6 @@ sub print_help {
|
||||
print " --xst_export=s export all xst source files into directory s\n";
|
||||
print " --ghdl_export=s export all ghdl source files into directory s\n";
|
||||
print " --isim_export=s export all isim source files into directory s\n";
|
||||
print " --get_top return top level entity name\n";
|
||||
print " --flist list all files touched by vbom for all tags\n";
|
||||
}
|
||||
|
||||
61
tools/bin/xtwv
Executable file
61
tools/bin/xtwv
Executable file
@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
# $Id: xtwv 554 2014-04-21 14:01:51Z mueller $
|
||||
#
|
||||
# Xilinx Tool Wrapper script for Vivado
|
||||
# define XTWV_PATH
|
||||
# usage xwtv <vivado command>
|
||||
#
|
||||
# Revision History:
|
||||
# Date Rev Version Comment
|
||||
# 2014-04-18 554 1.0.1 fake XILINX_VIVADO, 2014.1 doesn't define it anymore
|
||||
# 2013-10-12 539 1.0 Initial version (cloned from xtwi)
|
||||
#
|
||||
# Note: For Xilinx Vivado installations with an install path <ipath> holds
|
||||
# <ipath> dir with settings(32|64).sh
|
||||
#
|
||||
|
||||
# store arg list on vars (will be dropped later to source scripts)
|
||||
arglist_val=$@
|
||||
arglist_num=$#
|
||||
#
|
||||
# check whether Vivado already setup ($XILINX_VIVADO defined)
|
||||
if [ -z "$XILINX_VIVADO" ]
|
||||
then
|
||||
# check whether $XTWV_PATH defined
|
||||
if [ -z "$XTWV_PATH" ]
|
||||
then
|
||||
echo "XTWV_PATH not defined"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check whether 32 or 64 bit system (uname -m gives 'i686' or 'x86_64')
|
||||
if [ `uname -m` = "x86_64" ]
|
||||
then
|
||||
settings_filename=$XTWV_PATH/settings64.sh
|
||||
else
|
||||
settings_filename=$XTWV_PATH/settings32.sh
|
||||
fi
|
||||
if [ ! -e "$settings_filename" ]
|
||||
then
|
||||
echo "can't locate init script '$settings_filename'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# drop arg list, suppress output
|
||||
set --
|
||||
. $settings_filename > /dev/null
|
||||
|
||||
# check that XILINX_VIVADO defined
|
||||
if [ -z "$XILINX_VIVADO" ]
|
||||
then
|
||||
export XILINX_VIVADO=$XTWV_PATH/.
|
||||
fi
|
||||
|
||||
else
|
||||
echo "XILINX_VIVADO already defined"
|
||||
fi
|
||||
|
||||
if [ $arglist_num != 0 ]
|
||||
then
|
||||
exec $arglist_val
|
||||
fi
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: README_211bsd_rkset.txt 518 2013-05-12 16:45:02Z mueller $
|
||||
# $Id: README_211bsd_rkset.txt 558 2014-06-01 22:20:51Z mueller $
|
||||
|
||||
Notes on oskit: 2.11BSD system on RK05 volumes
|
||||
|
||||
@ -22,11 +22,11 @@ Notes on oskit: 2.11BSD system on RK05 volumes
|
||||
2. Installation ------------------------------------------------------
|
||||
|
||||
- A disk set is available from
|
||||
http://www.retro11.de/data/oc_w11/211bsd_rkset.tgz
|
||||
http://www.retro11.de/data/oc_w11/oskits/211bsd_rkset.tgz
|
||||
Download, unpack and copy the disk images (*.dsk), e.g.
|
||||
|
||||
cd $RETROBASE/tools/oskit/211bsd_rk/
|
||||
wget http://www.retro11.de/data/oc_w11/211bsd_rkset.tgz
|
||||
wget http://www.retro11.de/data/oc_w11/oskits/211bsd_rkset.tgz
|
||||
tar -xzf 211bsd_rkset.tgz
|
||||
|
||||
3. Usage -------------------------------------------------------------
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: README_rsx11m-31_rkset.txt 518 2013-05-12 16:45:02Z mueller $
|
||||
# $Id: README_rsx11m-31_rkset.txt 558 2014-06-01 22:20:51Z mueller $
|
||||
|
||||
Notes on oskit: RSX-11M V3.1 system on RK05 volumes
|
||||
|
||||
@ -12,16 +12,16 @@ Notes on oskit: RSX-11M V3.1 system on RK05 volumes
|
||||
|
||||
See notes, especially on legal terms, in $RETROBASE/doc/w11a_os_guide.txt
|
||||
|
||||
Also read README_license.txt !!
|
||||
Also read README_license.txt which is included in the oskit !!
|
||||
|
||||
2. Installation ------------------------------------------------------
|
||||
|
||||
- A disk set is available from
|
||||
http://www.retro11.de/data/oc_w11/rsx11m-31_rkset.tgz
|
||||
http://www.retro11.de/data/oc_w11/oskits/rsx11m-31_rkset.tgz
|
||||
Download, unpack and copy the disk images (*.dsk), e.g.
|
||||
|
||||
cd $RETROBASE/tools/oskit/rsx11m-31_rk
|
||||
wget http://www.retro11.de/data/oc_w11/rsx11m-31_rkset.tgz
|
||||
wget http://www.retro11.de/data/oc_w11/oskits/rsx11m-31_rkset.tgz
|
||||
tar -xzf rsx11m-31_rkset.tgz
|
||||
|
||||
3. Usage -------------------------------------------------------------
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: README_rsx11m-40_rkset.txt 518 2013-05-12 16:45:02Z mueller $
|
||||
# $Id: README_rsx11m-40_rkset.txt 558 2014-06-01 22:20:51Z mueller $
|
||||
|
||||
Notes on oskit: RSX-11M V4.0 system on RK05 volumes
|
||||
|
||||
@ -12,16 +12,16 @@ Notes on oskit: RSX-11M V4.0 system on RK05 volumes
|
||||
|
||||
See notes, especially on legal terms, in $RETROBASE/doc/w11a_os_guide.txt
|
||||
|
||||
Also read README_license.txt !!
|
||||
Also read README_license.txt which is included in the oskit !!
|
||||
|
||||
2. Installation ------------------------------------------------------
|
||||
|
||||
- A disk set is available from
|
||||
http://www.retro11.de/data/oc_w11/rsx11m-40_rkset.tgz
|
||||
http://www.retro11.de/data/oc_w11/oskits/rsx11m-40_rkset.tgz
|
||||
Download, unpack and copy the disk images (*.dsk), e.g.
|
||||
|
||||
cd $RETROBASE/tools/oskit/rsx11m-40_rk
|
||||
wget http://www.retro11.de/data/oc_w11/rsx11m-40_rkset.tgz
|
||||
wget http://www.retro11.de/data/oc_w11/oskits/rsx11m-40_rkset.tgz
|
||||
tar -xzf rsx11m-40_rkset.tgz
|
||||
|
||||
3. Usage -------------------------------------------------------------
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: README_rt11-40_rkset.txt 519 2013-05-12 20:44:16Z mueller $
|
||||
# $Id: README_rt11-40_rkset.txt 558 2014-06-01 22:20:51Z mueller $
|
||||
|
||||
Notes on oskit: RT-11 V4.0 system on RK05 volumes
|
||||
|
||||
@ -12,16 +12,16 @@ Notes on oskit: RT-11 V4.0 system on RK05 volumes
|
||||
|
||||
See notes, especially on legal terms, in $RETROBASE/doc/w11a_os_guide.txt
|
||||
|
||||
Also read README_license.txt !!
|
||||
Also read README_license.txt which is included in the oskit !!
|
||||
|
||||
2. Installation ------------------------------------------------------
|
||||
|
||||
- A disk set is available from
|
||||
http://www.retro11.de/data/oc_w11/rsx11m-31_rkset.tgz
|
||||
http://www.retro11.de/data/oc_w11/oskits/rsx11m-31_rkset.tgz
|
||||
Download, unpack and copy the disk images (*.dsk), e.g.
|
||||
|
||||
cd $RETROBASE/tools/oskit/rt11-40_rk
|
||||
wget http://www.retro11.de/data/oc_w11/rt11-40_rkset.tgz
|
||||
wget http://www.retro11.de/data/oc_w11/oskits/rt11-40_rkset.tgz
|
||||
tar -xzf rt11-40_rkset.tgz
|
||||
|
||||
3. Usage -------------------------------------------------------------
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: README_unix_v5_rkset.txt 518 2013-05-12 16:45:02Z mueller $
|
||||
# $Id: README_unix_v5_rkset.txt 558 2014-06-01 22:20:51Z mueller $
|
||||
|
||||
Notes on oskit: Unix V5 system on RK05 volumes
|
||||
|
||||
@ -22,11 +22,11 @@ Notes on oskit: Unix V5 system on RK05 volumes
|
||||
2. Installation ------------------------------------------------------
|
||||
|
||||
- A disk set is available from
|
||||
http://www.retro11.de/data/oc_w11/unix_v5_rkset.tgz
|
||||
http://www.retro11.de/data/oc_w11/oskits/unix_v5_rkset.tgz
|
||||
Download, unpack and copy the disk images (*.dsk), e.g.
|
||||
|
||||
cd $RETROBASE/tools/oskit/unix-v5_rk
|
||||
wget http://www.retro11.de/data/oc_w11/unix_v5_rkset.tgz
|
||||
wget http://www.retro11.de/data/oc_w11/oskits/unix_v5_rkset.tgz
|
||||
tar -xzf unix_v5_rkset.tgz
|
||||
|
||||
3. Usage -------------------------------------------------------------
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
; $Id: setup_w11a_max.scmd 518 2013-05-12 16:45:02Z mueller $
|
||||
; $Id: setup_w11a_max.scmd 559 2014-06-06 21:26:47Z mueller $
|
||||
;
|
||||
; Setup file for 'maximal' w11a configuration under simh 3.8 and above
|
||||
;
|
||||
; This setup reflects the planned w11a system on a Nexys[234] board
|
||||
; This setup reflects the full w11a system on a Nexys[234] board
|
||||
; --> 4 MByte, 2 DL11, DZ+LP+PC, RK05+RL02+RP06+TM11, DEUNA
|
||||
;
|
||||
; 11/70 CPU no FPP, 1 MByte memory
|
||||
; 11/70 CPU no FPP, 4 MByte memory
|
||||
; 2 DL11
|
||||
; 1 DZ11
|
||||
; 1 LP11
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
; $Id: setup_w11a_min.scmd 518 2013-05-12 16:45:02Z mueller $
|
||||
; $Id: setup_w11a_min.scmd 559 2014-06-06 21:26:47Z mueller $
|
||||
;
|
||||
; Setup file for 'minimal' w11a configuration under simh 3.8 and above
|
||||
;
|
||||
; This setup reflects the current w11a system on a S3BOARD
|
||||
; This setup reflects the minimal w11a system on a S3BOARD
|
||||
; --> 1MByte, 2 DL11, LP+PC, RK05
|
||||
;
|
||||
; 11/70 CPU no FPP, 1 MByte memory
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user