OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /w11
    from Rev 22 to Rev 21
    Reverse comparison

Rev 22 → Rev 21

/trunk/tools/tcl/rw11/util.tcl
1,4 → 1,4
# $Id: util.tcl 553 2014-03-17 06:40:08Z mueller $
# $Id: util.tcl 517 2013-05-09 21:34:45Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
13,7 → 13,6
#
# Revision History:
# Date Rev Version Comment
# 2014-03-07 553 1.1.3 move definitions to defs.tcl
# 2013-05-09 517 1.1.2 add setup_(tt|lp|pp|ostr) device setup procs
# 2013-04-26 510 1.1.1 split, asm* and tbench* into separate files
# 2013-04-01 501 1.1 add regdsc's and asm* procs
27,6 → 26,17
 
namespace eval rw11 {
#
# setup cp interface register descriptions for w11a
#
regdsc CP_CNTL {func 3 0}
regdsc CP_STAT {rust 7 4} {halt 3} {go 2} {merr 1} {err 0}
regdsc CP_IBRB {base 12 7} {bw 1 2}
#
# setup w11a register descriptions
#
regdsc PSW {cmode 15 2} {pmode 13 2} {rset 11} {pri 7 3} {tflag 3} {cc 3 4}
 
#
# setup_cpu: create w11 cpu system
#
proc setup_cpu {} {
/trunk/tools/tcl/rw11/asm.tcl
1,6 → 1,6
# $Id: asm.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: asm.tcl 510 2013-04-26 16:14:57Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
# This program is free software; you may redistribute and/or modify it under
# the terms of the GNU General Public License as published by the Free
13,7 → 13,6
#
# Revision History:
# Date Rev Version Comment
# 2014-03-01 552 1.0.1 BUGFIX: asmwait checks now pc if stop: defined
# 2013-04-26 510 1.0 Initial version (extracted from util.tcl)
#
 
69,7 → 68,7
proc asmwait {cpu symName {tout 10.}} {
upvar 1 $symName sym
set dt [$cpu wtcpu -reset $tout]
if {$dt >= 0 && [info exists sym(stop)]} {
if {$dt >= 0 && [info exists $sym(stop)]} {
$cpu cp -rpc -edata $sym(stop)
}
return $dt
/trunk/tools/src/librw11/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 515 2013-05-04 17:28:59Z mueller $
#
# Revision History:
# Date Rev Version Comment
49,7 → 49,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/librw11/Rw11VirtTermTcp.cpp
1,4 → 1,4
// $Id: Rw11VirtTermTcp.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: Rw11VirtTermTcp.cpp 516 2013-05-05 21:24:52Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-17 512 1.0.3 use Rtools::String2Long
// 2013-05-05 516 1.0.2 fix mistakes in emsg generation with errno
// 2013-04-20 508 1.0.1 add fSndPreConQue handling
// 2013-03-06 495 1.0 Initial version
22,10 → 21,11
 
/*!
\file
\version $Id: Rw11VirtTermTcp.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: Rw11VirtTermTcp.cpp 516 2013-05-05 21:24:52Z mueller $
\brief Implemenation of Rw11VirtTermTcp.
*/
 
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
126,8 → 126,8
 
string port;
fUrl.FindOpt("port",port);
unsigned long portno;
if (!Rtools::String2Long(port, portno, emsg)) return false;
int portno = atoi(port.c_str());
// FIXME_code: error handling ...
 
protoent* pe = getprotobyname("tcp");
if (pe == 0) {
/trunk/tools/src/librw11/Rw11Cpu.cpp
1,4 → 1,4
// $Id: Rw11Cpu.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: Rw11Cpu.cpp 516 2013-05-05 21:24:52Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
20,7 → 20,7
 
/*!
\file
\version $Id: Rw11Cpu.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: Rw11Cpu.cpp 516 2013-05-05 21:24:52Z mueller $
\brief Implemenation of Rw11Cpu.
*/
#include <stdlib.h>
582,7 → 582,7
char c = uname[i];
if (c >= '0' && c <= '9') {
string unum = cname.substr(i);
uind = ::atoi(unum.c_str());
uind = atoi(unum.c_str());
break;
} else {
cname.push_back(c);
/trunk/tools/src/librwxxtpp/RtclRw11Cpu.cpp
1,6 → 1,6
// $Id: RtclRw11Cpu.cpp 552 2014-03-02 23:02:00Z mueller $
// $Id: RtclRw11Cpu.cpp 513 2013-05-01 14:02:06Z mueller $
//
// Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
13,8 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2014-03-02 552 1.0.3 M_cp: add -ral and -rah options (addr reg readback)
// 2013-05-19 521 1.0.2 M_cp: merge -wibrb|-wibrbbe again; add -wa
// 2013-04-26 511 1.0.1 add M_show
// 2013-04-02 502 1.0 Initial version
// 2013-02-02 480 0.1 First draft
22,7 → 20,7
 
/*!
\file
\version $Id: RtclRw11Cpu.cpp 552 2014-03-02 23:02:00Z mueller $
\version $Id: RtclRw11Cpu.cpp 513 2013-05-01 14:02:06Z mueller $
\brief Implemenation of RtclRw11Cpu.
*/
 
113,10 → 111,9
"-wr|-wr0|-wr1|-wr2|-wr3|-wr4|-wr5|-wr6|-wr7|"
"-rsp|-rpc|-wsp|-wpc|"
"-rps|-wps|"
"-ral|-rah|-wal|-wah|-wa|"
"-rm|-rmi|-wm|-wmi|-brm|-bwm|"
"-wal|-wah|-rm|-rmi|-wm|-wmi|-brm|-bwm|"
"-stapc|-start|-stop|-continue|-step|-reset|"
"-ribrb|-wibrb|-ribr|-wibr|"
"-ribrb|-wibrb|-wibrbbe|-ribr|-wibr|"
"-rconf|-rstat|"
"-edata|-estat|-estatdef"
);
177,16 → 174,6
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
clist.AddWreg(base + Rw11Cpu::kCp_addr_psw, data);
 
} else if (opt == "-ral") { // -ral ?varData ?varStat --------
if (!GetVarName(args, "??varData", lsize, vardata)) return kERR;
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
clist.AddRreg(base + Rw11Cpu::kCp_addr_al);
 
} else if (opt == "-rah") { // -rah ?varData ?varStat --------
if (!GetVarName(args, "??varData", lsize, vardata)) return kERR;
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
clist.AddRreg(base + Rw11Cpu::kCp_addr_ah);
 
} else if (opt == "-wal") { // -wal data ?varStat ------------
uint16_t data;
if (!args.GetArg("al", data)) return kERR;
199,25 → 186,6
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
clist.AddWreg(base + Rw11Cpu::kCp_addr_ah, data);
 
} else if (opt == "-wa") { // -wa addr ?varStat [-p22 -ubm]--
uint32_t addr;
if (!args.GetArg("addr", addr, 017777776)) return kERR;
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
uint16_t al = addr;
uint16_t ah = (addr>>16);
static RtclNameSet suboptset("-p22|-ubm");
string subopt;
while (args.NextSubOpt(subopt, suboptset)>=0) { // loop for sub-options
if (!args.OptValid()) return kERR;
if (subopt == "-p22") { // -p22
ah |= Rw11Cpu::kCp_ah_m_22bit;
} else if (subopt == "-ubm") { // -ubm
ah |= Rw11Cpu::kCp_ah_m_ubmap;
}
}
clist.AddWreg(base + Rw11Cpu::kCp_addr_al, al);
if (ah!=0) clist.AddWreg(base + Rw11Cpu::kCp_addr_ah, ah);
 
} else if (opt == "-rm" || // -rm(i) ?varData ?varStat ------
opt == "-rmi") {
uint16_t addr = opt=="-rm" ? Rw11Cpu::kCp_addr_mem : Rw11Cpu::kCp_addr_memi;
282,23 → 250,22
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
clist.AddRreg(base + Rw11Cpu::kCp_addr_ibrb);
 
} else if (opt == "-wibrb") { // -wibrb base ?varStat [-be be] -
} else if (opt == "-wibrb") { // -wibrb base ?varStat ----------
uint16_t data;
if (!args.GetArg("base", data)) return kERR;
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
data &= 0177700; // clear byte enables
clist.AddWreg(base + Rw11Cpu::kCp_addr_ibrb, data);
 
data &= 0177700; // clear byte enables
static RtclNameSet suboptset("-be");
string subopt;
while (args.NextSubOpt(subopt, suboptset)>=0) { // loop for sub-options
if (!args.OptValid()) return kERR;
if (subopt == "-be") { // -be be
uint16_t be;
if (!args.GetArg("be", be, 0x3)) return kERR;
if (be == 0) be = 0x3; // map be 0 -> be 3
data |= be; // set byte enables
}
}
} else if (opt == "-wibrbbe") { // -wibrbbe base be ?varStat -----
uint16_t data;
uint16_t be;
if (!args.GetArg("base", data)) return kERR;
if (!args.GetArg("be", be, 0x3)) return kERR;
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
data &= 0177700; // clear byte enables from base
if (be == 0) be = 0x3; // map be 0 -> be 3
data |= be; // set byte enables
clist.AddWreg(base + Rw11Cpu::kCp_addr_ibrb, data);
 
} else if (opt == "-ribr") { // -ribr off ?varData ?varStat ----
308,7 → 275,7
if (!GetVarName(args, "??varStat", lsize, varstat)) return kERR;
clist.AddRreg(base + Rw11Cpu::kCp_addr_ibr + off/2);
 
} else if (opt == "-wibr") { // -wibr off data ?varStat --------
} else if (opt == "-wibr") { // -wibrb off data ?varStat --------
uint16_t off;
uint16_t data;
if (!args.GetArg("off", off, 63)) return kERR;
413,7 → 380,7
}
 
if (icmd<varstat.size() && !varstat[icmd].empty()) {
RtclOPtr pres(Tcl_NewIntObj((int)cmd.Status()));
RtclOPtr pres = Tcl_NewIntObj((int)cmd.Status());
if (!Rtcl::SetVar(interp, varstat[icmd], pres)) return kERR;
}
}
724,7 → 691,7
string key = line.substr(0,dpos);
string val= line.substr(dpos+4);
if (!Tcl_SetVar2Ex(interp, varsym.c_str(), key.c_str(),
Tcl_NewIntObj((int)::strtol(val.c_str(),NULL,8)),
Tcl_NewIntObj((int)strtol(val.c_str(),NULL,8)),
TCL_LEAVE_ERR_MSG)) return kERR;
} else {
return args.Quit(string("bad sym spec: ") + line);
736,7 → 703,7
if (line.length() != 10)
return args.Quit(string("bad dat spec: ") + line);
dtyp = line[0];
dot = (uint16_t)::strtol(line.c_str()+2,NULL,8);
dot = (uint16_t)strtol(line.c_str()+2,NULL,8);
} else if (line[0] == '}') {
dtyp = ' ';
} else {
744,7 → 711,7
string dat;
while (datstream >> dat) {
//cout << "+++1 " << dtyp << ":" << dat << endl;
uint16_t val = (uint16_t)::strtol(dat.c_str(),NULL,8);
uint16_t val = (uint16_t)strtol(dat.c_str(),NULL,8);
if (dtyp == 'w') {
cmap[dot] = val;
dot += 2;
/trunk/tools/src/librwxxtpp/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 515 2013-05-04 17:28:59Z mueller $
#
# Revision History:
# Date Rev Version Comment
48,7 → 48,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/librwxxtpp/RtclRw11CntlBase.ipp
1,4 → 1,4
// $Id: RtclRw11CntlBase.ipp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclRw11CntlBase.ipp 504 2013-04-13 15:37:24Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
19,7 → 19,7
 
/*!
\file
\version $Id: RtclRw11CntlBase.ipp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclRw11CntlBase.ipp 504 2013-04-13 15:37:24Z mueller $
\brief Implemenation (all inline) of RtclRw11CntlBase.
*/
 
96,7 → 96,7
uint16_t aload;
uint16_t astart;
if (Obj().BootCode(unit, code, aload, astart)) {
RtclOPtr pres(Tcl_NewListObj(0, NULL));
RtclOPtr pres = Tcl_NewListObj(0, NULL);
Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)aload));
Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)astart));
Tcl_ListObjAppendElement(NULL, pres, Rtcl::NewListIntObj(code));
/trunk/tools/src/librlink/RlinkPortCuff.cpp
1,4 → 1,4
// $Id: RlinkPortCuff.cpp 524 2013-06-30 19:10:30Z mueller $
// $Id: RlinkPortCuff.cpp 516 2013-05-05 21:24:52Z mueller $
//
// Copyright 2012-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-17 521 1.1.1 use Rtools::String2Long
// 2013-02-23 492 1.1 use RparseUrl
// 2013-02-10 485 1.0.3 add static const defs
// 2013-02-03 481 1.0.2 use Rexception
23,7 → 22,7
 
/*!
\file
\version $Id: RlinkPortCuff.cpp 524 2013-06-30 19:10:30Z mueller $
\version $Id: RlinkPortCuff.cpp 516 2013-05-05 21:24:52Z mueller $
\brief Implemenation of RlinkPortCuff.
*/
 
40,7 → 39,6
#include "RlinkPortCuff.hpp"
 
#include "librtools/Rexception.hpp"
#include "librtools/Rtools.hpp"
 
using namespace std;
 
143,13 → 141,9
if (fUrl.Path().length()==8 && fUrl.Path()[0]=='/' && fUrl.Path()[4]=='/') {
string busnam = fUrl.Path().substr(1,3);
string devnam = fUrl.Path().substr(5,3);
unsigned long busnum;
unsigned long devnum;
if (!Rtools::String2Long(busnam, busnum, emsg) ||
!Rtools::String2Long(devnam, devnum, emsg)) {
Cleanup();
return false;
}
char* endptr;
uint8_t busnum = ::strtol(busnam.c_str(), &endptr, 10);
uint8_t devnum = ::strtol(devnam.c_str(), &endptr, 10);
for (ssize_t idev=0; idev<fUsbDevCount; idev++) {
libusb_device* udev = fpUsbDevList[idev];
if (libusb_get_bus_number(udev) == busnum &&
161,13 → 155,9
} else if (fUrl.Path().length()==9 && fUrl.Path()[4]==':') {
string vennam = fUrl.Path().substr(0,4);
string pronam = fUrl.Path().substr(5,4);
unsigned long vennum;
unsigned long pronum;
if (!Rtools::String2Long(vennam, vennum, emsg, 16) ||
!Rtools::String2Long(pronam, pronum, emsg, 16)) {
Cleanup();
return false;
}
char* endptr;
uint16_t vennum = ::strtol(vennam.c_str(), &endptr, 16);
uint16_t pronum = ::strtol(pronam.c_str(), &endptr, 16);
for (ssize_t idev=0; idev<fUsbDevCount; idev++) {
libusb_device* udev = fpUsbDevList[idev];
libusb_device_descriptor devdsc;
183,7 → 173,6
Cleanup();
return false;
}
 
if (mydev == 0) {
emsg.Init("RlinkPortCuff::Open()",
string("no usb device '") + fUrl.Path() + "', found'");
341,7 → 330,7
t->type = LIBUSB_TRANSFER_TYPE_BULK;
t->timeout = 0;
t->status = LIBUSB_TRANSFER_COMPLETED;
t->buffer = (unsigned char*) ::malloc(kUSBBufferSize);
t->buffer = (unsigned char*) malloc(kUSBBufferSize);
t->length = kUSBBufferSize;
t->actual_length = 0;
t->callback = ThunkUSBReadDone;
357,7 → 346,7
if (TraceOn()) cout << "event loop started" << endl;
fLoopState = kLoopStateRunning;
while(fLoopState == kLoopStateRunning) {
int irc = ::poll(fPollFds.data(), fPollFds.size(), 1000);
int irc = poll(fPollFds.data(), fPollFds.size(), 1000);
if (irc==-1 && errno==EINTR) continue;
if (irc!=0 && TraceOn()) {
cout << "poll() -> " << irc << " :";
390,7 → 379,7
 
while(fLoopState == kLoopStateStopping &&
fWriteQueuePending.size() + fReadQueuePending.size() > 0) {
int irc = ::poll(fPollFds.data()+1, fPollFds.size()-1, 1000);
int irc = poll(fPollFds.data()+1, fPollFds.size()-1, 1000);
if (irc==-1 && errno==EINTR) continue;
if (irc==0) break;
if (irc < 0) BadSysCall("RlinkPortCuff::Driver()", "poll()", irc);
406,7 → 395,7
cout << "exception caught in RlinkPortCuff::Driver(): '" << e.what()
<< "'" << endl;
// close read pipe at driver end -> that causes main thread to respond
::close(fFdReadDriver);
close(fFdReadDriver);
fFdReadDriver = -1;
}
 
420,7 → 409,7
{
libusb_transfer* t = NewWriteTransfer();
 
ssize_t ircs = ::read(fFdWriteDriver, t->buffer, kUSBBufferSize);
ssize_t ircs = read(fFdWriteDriver, t->buffer, kUSBBufferSize);
if (TraceOn()) cout << "write pipe read() -> " << ircs << endl;
if (ircs < 0) BadSysCall("RlinkPortCuff::DriverEventWritePipe()",
"read()", ircs);
472,7 → 461,7
t->endpoint = (unsigned char) (kUSBWriteEP);
t->type = LIBUSB_TRANSFER_TYPE_BULK;
t->timeout = 1000;
t->buffer = (unsigned char*) ::malloc(kUSBBufferSize);
t->buffer = (unsigned char*) malloc(kUSBBufferSize);
t->callback = ThunkUSBWriteDone;
t->user_data = this;
}
658,8 → 647,7
CheckUSBTransfer("RlinkPortCuff::USBReadDone()", t);
fStats.Inc(kStatNUSBRead);
if (t->actual_length>0) {
ssize_t ircs = ::write(fFdReadDriver, t->buffer,
(size_t) t->actual_length);
ssize_t ircs = write(fFdReadDriver, t->buffer, (size_t) t->actual_length);
if (ircs < 0) BadSysCall("RlinkPortCuff::USBReadDone()",
"write()", ircs);
}
/trunk/tools/src/librlink/RlinkConnect.cpp
1,4 → 1,4
// $Id: RlinkConnect.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RlinkConnect.cpp 509 2013-04-21 20:46:20Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
28,7 → 28,7
 
/*!
\file
\version $Id: RlinkConnect.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RlinkConnect.cpp 509 2013-04-21 20:46:20Z mueller $
\brief Implemenation of RlinkConnect.
*/
 
233,7 → 233,7
if (cmd.Command() == RlinkCommand::kCmdAttn && ServerActiveOutside())
throw Rexception("RlinkConnect::Exec()",
"attn command not allowed outside avtice server");
 
cmd.ClearFlagBit(RlinkCommand::kFlagSend | RlinkCommand::kFlagDone |
RlinkCommand::kFlagPktBeg | RlinkCommand::kFlagPktEnd |
RlinkCommand::kFlagRecov | RlinkCommand::kFlagResend |
/trunk/tools/src/librlink/ReventFd.cpp
1,4 → 1,4
// $Id: ReventFd.cpp 529 2013-08-02 17:15:43Z mueller $
// $Id: ReventFd.cpp 488 2013-02-16 18:49:47Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
19,7 → 19,7
 
/*!
\file
\version $Id: ReventFd.cpp 529 2013-08-02 17:15:43Z mueller $
\version $Id: ReventFd.cpp 488 2013-02-16 18:49:47Z mueller $
\brief Implemenation of class ReventFd.
*/
 
46,7 → 46,7
 
ReventFd::ReventFd()
{
fFd = ::eventfd(0,0); // ini value = 0; no flags
fFd = eventfd(0,0); // ini value = 0; no flags
if (fFd < 0)
throw Rexception("ReventFd::ctor", "eventfd() failed: ", errno);
}
56,7 → 56,7
 
ReventFd::~ReventFd()
{
::close(fFd);
close(fFd);
}
 
//------------------------------------------+-----------------------------------
65,7 → 65,7
int ReventFd::SignalFd(int fd)
{
uint64_t one(1);
int irc = ::write(fd, &one, sizeof(one));
int irc = write(fd, &one, sizeof(one));
return irc;
}
 
75,7 → 75,7
int ReventFd::WaitFd(int fd)
{
uint64_t buf;
int irc = ::read(fd, &buf, sizeof(buf));
int irc = read(fd, &buf, sizeof(buf));
return (irc <= 0) ? irc : (int)buf;
}
 
/trunk/tools/src/librlink/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 492 2013-02-24 22:14:47Z mueller $
#
# Revision History:
# Date Rev Version Comment
47,7 → 47,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/librtools/Rtools.cpp
1,4 → 1,4
// $Id: Rtools.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: Rtools.cpp 516 2013-05-05 21:24:52Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
21,7 → 21,7
 
/*!
\file
\version $Id: Rtools.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: Rtools.cpp 516 2013-05-05 21:24:52Z mueller $
\brief Implemenation of Rtools .
*/
 
70,7 → 70,6
 
//------------------------------------------+-----------------------------------
//! FIXME_docs
 
bool String2Long(const std::string& str, long& res, RerrMsg& emsg, int base)
{
char* endptr;
85,7 → 84,6
 
//------------------------------------------+-----------------------------------
//! FIXME_docs
 
bool String2Long(const std::string& str, unsigned long& res,
RerrMsg& emsg, int base)
{
/trunk/tools/src/librtools/RlogFileCatalog.cpp
1,4 → 1,4
// $Id: RlogFileCatalog.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RlogFileCatalog.cpp 493 2013-03-01 21:02:33Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
18,7 → 18,7
 
/*!
\file
\version $Id: RlogFileCatalog.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RlogFileCatalog.cpp 493 2013-03-01 21:02:33Z mueller $
\brief Implemenation of RlogFileCatalog.
*/
 
41,7 → 41,7
 
RlogFileCatalog& RlogFileCatalog::Obj()
{
static RlogFileCatalog obj; // lazy creation singleton
static RlogFileCatalog obj;
return obj;
}
 
/trunk/tools/src/librtools/RosPrintfS.cpp
1,4 → 1,4
// $Id: RosPrintfS.cpp 531 2013-08-16 19:34:32Z mueller $
// $Id: RosPrintfS.cpp 488 2013-02-16 18:49:47Z mueller $
//
// Copyright 2000-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
20,7 → 20,7
 
/*!
\file
\version $Id: RosPrintfS.cpp 531 2013-08-16 19:34:32Z mueller $
\version $Id: RosPrintfS.cpp 488 2013-02-16 18:49:47Z mueller $
\brief Implemenation of RosPrintfS .
*/
 
127,7 → 127,7
//!! 1. This specialization is printing signed and unsigned char types and
//!! implements the `c' conversion format,
 
// finally do an explicit instantiation of the required RosPrintfS
// finally do an explicit instantiation of the required CTBioState
 
template class RosPrintfS<char>;
template class RosPrintfS<int>;
/trunk/tools/src/librtools/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 493 2013-03-01 21:02:33Z mueller $
#
# Revision History:
# Date Rev Version Comment
42,7 → 42,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/librtools/RlogFile.cpp
1,4 → 1,4
// $Id: RlogFile.cpp 539 2013-10-13 17:06:35Z mueller $
// $Id: RlogFile.cpp 492 2013-02-24 22:14:47Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-10-11 539 2.1.1 fix date print (month was off by one)
// 2013-02-23 492 2.1 add Name(), keep log file name; add Dump()
// 2013-02-22 491 2.0 add Write(),IsNew(), RlogMsg iface; use lockable
// 2011-01-30 357 1.0 Initial version
21,7 → 20,7
 
/*!
\file
\version $Id: RlogFile.cpp 539 2013-10-13 17:06:35Z mueller $
\version $Id: RlogFile.cpp 492 2013-02-24 22:14:47Z mueller $
\brief Implemenation of RlogFile.
*/
 
121,10 → 120,10
 
if (tag) {
struct timeval tval;
::gettimeofday(&tval, 0);
gettimeofday(&tval, 0);
 
struct tm tymd;
::localtime_r(&tval.tv_sec, &tymd);
localtime_r(&tval.tv_sec, &tymd);
 
if (tymd.tm_year != fTagYear ||
tymd.tm_mon != fTagMonth ||
132,7 → 131,7
 
os << "-+- "
<< RosPrintf(tymd.tm_year+1900,"d",4) << "-"
<< RosPrintf(tymd.tm_mon+1,"d0",2) << "-"
<< RosPrintf(tymd.tm_mon,"d0",2) << "-"
<< RosPrintf(tymd.tm_mday,"d0",2) << " -+- \n";
 
fTagYear = tymd.tm_year;
/trunk/tools/src/librtools/Rbits.cpp
1,6 → 1,6
// $Id: Rbits.cpp 530 2013-08-09 21:25:04Z mueller $
// $Id: Rbits.cpp 493 2013-03-01 21:02:33Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
18,7 → 18,7
 
/*!
\file
\version $Id: Rbits.cpp 530 2013-08-09 21:25:04Z mueller $
\version $Id: Rbits.cpp 493 2013-03-01 21:02:33Z mueller $
\brief Implemenation of Rbits .
*/
 
/trunk/tools/src/librtools/Rbits.hpp
1,6 → 1,6
// $Id: Rbits.hpp 530 2013-08-09 21:25:04Z mueller $
// $Id: Rbits.hpp 493 2013-03-01 21:02:33Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
18,7 → 18,7
 
/*!
\file
\version $Id: Rbits.hpp 530 2013-08-09 21:25:04Z mueller $
\version $Id: Rbits.hpp 493 2013-03-01 21:02:33Z mueller $
\brief Declaration of class Rbits .
*/
 
/trunk/tools/src/librlinktpp/RtclRlinkConnect.cpp
1,4 → 1,4
// $Id: RtclRlinkConnect.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclRlinkConnect.cpp 495 2013-03-06 17:13:48Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
27,7 → 27,7
 
/*!
\file
\version $Id: RtclRlinkConnect.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclRlinkConnect.cpp 495 2013-03-06 17:13:48Z mueller $
\brief Implemenation of class RtclRlinkConnect.
*/
 
303,7 → 303,7
}
 
if (icmd<varstat.size() && !varstat[icmd].empty()) {
RtclOPtr pres(Tcl_NewIntObj((int)cmd.Status()));
RtclOPtr pres = Tcl_NewIntObj((int)cmd.Status());
if (!Rtcl::SetVar(interp, varstat[icmd], pres)) return kERR;
}
}
313,7 → 313,7
const RlinkConnect::LogOpts& logopts = Obj().GetLogOpts();
clist.Print(sos, Obj().Context(), &Obj().AddrMap(), logopts.baseaddr,
logopts.basedata, logopts.basestat);
RtclOPtr pobj(Rtcl::NewLinesObj(sos));
RtclOPtr pobj = Rtcl::NewLinesObj(sos);
if (!Rtcl::SetVarOrResult(args.Interp(), varprint, pobj)) return kERR;
}
 
320,16 → 320,16
if (!vardump.empty()) {
ostringstream sos;
clist.Dump(sos, 0);
RtclOPtr pobj(Rtcl::NewLinesObj(sos));
RtclOPtr pobj = Rtcl::NewLinesObj(sos);
if (!Rtcl::SetVarOrResult(args.Interp(), vardump, pobj)) return kERR;
}
 
if (!varlist.empty()) {
RtclOPtr prlist(Tcl_NewListObj(0, NULL));
RtclOPtr prlist = Tcl_NewListObj(0, NULL);
for (size_t icmd=0; icmd<clist.Size(); icmd++) {
RlinkCommand& cmd(clist[icmd]);
RtclOPtr pres(Tcl_NewListObj(0, NULL));
RtclOPtr pres = Tcl_NewListObj(0, NULL);
Tcl_ListObjAppendElement(NULL, pres, fCmdnameObj[cmd.Command()]);
Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Request()));
Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Flags()));
445,7 → 445,7
}
 
} else { // amap
RtclOPtr plist(Tcl_NewListObj(0, NULL));
RtclOPtr plist = Tcl_NewListObj(0, NULL);
const RlinkAddrMap::amap_t amap = addrmap.Amap();
for (RlinkAddrMap::amap_cit_t it=amap.begin(); it!=amap.end(); it++) {
Tcl_Obj* tpair[2];
/trunk/tools/src/librlinktpp/RtclAttnShuttle.cpp
1,4 → 1,4
// $Id: RtclAttnShuttle.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclAttnShuttle.cpp 495 2013-03-06 17:13:48Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-20 521 1.0.1 Setup proper Tcl channel options
// 2013-03-01 493 1.0 Initial version
// 2013-01-12 475 0.5 First draft
// ---------------------------------------------------------------------------
20,11 → 19,11
 
/*!
\file
\version $Id: RtclAttnShuttle.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclAttnShuttle.cpp 495 2013-03-06 17:13:48Z mueller $
\brief Implemenation of class RtclAttnShuttle.
*/
 
#include <errno.h>
#include "errno.h"
 
#include "boost/bind.hpp"
 
48,14 → 47,14
RtclAttnShuttle::RtclAttnShuttle(uint16_t mask, Tcl_Obj* pobj)
: fpServ(0),
fpInterp(0),
fFdPipeRead(-1),
fFdPipeWrite(-1),
fFdPipeRead(0),
fFdPipeWrite(0),
fShuttleChn(0),
fMask(mask),
fpScript(pobj)
{
int pipefd[2];
int irc = ::pipe(pipefd);
int irc = pipe(pipefd);
if (irc < 0)
throw Rexception("RtclAttnShuttle::<ctor>", "pipe() failed: ", errno);
fFdPipeRead = pipefd[0];
68,8 → 67,8
RtclAttnShuttle::~RtclAttnShuttle()
{
Remove();
::close(fFdPipeWrite);
::close(fFdPipeRead);
close(fFdPipeWrite);
close(fFdPipeRead);
}
 
//------------------------------------------+-----------------------------------
84,15 → 83,9
 
// connect to Tcl
fShuttleChn = Tcl_MakeFileChannel((ClientData)fFdPipeRead, TCL_READABLE);
 
Tcl_SetChannelOption(NULL, fShuttleChn, "-buffersize", "64");
Tcl_SetChannelOption(NULL, fShuttleChn, "-encoding", "binary");
Tcl_SetChannelOption(NULL, fShuttleChn, "-translation", "binary");
 
Tcl_CreateChannelHandler(fShuttleChn, TCL_READABLE,
(Tcl_FileProc*) ThunkTclChannelHandler,
(ClientData) this);
 
fpInterp = interp;
return;
}
125,7 → 118,7
int RtclAttnShuttle::AttnHandler(const RlinkServer::AttnArgs& args)
{
uint16_t apat = args.fAttnPatt & args.fAttnMask;
int irc = ::write(fFdPipeWrite, (void*) &apat, sizeof(apat));
int irc = write(fFdPipeWrite, (void*) &apat, sizeof(apat));
if (irc < 0)
throw Rexception("RtclAttnShuttle::AttnHandler()",
"write() failed: ", errno);
/trunk/tools/src/librlinktpp/RtclRlinkPort.cpp
1,4 → 1,4
// $Id: RtclRlinkPort.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclRlinkPort.cpp 495 2013-03-06 17:13:48Z mueller $
//
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
20,7 → 20,7
 
/*!
\file
\version $Id: RtclRlinkPort.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclRlinkPort.cpp 495 2013-03-06 17:13:48Z mueller $
\brief Implemenation of class RtclRlinkPort.
*/
 
303,7 → 303,7
if (irc == RlinkPort::kErr) return args.Quit("-E: timeout on -rblk");
if (irc != (int)rdata.size()) return args.Quit(emsg);
if (rvname.length()) {
RtclOPtr pres(Rtcl::NewListIntObj(rdata));
RtclOPtr pres = Rtcl::NewListIntObj(rdata);
if(!Rtcl::SetVar(args.Interp(), rvname, pres)) return kERR;
}
if (edata.size()) {
/trunk/tools/src/librlinktpp/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 479 2013-02-01 18:09:49Z mueller $
#
# Revision History:
# Date Rev Version Comment
42,7 → 42,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/librtcltools/RtclNameSet.cpp
1,4 → 1,4
// $Id: RtclNameSet.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclNameSet.cpp 516 2013-05-05 21:24:52Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-19 521 1.1 add CheckMatch()
// 2013-02-03 481 1.0.1 use Rexception
// 2011-02-20 363 1.0 Initial version
// ---------------------------------------------------------------------------
20,7 → 19,7
 
/*!
\file
\version $Id: RtclNameSet.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclNameSet.cpp 516 2013-05-05 21:24:52Z mueller $
\brief Implemenation of RtclNameSet.
*/
 
81,36 → 80,22
//------------------------------------------+-----------------------------------
//! FIXME_docs
 
bool RtclNameSet::Check(Tcl_Interp* interp, std::string& rval,
const std::string& tval) const
bool RtclNameSet:: Check(Tcl_Interp* interp, std::string& rval,
const std::string& tval) const
{
return CheckMatch(interp, rval, tval, true) > 0;
}
 
//------------------------------------------+-----------------------------------
//! FIXME_docs
// irc = 1 -> match
// 0 -> ambiguous match --> tcl err
// -1 -> no match --> tcl err if misserr
 
int RtclNameSet::CheckMatch(Tcl_Interp* interp, std::string& rval,
const std::string& tval, bool misserr) const
{
rval.clear();
nset_cit_t it = fSet.lower_bound(tval);
 
// no leading substring match
if (it==fSet.end() || tval!=it->substr(0,tval.length())) {
if (misserr) {
Tcl_AppendResult(interp, "-E: bad option '", tval.c_str(),
"': must be ", NULL);
const char* delim = "";
for (nset_cit_t it1=fSet.begin(); it1!=fSet.end(); it1++) {
Tcl_AppendResult(interp, delim, it1->c_str(), NULL);
delim = ",";
}
Tcl_AppendResult(interp, "-E: bad option '", tval.c_str(),
"': must be ", NULL);
const char* delim = "";
for (nset_cit_t it1=fSet.begin(); it1!=fSet.end(); it1++) {
Tcl_AppendResult(interp, delim, it1->c_str(), NULL);
delim = ",";
}
return -1;
return false;
}
 
// check for ambiguous substring match
126,12 → 111,12
Tcl_AppendResult(interp, delim, it1->c_str(), NULL);
delim = ",";
}
return 0;
return false;
}
}
rval = *it;
return 1;
return true;
}
 
} // end namespace Retro
/trunk/tools/src/librtcltools/RtclNameSet.hpp
1,6 → 1,6
// $Id: RtclNameSet.hpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclNameSet.hpp 488 2013-02-16 18:49:47Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-19 521 1.1 add CheckMatch()
// 2011-02-20 363 1.0 Initial version
// ---------------------------------------------------------------------------
 
20,7 → 19,7
 
/*!
\file
\version $Id: RtclNameSet.hpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclNameSet.hpp 488 2013-02-16 18:49:47Z mueller $
\brief Declaration of class RtclNameSet.
*/
 
44,12 → 43,10
 
RtclNameSet();
RtclNameSet(const std::string& nset);
~RtclNameSet();
~RtclNameSet();
 
bool Check(Tcl_Interp* interp, std::string& rval,
const std::string& tval) const;
int CheckMatch(Tcl_Interp* interp, std::string& rval,
const std::string& tval, bool misserr) const;
 
protected:
nset_t fSet;
/trunk/tools/src/librtcltools/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 487 2013-02-12 19:14:38Z mueller $
#
# Revision History:
# Date Rev Version Comment
41,7 → 41,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/librtcltools/RtclArgs.cpp
1,4 → 1,4
// $Id: RtclArgs.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclArgs.cpp 492 2013-02-24 22:14:47Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-19 521 1.0.7 add NextSubOpt() method, pass optset's as const
// 2013-02-12 487 1.0.6 add CurrentArg() method
// 2013-02-03 481 1.0.5 use Rexception
// 2011-03-26 373 1.0.4 add GetArg(float/double)
27,7 → 26,7
 
/*!
\file
\version $Id: RtclArgs.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclArgs.cpp 492 2013-02-24 22:14:47Z mueller $
\brief Implemenation of RtclArgs.
*/
 
395,7 → 394,7
//------------------------------------------+-----------------------------------
//! FIXME_docs
 
bool RtclArgs::NextOpt(std::string& val, const RtclNameSet& optset)
bool RtclArgs::NextOpt(std::string& val, RtclNameSet& optset)
{
val.clear();
string opt;
407,36 → 406,7
 
//------------------------------------------+-----------------------------------
//! FIXME_docs
// irc = 1 -> match
// 0 -> ambiguous match --> tcl err
// -1 -> no match --> no tcl err
 
int RtclArgs::NextSubOpt(std::string& val, const RtclNameSet& optset)
{
val.clear();
fNOptMiss = 0;
fOptErr = false;
 
if (fNDone == fObjc) return -1;
 
const char* str = PeekArgString(0);
// does next arg look like an option
if (str[0]=='-' && str[1] && str[1]!='-' && !isdigit(str[1])) {
// and matches one of optset
int irc = optset.CheckMatch(fpInterp, val, string(str), false);
if (irc >= 0) {
fNDone += 1;
fOptErr = (irc == 0);
return irc;
}
}
return -1;
}
 
//------------------------------------------+-----------------------------------
//! FIXME_docs
 
Tcl_Obj* RtclArgs::CurrentArg() const
{
if (fNDone == 0)
/trunk/tools/src/librtcltools/RtclArgs.hpp
1,4 → 1,4
// $Id: RtclArgs.hpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclArgs.hpp 495 2013-03-06 17:13:48Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-19 521 1.0.9 add NextSubOpt() method, pass optset's as const
// 2013-03-05 495 1.0.8 add SetResult(bool)
// 2013-03-02 494 1.0.7 add Quit() method
// 2013-02-12 487 1.0.6 add CurrentArg() method
30,7 → 29,7
 
/*!
\file
\version $Id: RtclArgs.hpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclArgs.hpp 495 2013-03-06 17:13:48Z mueller $
\brief Declaration of class RtclArgs.
*/
 
105,8 → 104,7
uint32_t max=uint32_max, uint32_t min=0);
bool NextOpt(std::string& val);
bool NextOpt(std::string& val, const RtclNameSet& optset);
int NextSubOpt(std::string& val, const RtclNameSet& optset);
bool NextOpt(std::string& val, RtclNameSet& optset);
bool OptValid() const;
 
Tcl_Obj* CurrentArg() const;
/trunk/tools/src/librtcltools/RtclOPtr.hpp
1,6 → 1,6
// $Id: RtclOPtr.hpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclOPtr.hpp 365 2011-02-28 07:28:26Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-20 521 1.0.1 declare ctor(Tcl_Obj*) as explicit
// 2011-02-20 363 1.0 Initial version
// ---------------------------------------------------------------------------
 
20,7 → 19,7
 
/*!
\file
\version $Id: RtclOPtr.hpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclOPtr.hpp 365 2011-02-28 07:28:26Z mueller $
\brief Declaration of class RtclOPtr.
*/
 
34,9 → 33,9
class RtclOPtr {
public:
RtclOPtr();
explicit RtclOPtr(Tcl_Obj* pobj);
RtclOPtr(Tcl_Obj* pobj);
RtclOPtr(const RtclOPtr& rhs);
~RtclOPtr();
~RtclOPtr();
 
operator Tcl_Obj*() const;
bool operator !() const;
/trunk/tools/src/librutiltpp/RtclBvi.cpp
1,4 → 1,4
// $Id: RtclBvi.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: RtclBvi.cpp 488 2013-02-16 18:49:47Z mueller $
//
// Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
20,7 → 20,7
 
/*!
\file
\version $Id: RtclBvi.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: RtclBvi.cpp 488 2013-02-16 18:49:47Z mueller $
\brief Implemenation of RtclBvi.
*/
 
107,12 → 107,12
int lval = strlen(pval);
 
// strip leading blanks
while (pval[0]!=0 && ::isblank(pval[0])) {
while (pval[0]!=0 && isblank(pval[0])) {
pval++;
lval--;
}
// strip trailing blanks
while (lval>0 && ::isblank(pval[lval-1])) {
while (lval>0 && isblank(pval[lval-1])) {
lval--;
}
 
145,10 → 145,10
char* eptr=0;
 
if (base==10 && pval[0]=='-') {
lres = (unsigned long) ::strtol(pval, &eptr, base);
lres = (unsigned long) strtol(pval, &eptr, base);
if (nbit<32) lres &= (1ul<<nbit)-1;
} else {
lres = ::strtoul(pval, &eptr, base);
lres = strtoul(pval, &eptr, base);
}
 
if (eptr != pval+lval) {
/trunk/tools/src/librutiltpp/Rutiltpp_Init.cpp
1,6 → 1,6
// $Id: Rutiltpp_Init.cpp 521 2013-05-20 22:16:45Z mueller $
// $Id: Rutiltpp_Init.cpp 485 2013-02-10 18:57:55Z mueller $
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
13,7 → 13,6
//
// Revision History:
// Date Rev Version Comment
// 2013-05-17 512 1.0.3 add RtclSystem::CreateCmds()
// 2013-02-10 485 1.0.2 remove Tcl_InitStubs()
// 2011-03-20 372 1.0.1 renamed ..tcl -> ..tpp
// 2011-03-19 371 1.0 Initial version
21,7 → 20,7
 
/*!
\file
\version $Id: Rutiltpp_Init.cpp 521 2013-05-20 22:16:45Z mueller $
\version $Id: Rutiltpp_Init.cpp 485 2013-02-10 18:57:55Z mueller $
\brief Implemenation of Rutiltpp_Init .
*/
 
29,7 → 28,6
 
#include <stdexcept>
 
#include "RtclSystem.hpp"
#include "RtclBvi.hpp"
 
using namespace std;
46,7 → 44,6
 
try {
// register general commands
RtclSystem::CreateCmds(interp);
RtclBvi::CreateCmds(interp);
return TCL_OK;
 
/trunk/tools/src/librutiltpp/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 479 2013-02-01 18:09:49Z mueller $
#
# Revision History:
# Date Rev Version Comment
21,12 → 21,11
include ../checkpath_cpp.mk
#
INCLFLAGS = -I${RETROBASE}/tools/src -I${TCLINC} -I${BOOSTINC}
LDLIBS = -lpthread
LDLIBS += -L${RETROBASE}/tools/lib -lrtcltools
LDLIBS = -L${RETROBASE}/tools/lib -lrtcltools
#
# Object files to be included
#
OBJ_all = Rutiltpp_Init.o RtclBvi.o RtclSystem.o RtclSignalAction.o
OBJ_all = Rutiltpp_Init.o RtclBvi.o
#
DEP_all = $(OBJ_all:.o=.dep)
#
41,7 → 40,7
include $(RETROBASE)/tools/make/generic_so.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/src/Makefile
1,4 → 1,4
# $Id: Makefile 530 2013-08-09 21:25:04Z mueller $
# $Id: Makefile 479 2013-02-01 18:09:49Z mueller $
#
# Top level makefile, using the recipe found in
# http://www.lackof.org/taggart/hacking/make-example/
22,13 → 22,13
#
BUILDDIRS = $(DIRS:%=build-%)
CLEANDIRS = $(DIRS:%=clean-%)
DISTCDIRS = $(DIRS:%=distc-%)
REALCDIRS = $(DIRS:%=distc-%)
#
.PHONY: all clean distclean
.PHONY: $(DIRS)
.PHONY: $(BUILDDIRS)
.PHONY: $(CLEANDIRS)
.PHONY: $(DISTCDIRS)
.PHONY: $(REALCDIRS)
#
# build 'all' rule
#
52,6 → 52,6
#
# distclean rule
#
distclean: $(DISTCDIRS)
$(DISTCDIRS):
distclean: $(REALCDIRS)
$(REALCDIRS):
$(MAKE) -C $(@:distc-%=%) distclean
/trunk/tools/src/testtclsh/Makefile
1,4 → 1,4
# $Id: Makefile 529 2013-08-02 17:15:43Z mueller $
# $Id: Makefile 504 2013-04-13 15:37:24Z mueller $
#
# Revision History:
# Date Rev Version Comment
28,7 → 28,7
include $(RETROBASE)/tools/make/generic_dep.mk
include $(RETROBASE)/tools/make/dontincdep.mk
#
# The magic auto-dependency include
# The magic autodependcy include
#
ifndef DONTINCDEP
include $(DEP_all)
/trunk/tools/bin/xtwi File deleted
trunk/tools/bin/xtwi Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: trunk/tools/bin/create_disk =================================================================== --- trunk/tools/bin/create_disk (revision 22) +++ trunk/tools/bin/create_disk (nonexistent) @@ -1,267 +0,0 @@ -#!/usr/bin/perl -w -# $Id: create_disk 522 2013-05-24 17:50:29Z mueller $ -# -# Copyright 2013- by Walter F.J. Mueller -# -# This program is free software; you may redistribute and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 2, or at your option any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for complete details. -# -# Revision History: -# Date Rev Version Comment -# 2013-05-20 521 1.0 First draft -# - -use 5.10.0; # require Perl 5.10 or higher -use strict; # require strict checking - -use Getopt::Long; -use FileHandle; -use Fcntl qw(:seek); - -my %opts = (); - -GetOptions(\%opts, "help", "typ=s", "ini=s", "bad", "boot" - ) - or exit 1; - -sub do_inipatt; -sub do_badtable; -sub do_noboot; -sub print_help; - -# disk type table -my %disktype = ( - RK05 => {cyl=> 203, hd=> 2, sec=> 12, bps=> 512, bad=>0}, - RL01 => {cyl=> 256, hd=> 2, sec=> 40, bps=> 256, bad=>1}, - RL02 => {cyl=> 512, hd=> 2, sec=> 40, bps=> 256, bad=>1}, - RP06 => {cyl=> 815, hd=> 19, sec=> 22, bps=> 512, bad=>1} -); - -autoflush STDOUT 1 if (-p STDOUT); # autoflush if output into pipe - -if (exists $opts{help}) { - print_help(1); - exit 0; -} - -if (scalar(@ARGV) != 1) { - print STDERR "create_disk-E: specify one and only one output file\n"; - print_help(0); - exit 1; -} - -my $fnam = shift @ARGV; - -if (-e $fnam) { - print STDERR "create_disk-E: file '$fnam' exists already\n"; - exit 1; -} - -my $typ = uc($opts{typ}); -unless (defined $typ && exists $disktype{$typ}) { - print STDERR "create_disk-E: no or invalid --typ specification, use --help\n"; - exit 1; -} - -my $cyl = $disktype{$typ}{cyl}; -my $hd = $disktype{$typ}{hd}; -my $sec = $disktype{$typ}{sec}; -my $bps = $disktype{$typ}{bps}; -my $bad = $disktype{$typ}{bad}; - -if ($opts{bad} && !$bad) { - print STDERR "create_disk-E: --bad not supported for type '$typ', abort\n"; - exit 1; -} - -my $nblk = $cyl*$hd*$sec; -my $cap = $nblk * $bps; - -my $fh = new FileHandle; -sysopen($fh, $fnam, O_RDWR|O_CREAT) - or die "failed to create '$fnam': $!"; - -# seek to end, wrte 1 byte at end -my $rc = $fh->seek($cap-1, SEEK_SET); -if (not $rc) {die "seek failed: $!";} -my $buf = pack('C1',0); -$rc = syswrite($fh, $buf, length($buf)); -if ($rc<=0) {die "write failed: $!";} - -# handle init patterns -do_inipatt if $opts{ini}; - -# handle factory bad block table -do_badtable if $opts{bad}; - -# write dummy boot block -do_noboot if $opts{noboot}; - -#------------------------------------------------------------------------------- - -sub do_inipatt { - my $ini = $opts{ini}; - - if ($ini eq 'zero' ||$ini eq 'ones' || $ini eq 'dead') { - my @dat; - for (my $i=0; $i<$bps/4; $i++) { - push @dat, 0,0 if $ini eq 'zero'; - push @dat, -1,-1 if $ini eq 'ones'; - push @dat, 0xdead,0xbeaf if $ini eq 'dead'; - } - my $buf = pack('v*',@dat); - my $rc = $fh->seek(0, SEEK_SET); - if (not $rc) {die "seek failed: $!";} - for (my $i=0; $i<$nblk; $i++) { - $rc = syswrite($fh, $buf, length($buf)); - if ($rc<=0) {die "write failed: $!";} - } - - } elsif ($ini eq 'test') { - my $addr = 0; - my $cur_sec = 0; - my $cur_trk = 0; - my $cur_cyl = 0; - my $rc = $fh->seek(0, SEEK_SET); - if (not $rc) {die "seek failed: $!";} - for (my $i=0; $i<$nblk; $i++) { - my @dat; - for (my $i=0; $i<$bps/16; $i++) { - push @dat, ($addr & 0xffff); - push @dat, (($addr>>16) & 0xffff); - push @dat, $cur_cyl, $cur_trk, $cur_sec; - push @dat, $cyl, $hd, $sec; - $addr += 16; - } - my $buf = pack('v*',@dat); - $rc = syswrite($fh, $buf, length($buf)); - if ($rc<=0) {die "write failed: $!";} - $cur_sec += 1; - if ($cur_sec >= $sec) { - $cur_sec = 0; - $cur_trk += 1; - if ($cur_trk >= $hd) { - $cur_trk = 0; - $cur_cyl += 1; - } - } - } - - } else { - print STDERR "create_disk-W: unknown --ini mode '$ini', --ini ignored\n"; - } - return; -} - -#------------------------------------------------------------------------------- - -sub do_badtable { - my @dat; - push @dat, 012345, 012345; # pack number - push @dat, 0,0; # dummy c/s/h spec - for (my $i=4; $i<$bps/2; $i++) { - push @dat, -1; # end of table - } - my $buf = pack('v*',@dat); - - my $pos = $cap - $sec*$bps; # position of last track - my $rc = $fh->seek($pos, SEEK_SET); - if (not $rc) {die "seek failed: $!";} - my $nsec = ($sec > 10) ? 10 : $sec; # write last track, at most 10 sec - for (my $i=0; $i<$nsec; $i++) { - $rc = syswrite($fh, $buf, length($buf)); - if ($rc<=0) {die "write failed: $!";} - } - return; -} - -#------------------------------------------------------------------------------- - -sub do_noboot { - my @dat; - - push @dat, 0012700, 0000100; # start: mov #text, r0 - push @dat, 0105710; # 1$: tstb (r0) - push @dat, 0001406; # beq 3$ - push @dat, 0105737, 0177564; # 2$: tstb @#XCSR - push @dat, 0100375; # bpl 2$ - push @dat, 0112037, 0177566; # movb (r0)+,@#XBUF - push @dat, 0000770; # br 1$ - push @dat, 0000000; # 3$: halt - - my $buf = pack('v*',@dat); - my $rc = $fh->seek(0, SEEK_SET); - if (not $rc) {die "seek failed: $!";} - $rc = syswrite($fh, $buf, length($buf)); - if ($rc<=0) {die "write failed: $!";} - - $buf = "\r\n"; - $buf .= "\r\n"; - $buf .= "++======================================++\r\n"; - $buf .= "|| This is not a hardware bootable disk ||\r\n"; - $buf .= "++======================================++\r\n"; - $buf .= "\r\n"; - $buf .= "Disk image created with 'create_disk --typ=$typ':\r\n"; - $buf .= sprintf " number of cylinders: %6d\r\n", $cyl; - $buf .= sprintf " tracks per cylinder: %6d\r\n", $hd; - $buf .= sprintf " sectors per track: %6d\r\n", $sec; - $buf .= sprintf " block size: %6d\r\n", $bps; - $buf .= sprintf " total number of sectors: %6d\r\n", $nblk; - $buf .= sprintf " capacity in kByte: %6d\r\n", $cap/1024; - $buf .= "\r\n"; - $buf .= "CPU WILL HALT\r\n"; - $buf .= "\r\n"; - - # NOTE: the text above almost fills the first 512 bytes !! - # don't any more text, all has been said anyway !! - - $rc = $fh->seek(0100, SEEK_SET); - if (not $rc) {die "seek failed: $!";} - $rc = syswrite($fh, $buf, length($buf)); - if ($rc<=0) {die "write failed: $!";} - - return; -} - -#------------------------------------------------------------------------------- - -sub print_help { - my ($ptyp) = @_; - print "usage: create_disk [options] \n"; - print " --typ= specified disk type, must be specified\n"; - print " --ini= initialization pattern, can be\n"; - print " --bad create factory bad block table on last track\n"; - print " --boot write dummy boot block, print volume info and HALT\n"; - print " --help print full help, with list --typ and --ini options\n"; - return unless $ptyp; - - print "\n"; - print "currently supported disk types:\n"; - print " type #cyl #trk #sec bps tot_sec blocks -bad\n"; - foreach my $typ (sort keys %disktype) { - my $cyl = $disktype{$typ}{cyl}; - my $hd = $disktype{$typ}{hd}; - my $sec = $disktype{$typ}{sec}; - my $bps = $disktype{$typ}{bps}; - printf " %4s %4d %4d %4d %4d %7d %7d %3s\n", - $typ, $cyl, $hd, $sec, $bps, - ($cyl*$hd*$sec), ($cyl*$hd*$sec*$bps)/1024, - ($disktype{$typ}{bad} ? 'yes' : ' no'); - } - - print "\n"; - print "currently supported initialization patterns:\n"; - print " zero all zero (the default anyway if no -ini given)\n"; - print " ones all ones\n"; - print " dead alternating 0xdead 0xbeaf pattern\n"; - print " test writes unique groups of 8 16bit words\n"; - print "\n"; - print "For further details consults the create_disk man page.\n"; - return; -}
trunk/tools/bin/create_disk Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: trunk/tools/bin/vbomconv =================================================================== --- trunk/tools/bin/vbomconv (revision 22) +++ trunk/tools/bin/vbomconv (revision 21) @@ -1,7 +1,7 @@ #!/usr/bin/perl -w -# $Id: vbomconv 543 2013-11-03 22:43:41Z mueller $ +# $Id: vbomconv 518 2013-05-12 16:45:02Z mueller $ # -# Copyright 2007-2013 by Walter F.J. Mueller +# Copyright 2007-2012 by Walter F.J. Mueller # # This program is free software; you may redistribute and/or modify it under # the terms of the GNU General Public License as published by the Free @@ -14,7 +14,6 @@ # # Revision History: # Date Rev Version Comment -# 2013-10-20 543 1.10 add --viv_vhdl # 2012-02-05 456 1.9.4 redo filename substitution (= and :); add --get_top # 2012-01-02 448 1.9.3 use in ghdl_m -fexplicit also when simprim used # 2011-11-27 433 1.9.2 use in ghdl_m -fexplicit when unisim used @@ -58,7 +57,6 @@ GetOptions(\%opts, "help", "trace", "ise_path=s", "dep_xst", "dep_ghdl", "dep_isim", "xst_prj", "isim_prj", - "viv_vhdl", "ghdl_a", "ghdl_a_cmd", "ghdl_i", "ghdl_i_cmd", "ghdl_m", "ghdl_m_cmd", @@ -345,16 +343,6 @@ } } -# --viv_vhdl --------------------------------------------------------- - -if (exists $opts{viv_vhdl}) { - print "read_vhdl {\n"; - foreach (@file_list) { - print " $_\n"; - } - print "}\n"; -} - # --dep_xst ---------------------------------------------------------- if (exists $opts{dep_xst}) { @@ -825,7 +813,6 @@ print " --dep_isim generate isim dependencies for make (on stdout)\n"; print " --xst_prj generate xst project file (on stdout)\n"; print " --isim_prj generate isim project file (on stdout)\n"; - print " --viv_vhdl generate vivado read_vhdl command (on stdout)\n"; print " --ghdl_a generate and execute ghdl -a (analyse)\n"; print " --ghdl_a_cmd like ghdl_a, but only print command, no exec\n"; print " --ghdl_i generate and execute ghdl -i (inspect)\n";
/trunk/tools/bin/telnet_wrapper
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: telnet_wrapper 547 2013-12-29 13:10:07Z mueller $
# $Id: telnet_wrapper 516 2013-05-05 21:24:52Z mueller $
#
# Copyright 2009-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
13,7 → 13,6
# for complete details.
#
# Revision History:
# Date Rev Vers Comment
# 2009-11-07 246 1.0 Initial version
#
 
/trunk/tools/bin/ti_rri
1,6 → 1,6
#! /usr/bin/env tclsh
# -*- tcl -*-
# $Id: ti_rri 522 2013-05-24 17:50:29Z mueller $
# $Id: ti_rri 511 2013-04-27 13:51:46Z mueller $
#
# Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
15,7 → 15,6
#
# Revision History:
# Date Rev Version Comment
# 2013-05-19 521 1.1.6 setup proper interactive handling; add --run reap
# 2013-04-26 510 1.1.5 reorganize readline startup
# 2013-04-12 504 1.1.4 add --pack; trailing '-' argv implies --int
# 2013-02-05 482 1.1.3 stop server is rls found
91,9 → 90,8
 
# FIXME_code: should sync here with -run process run-down
# but no wait available in tcl (grr...)
if { "$runpid" ne "" } {
if { "$runpid" ne "" } {
after 100; # currently just wait 100ms
rutil::waitpid $runpid
}
if { $doexit } {
puts {}; # \n to ensure shell prompt on new line
146,14 → 144,43
puts { useful to start test benches, usually via 'tbw'}
puts { --fifo[=ARGS] open fifo type rlink port. Optional arguments are:}
puts { --fifo=[NAME[,OPTS]]}
puts { NAME fifo name prefix, default 'rlink_cext_fifo'}
puts { OPTS further options (comma separated list):}
puts { keep fifo is kept open on exit}
puts { --term[=ARGS] open term type rlink port. Optional arguments are:}
puts { --term=[NAME[,BAUD[,OPTS]]]}
puts { NAME tty device name, default 'USB0'}
puts { if not starting with '/' the name is}
puts { prefixed with '/dev/tty'}
puts { BAUD serial port baud rate, default '115k'}
puts { allowed baud rate settings are:}
puts { 2400, 4800, 9600, 19200, 19k, 38400, 38k}
puts { 57600, 57k, 115200, 115k, 230400, 230k}
puts { 460800, 460k, 500000, 500k, 921600, 921k}
puts { 1000000, 1000k, 1M, 1500000, 1500k}
puts { 2000000, 2000k, 2M, 2500000, 2500k}
puts { 3000000, 3000k, 3M, 4000000, 4000k, 4M}
puts { OPTS further options (comma separated list):}
puts { break send a break, do autobaud}
puts { cts hardware flow control (cts/rts)}
puts { xon software flow control (xon/xoff)}
puts { --cuff[=ARGS] open cuff type rlink port. Optional arguments are:}
puts { --cuff=[NAME[,OPTS]]}
puts { NAME USB path, default derived from environment}
puts { variables RETRO_FX2_VID and RETRO_FX2_PID}
puts { OPTS further options (comma separated list):}
puts { trace trace USB activities}
puts { --log=FILE set log file name. Default is to write to stdout.}
puts { --logl=LVL set log level, default is '2' allowed values 0-3.}
puts { --logl=LVL set log level, default is '2' allowed values:}
puts { 0 no logging}
puts { 1 log rlink commands with communication errors}
puts { 2 log rlink commands with failed checks}
puts { 3 log all rlink commands}
puts { --dmpl=LVL set dump level, default is '0', values like logl}
puts { --tiol=LVL set i/o trace level, default is '0', allowed 0-2.}
puts { --tiol=LVL set i/o trace level, default is '0', allowed values:}
puts { 0 no i/o trace}
puts { 1 trace buffer activities}
puts { 2 trace character activities}
puts { --int enter interactive mode even when commands given}
puts { --help display this help and exit}
puts { -- all following arguments are treated as tcl commands}
183,19 → 210,13
return 1
}
 
# setup auto path
lappend auto_path [file join $env(RETROBASE) tools tcl]
lappend auto_path [file join $env(RETROBASE) tools lib]
 
# setup default packages
package require rlink
package require rutiltpp
package require rlinktpp
package require rlink
 
# setup signal handling
rutil::sigaction -init
 
# setup connect and server objects
rlinkconnect rlc
rlinkserver rls rlc
 
280,10 → 301,11
# so we have to check whether stdin/stdout is a terminal and set
# tcl_interactive accordingly
 
set tcl_interactive [rutil::isatty STDIN]
# FIXME_code: fstat not available (grr...), currently just assume istty
set tcl_interactive 1
 
# determine whether interactive mode, if yes, initialize readline
if {$tcl_interactive && ($opts(int) || [llength $clist] == 0) } {
if {$opts(int) || [llength $clist] == 0 } {
set tirri_interactive 1
 
package require tclreadline
327,7 → 349,8
}
}
 
if { $tcl_interactive && $tirri_interactive } {
 
if { $tirri_interactive } {
::tclreadline::Loop
} else {
tirri_exit 0
/trunk/tools/bin/ticonv_pdpcp
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: ticonv_pdpcp 521 2013-05-20 22:16:45Z mueller $
# $Id: ticonv_pdpcp 504 2013-04-13 15:37:24Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
14,7 → 14,6
#
# Revision History:
# Date Rev Version Comment
# 2013-05-19 521 1.0.3 use -be subopt of -wibrb
# 2013-04-12 504 1.0.2 renamed from pi2ti_pdpcp; fix [rm]wi handling
# use wtcpu command; use wibrbbe command;
# 2013-02-05 483 1.0.1 make cpucmd parametrizable
105,7 → 104,7
if ($be == 0) {
print "$cpu cp -wibrb 0$2\n";
} else {
printf "$cpu cp -wibrb 0%6.6o -be %o\n", $base&0177700, $be;
printf "$cpu cp -wibrbbe 0%6.6o %o\n", $base&0177700, $be;
}
 
# (read) [d=data] type commands: rrx,rps,rm,rmi --------------------
/trunk/tools/bin/asm-11
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: asm-11 547 2013-12-29 13:10:07Z mueller $
# $Id: asm-11 503 2013-04-06 19:44:13Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
2447,8 → 2447,8
#-------------------------------------------------------------------------------
 
sub print_help {
print "usage: asm-11 [OPTIONS]... [FILE]...\n";
print " --I=path adds path to the .include search path\n";
print "usage: asm-11 <file>\n";
print " --I path adds path to the .include search path\n";
print " --lst create listing (default file name)\n";
print " --olst=fnam create listing (concrete file name)\n";
print " --lda create absolute loader output (default file name)\n";
/trunk/tools/bin/fx2load_wrapper
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: fx2load_wrapper 547 2013-12-29 13:10:07Z mueller $
# $Id: fx2load_wrapper 470 2013-01-05 17:28:46Z mueller $
#
# Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
203,7 → 203,7
#-------------------------------------------------------------------------------
 
sub print_help {
print "usage: fx2load_wrapper [--board=b] [--file=f] [OPTIONS]\n";
print "usage: fx2load_wrapper [--board=b] [--file=f] <opts>\n";
print " --help this message\n";
print " --dry_run print command only\n";
print " --force reload even when proper firmware detected\n";
/trunk/tools/bin/isemsg_filter
1,7 → 1,7
#!/usr/bin/perl -w
# $Id: isemsg_filter 550 2014-02-03 08:16:57Z mueller $
# $Id: isemsg_filter 450 2012-01-05 23:21:41Z mueller $
#
# Copyright 2011-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# Copyright 2011-2012 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
# This program is free software; you may redistribute and/or modify it under
# the terms of the GNU General Public License as published by the Free
14,7 → 14,6
#
# Revision History:
# Date Rev Version Comment
# 2014-02-01 550 1.1.1 rename --pack to --pacc (accepted is meant here)
# 2012-01-04 450 1.1 preliminary check for par 'all constraints met'
# 2011-08-14 406 1.0 Initial version
#
27,7 → 26,7
 
my %opts = ();
 
GetOptions(\%opts, "help", "pacc") || exit 1;
GetOptions(\%opts, "help", "pack") || exit 1;
 
sub print_help;
sub read_mfs;
51,7 → 50,7
}
 
if (!defined $type || !defined $mfsnam || !defined $lognam) {
print STDERR "%isemsg_filter-E: one of 'type mfset log' missing \n\n";
print STDERR "%isemsg_filter-E: one of 'type mfs log' missing \n\n";
print_help;
exit 1;
}
84,7 → 83,7
}
 
if ($nackcnt) {
print "Unexpected messages of type [$type] from $lognam:\n";
print "Non-acknowledged messages of type [$type] from $lognam:\n";
foreach (@mlist) {
next if $_->[2];
print $_->[0] . "\n";
100,8 → 99,8
}
}
 
if ($ackcnt && exists $opts{pacc}) {
print "Accepted messages of type [$type] from $lognam:\n";
if ($ackcnt && exists $opts{pack}) {
print "Acknowledged messages of type [$type] from $lognam:\n";
foreach (@flist) {
next if $_->[1] == 0;
printf "%4d: %s\n", $_->[1], $_->[0];
110,7 → 109,7
}
 
if ($misscnt) {
print "Missed messages of type [$type] from $lognam:\n";
print "Missed acknowledged messages of type [$type] from $lognam:\n";
foreach (@flist) {
next if $_->[1] != 0;
printf "%4d: %s\n", $_->[1], $_->[0];
203,11 → 202,11
#-------------------------------------------------------------------------------
 
sub print_help {
print "usage: isemsg_filter [options] type mfset log\n";
print " type log file type: xst,tra,map,par,twr, or bgn\n";
print " mfset message filter set file\n";
print " log log file\n";
print "usage: isemsg_filter [options] type mfs log\n";
print " type log file type: xst,tra,map,par,twr, or bgn\n";
print " mfs message filter setup file\n";
print " log log file\n";
print " Options:\n";
print " --pacc print summary of accepted messages\n";
print " --pack print summary of acknowledged messages\n";
print " --help this message\n";
}
/trunk/tools/bin/config_wrapper
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: config_wrapper 534 2013-09-22 21:37:24Z mueller $
# $Id: config_wrapper 467 2013-01-02 19:49:05Z mueller $
#
# Copyright 2010-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
14,7 → 14,6
#
# Revision History:
# Date Rev Version Comment
# 2013-09-21 534 1.1.8 add nexys4 support
# 2013-01-02 467 1.1.7 jconfig: prepend '0x' to support 'jtag #2007'
# 2012-02-11 457 1.1.6 jconfig: use RETRO_FX2_VID/PID for USB VID/PID
# 2011-12-03 435 1.1.5 add nexys3 support;
48,7 → 47,6
$opts{path} = "xc3s1000" if $opts{board} eq "s3board";
$opts{path} = "xc3s1200e" if $opts{board} eq "nexys2";
$opts{path} = "xc6slx16" if $opts{board} eq "nexys3";
$opts{path} = "xc7a100t" if $opts{board} eq "nexys4";
$opts{path} = "xc6slx45" if $opts{board} eq "atlys";
$opts{path} = "xc6slx45t" if $opts{board} eq "sp605";
}
95,10 → 93,6
@plist = ($ipath);
$pfpga = 1;
 
} elsif ($board eq "nexys4" && $ipath eq "xc7a100t") { # nexys4
@plist = ($ipath);
$pfpga = 1;
 
} elsif ($board eq "atlys" && $ipath eq "xc6slx45") { # atlys
@plist = ($ipath);
$pfpga = 1;
118,7 → 112,6
elsif ($part =~ m/^xc3s\d*$/) { push @blist, "spartan3/data" } # s-3
elsif ($part =~ m/^xc3s\d*e$/) { push @blist, "spartan3e/data" } # s-3e
elsif ($part =~ m/^xc6slx\d*t?$/) { push @blist, "spartan6/data" }# s-6 lx
elsif ($part =~ m/^xc7a\d*t?$/) { push @blist, "artix7/data" } # 7-a
elsif ($part =~ m/^xccace$/) { push @blist, "acempm/data" } # sys-ace
else {
print STDERR "config_wrapper-E: no bsdl path known for $part\n";
/trunk/tools/bin/xilinx_ghdl_unisim
1,8 → 1,7
#!/bin/sh
# $Id: xilinx_ghdl_unisim 547 2013-12-29 13:10:07Z mueller $
# $Id: xilinx_ghdl_unisim 248 2009-11-08 22:51:38Z mueller $
#
# Revision History:
# Date Rev Vers Comment
# 2009-11-08 248 1.1 adopt to ISE 11.1, use VITAL models from ./primitive
# 2007-10-26 92 1.0 Initial version
#
/trunk/tools/bin/xilinx_ghdl_simprim
1,8 → 1,7
#!/bin/sh
# $Id: xilinx_ghdl_simprim 547 2013-12-29 13:10:07Z mueller $
# $Id: xilinx_ghdl_simprim 248 2009-11-08 22:51:38Z mueller $
#
# Revision History:
# Date Rev Vers Comment
# 2009-11-08 248 1.1 adopt to ISE 11.1, use VITAL models from ./primitive
# 2007-10-26 92 1.0 Initial version
#
/trunk/tools/bin/svn_set_ignore
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: svn_set_ignore 547 2013-12-29 13:10:07Z mueller $
# $Id: svn_set_ignore 314 2010-07-09 17:38:41Z mueller $
#
# Copyright 2007-2010 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
13,7 → 13,6
# for complete details.
#
# Revision History:
# Date Rev Vers Comment
# 2010-04-26 284 1.0.1 add error check for GetOptions
# 2007-06-16 56 1.0 Initial version
#
/trunk/tools/bin/telnet_starter
1,5 → 1,5
#!/usr/bin/perl -w
# $Id: telnet_starter 547 2013-12-29 13:10:07Z mueller $
# $Id: telnet_starter 314 2010-07-09 17:38:41Z mueller $
#
# Copyright 2009-2010 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
#
13,7 → 13,6
# for complete details.
#
# Revision History:
# Date Rev Vers Comment
# 2010-07-04 312 1.0.3 correct telnet_wrapper path
# 2010-04-26 284 1.0.2 add error check for GetOptions
# 2009-11-08 248 1.0.1 proper -h handling & text; add -t support;
/trunk/tools/oskit/rt11-40_rk/README_rt11-40_rkset.txt
1,4 → 1,4
# $Id: README_rt11-40_rkset.txt 519 2013-05-12 20:44:16Z mueller $
# $Id: $
 
Notes on oskit: RT-11 V4.0 system on RK05 volumes
 
/trunk/tools/oskit/unix-v5_rk/uv5_rk_boot.scmd
1,4 → 1,4
; $Id: uv5_rk_boot.scmd 519 2013-05-12 20:44:16Z mueller $
; $Id: uv5_rk_boot.scmd 517 2013-05-09 21:34:45Z mueller $
;
; Setup file for Unix V5 RK05 based system
;
/trunk/tools/oskit/211bsd_rk/211bsd_rk_boot.scmd
1,4 → 1,4
; $Id: 211bsd_rk_boot.scmd 519 2013-05-12 20:44:16Z mueller $
; $Id: 211bsd_rk_boot.scmd 517 2013-05-09 21:34:45Z mueller $
;
; Setup file for 211bsd RK based system
;
/trunk/tools/oskit/rsx11m-40_rk/rsx11m-40_rk_boot.scmd
1,4 → 1,4
; $Id: rsx11m-40_rk_boot.scmd 525 2013-07-06 12:19:39Z mueller $
; $Id: $
;
; Setup file for RSX11-M V4.0 RK05 based system
;
/trunk/tools/oskit/rsx11m-40_rk/rsx11m-40_rk_boot.tcl
1,4 → 1,4
# $Id: rsx11m-40_rk_boot.tcl 525 2013-07-06 12:19:39Z mueller $
# $Id: $
#
# Setup file for RSX11-M V4.0 RK05 based system
#
/trunk/tools/tbench/test_w11a_inst_traps.tcl
1,21 → 1,16
# $Id: test_w11a_inst_traps.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_w11a_inst_traps.tcl 510 2013-04-26 16:14:57Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
#
# Revision History:
# Date Rev Version Comment
# 2014-03-01 552 1.0.1 check that unused regs stay 0; use stack:; check sp;
# 2013-04-01 502 1.0 Initial version
#
# Test trap type instructions: bpt,iot, emt nn, trap nn
#
 
# ----------------------------------------------------------------------------
rlc log "test_w11a_inst_traps: test trap type instructions"
 
# code register pre/post conditions beyond defaults
# r5 #data -> #data+6*5*2
$cpu ldasm -lst lst -sym sym {
. = 14
.word h.bpt ; vec 14: bpt
31,7 → 26,6
psw = 177776
;
. = 1000
stack:
start: mov #350,@#psw
bpt
350$: mov #351,@#psw
47,8 → 41,8
355$: halt
stop:
;
h.bpt: mov @#psw,(r5)+ ; record psw
mov #1014,(r5)+ ; record trap id
h.bpt: mov @#psw,(r5)+
mov #1014,(r5)+
br iexit
h.iot: mov @#psw,(r5)+
mov #1020,(r5)+
59,12 → 53,11
h.trp: mov @#psw,(r5)+
mov #1034,(r5)+
;
iexit: mov (sp),r4 ; get stack PC
mov r4,(r5)+ ; record PC
mov 2(sp),(r5)+ ; record stack PS
mov -2(r4),(r5)+ ; record opcode of trap
iexit: mov (sp),r4
mov r4,(r5)+
mov 2(sp),(r5)+
mov -2(r4),(r5)+
rti
;
data: .blkw 6.*5.
.word 177777
}
71,13 → 64,9
 
rw11::asmrun $cpu sym [list r5 $sym(data) ]
rw11::asmwait $cpu sym 1.0
rw11::asmtreg $cpu [list r0 0 \
r1 0 \
r2 0 \
r3 0 \
r5 [expr {$sym(data) + 6*5*2}] \
sp $sym(stack) ]
 
rw11::asmtreg $cpu [list r0 0 r1 0 r2 0 r3 0 \
r5 [expr {$sym(data) + 6*5*2}] \
sp $sym(start) ]
# data: trap ps; trap id; stack-pc; stack-ps opcode
rw11::asmtmem $cpu $sym(data) \
[list 000340 001014 $sym(start:350$) 000350 0000003 \
/trunk/tools/tbench/test_w11a_dstm_word_flow.tcl
1,27 → 1,17
# $Id: test_w11a_dstm_word_flow.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_w11a_dstm_word_flow.tcl 510 2013-04-26 16:14:57Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
#
# Revision History:
# Date Rev Version Comment
# 2014-03-01 552 1.0.1 check that unused regs stay 0
# 2013-03-31 502 1.0 Initial version
#
# Test dstm flow with inc ... instructions for word access
#
 
# ----------------------------------------------------------------------------
rlc log "test_w11a_dstm_word_flow: test dstm flow for word with inc ..."
rlc log " r0,(r0),(r0)+,@(r0)+,-(r0),@-(r0) (mode=0,1,2,3,4,5)"
 
# code register pre/post conditions beyond defaults
# r0 #010 -> #011
# r1 #data1 -> #data1
# r2 #data2 -> #data2+4
# r3 #pdata3 -> #pdata3+4
# r4 #data4e -> #data4e-4
# r5 #pdat5e -> #pdat5e-4
$cpu ldasm -lst lst -sym sym {
. = 1000
start: inc r0
36,7 → 26,6
inc @-(r5)
halt
stop:
;
data1: .word 20
data2: .word 30,31
data3: .word 40,41
64,12 → 53,8
r5 [expr {$sym(pdat5e) - 4}] ]
rw11::asmtmem $cpu $sym(data1) {021 031 032 041 042 051 052 061 062}
 
# ----------------------------------------------------------------------------
 
rlc log " nn(r0),@nn(r0),var,@var,@#var (mode=6,7,67,77,37)"
 
# code register pre/post conditions beyond defaults
# r0 #data0-020 -> ..same
# r1 #pdata1-040 -> ..same
$cpu ldasm -lst lst -sym sym {
. = 1000
start: inc 20(r0)
79,7 → 64,6
inc @#data4
halt
stop:
;
data0: .word 200
data1: .word 210
data2: .word 220
93,10 → 77,4
rw11::asmrun $cpu sym [list r0 [expr {$sym(data0)-020}] \
r1 [expr {$sym(pdata1)-040}] ]
rw11::asmwait $cpu sym 1.0
rw11::asmtreg $cpu [list r0 [expr {$sym(data0)-020}] \
r1 [expr {$sym(pdata1)-040}] \
r2 0 \
r3 0 \
r4 0 \
r5 0 ]
rw11::asmtmem $cpu $sym(data0) {0201 0211 0221 0231 0241}
/trunk/tools/tbench/test_w11a_srcr_word_flow.tcl
1,4 → 1,4
# $Id: test_w11a_srcr_word_flow.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_w11a_srcr_word_flow.tcl 510 2013-04-26 16:14:57Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
5,21 → 5,13
#
# Revision History:
# Date Rev Version Comment
# 2014-03-01 552 1.0.1 check sp
# 2013-03-31 502 1.0 Initial version
#
# Test srcr flow with mov ...,rx instructions for word access
#
 
# ----------------------------------------------------------------------------
rlc log "test_w11a_srcr_word_flow: test srcr flow for word with mov ...,rx"
rlc log " r0 (mode=0)"
 
# code register pre/post conditions beyond defaults
# r0 01234 -> ..same
# r1 -> 01234
# r2 -> #stack
# r3 -> #start
$cpu ldasm -lst lst -sym sym {
. = 1000
stack:
37,19 → 29,9
r2 $sym(stack) \
r3 $sym(lpc) \
r4 0 \
r5 0 \
sp $sym(stack) ]
r5 0]
 
# ----------------------------------------------------------------------------
rlc log " (r0),(r0)+,-(r0) (mode=1,2,4)"
 
# code register pre/post conditions beyond defaults
# r0 #data -> ..same
# r1 -> 01001
# r2 -> 01001
# r3 -> 01002
# r4 -> 01002
# r5 -> 01001
$cpu ldasm -lst lst -sym sym {
. = 1000
start: mov (r0),r1
59,7 → 41,6
mov -(r0),r5
halt
stop:
;
data: .word 1001
.word 1002
}
71,18 → 52,9
r2 001001 \
r3 001002 \
r4 001002 \
r5 001001 ]
r5 001001]
 
# ----------------------------------------------------------------------------
rlc log " @(r0)+,@-(r0) (mode=3,5)"
 
# code register pre/post conditions beyond defaults
# r0 #pdata -> ..same
# r1 -> 02001
# r2 -> 02002
# r3 -> #pdata+4
# r4 -> 02002
# r5 -> 02001
$cpu ldasm -lst lst -sym sym {
. = 1000
start: mov @(r0)+,r1
92,7 → 64,6
mov @-(r0),r5
halt
stop:
;
pdata: .word data0
.word data1
data0: .word 2001
107,17 → 78,9
r2 002002 \
r3 [expr {$sym(pdata)+4}] \
r4 002002 \
r5 002001 ]
r5 002001]
 
# ----------------------------------------------------------------------------
rlc log " nn(r0),@nn(r0) (mode=6,7)"
 
# code register pre/post conditions beyond defaults
# r0 #data -> ..same
# r1 -> 03001
# r2 -> 03002
# r3 -> 03003
# r4 -> 03004
$cpu ldasm -lst lst -sym sym {
. = 1000
start: mov 2(r0),r1
126,7 → 89,6
mov @10(r0),r4
halt
stop:
;
data: .word 177777
.word 003001
.word data0
144,16 → 106,9
r2 003002 \
r3 003003 \
r4 003004 \
r5 0 ]
r5 0]
 
# ----------------------------------------------------------------------------
rlc log " #nn,@#nn,var,@var (mode=27,37,67,77)"
 
# code register pre/post conditions beyond defaults
# r1 -> 04001
# r2 -> 04002
# r3 -> 04003
# r4 -> 04004
$cpu ldasm -lst lst -sym sym {
. = 1000
start: mov #004001,r1
162,7 → 117,6
mov @pdata4,r4
halt
stop:
;
pdata4: .word data4
 
data2: .word 004002
177,4 → 131,4
r2 004002 \
r3 004003 \
r4 004004 \
r5 0 ]
r5 0]
/trunk/tools/tbench/test_w11a_dsta_flow.tcl
1,30 → 1,19
# $Id: test_w11a_dsta_flow.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_w11a_dsta_flow.tcl 510 2013-04-26 16:14:57Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
#
# Revision History:
# Date Rev Version Comment
# 2014-03-01 552 1.0.1 use stack:; check sp;
# 2013-03-31 502 1.0 Initial version
#
# Test dsta flow with jsr pc,... instructions
#
 
# ----------------------------------------------------------------------------
rlc log "test_w11a_dsta_flow: test dsta flow with jsr pc,..."
rlc log " (r0),(r0)+,@(r0)+,-(r0),@-(r0) (mode=1,2,3,4,5)"
 
# code register pre/post conditions beyond defaults
# r0 #sub00 -> ..same
# r1 #sub10 -> #sub10+2
# r2 #psub2 -> #psub2+4
# r3 #sub30+2 -> #sub30
# r4 #psub4e -> #psub4
# r5 #data -> #data+7*2*2
$cpu ldasm -lst lst -sym sym {
. = 1000
stack:
start: jsr pc,(r0)
100$: jsr pc,(r1)+
110$: jsr pc,@(r2)+
34,7 → 23,6
140$: jsr pc,@-(r4)
141$: halt
stop:
;
psub2: .word sub20, sub21
psub4: .word sub41, sub40
psub4e:
71,12 → 59,11
r5 $sym(data) ]
rw11::asmwait $cpu sym 1.0
rw11::asmtreg $cpu [list r0 $sym(sub00) \
r1 [expr {$sym(sub10)+2}] \
r2 [expr {$sym(psub2)+4}] \
r3 $sym(sub30) \
r4 $sym(psub4) \
r5 [expr {$sym(data) + 7*2*2}] \
sp $sym(stack) ]
r1 [expr {$sym(sub10)+2}] \
r2 [expr {$sym(psub2)+4}] \
r3 $sym(sub30) \
r4 $sym(psub4) \
r5 [expr {$sym(data) + 7*2*2}] ]
rw11::asmtmem $cpu $sym(data) [list \
0100 $sym(start:100$) \
0110 $sym(start:110$) \
87,16 → 74,9
0141 $sym(start:141$) \
0177777 ]
 
# ----------------------------------------------------------------------------
rlc log " nn(r0),@nn(r0),var,@var,@#var (mode=6,7,67,77,37)"
 
# code register pre/post conditions beyond defaults
# r0 #sub00-020 -> ..same
# r1 #psub10-040 -> ..same
# r5 #data -> #data+5*2*2
$cpu ldasm -lst lst -sym sym {
. = 1000
stack:
start: jsr pc,20(r0)
1100$: jsr pc,@40(r1)
1110$: jsr pc,sub20
104,7 → 84,6
1130$: jsr pc,@#sub40
1140$: halt
stop:
;
psub10: .word sub10
psub30: .word sub30
sub00: mov #1100,(r5)+
127,8 → 106,8
}
 
rw11::asmrun $cpu sym [list r0 [expr {$sym(sub00)-020}] \
r1 [expr {$sym(psub10)-040}] \
r5 $sym(data) ]
r1 [expr {$sym(psub10)-040}] \
r5 $sym(data) ]
rw11::asmwait $cpu sym 1.0
rw11::asmtreg $cpu [list r0 [expr {$sym(sub00)-020}] \
r1 [expr {$sym(psub10)-040}] \
135,8 → 114,7
r2 0 \
r3 0 \
r4 0 \
r5 [expr {$sym(data) + 5*2*2}] \
sp $sym(stack) ]
r5 [expr {$sym(data) + 5*2*2}] ]
rw11::asmtmem $cpu $sym(data) [list \
01100 $sym(start:1100$) \
01110 $sym(start:1110$) \
/trunk/tools/tbench/test_w11a_dstw_word_flow.tcl
1,27 → 1,17
# $Id: test_w11a_dstw_word_flow.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_w11a_dstw_word_flow.tcl 510 2013-04-26 16:14:57Z mueller $
#
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
#
# Revision History:
# Date Rev Version Comment
# 2014-03-01 552 1.0.1 check that unused regs stay 0
# 2013-03-31 502 1.0 Initial version
#
# Test dstw flow with mov #nnn,... instructions for word access
#
 
# ----------------------------------------------------------------------------
rlc log "test_w11a_dstw_word_flow: test dstw flow for word with mov #nnn,..."
rlc log " r0,(r0),(r0)+,@(r0)+,-(r0),@-(r0) (mode=0,1,2,3,4,5)"
 
# code register pre/post conditions beyond defaults
# r0 -> 0100
# r1 #data1 -> ..same
# r2 #data2 -> #data2+4
# r3 #pdata3 -> #pdata3+4
# r4 #data4e -> #data4e-4
# r5 #pdat5e -> #pdat5e-4
$cpu ldasm -lst lst -sym sym {
. = 1000
start: mov #100,r0
36,7 → 26,6
mov #150,@-(r5)
halt
stop:
;
data1: .word 0
data2: .word 0,0
data3: .word 0,0
50,10 → 39,10
}
 
rw11::asmrun $cpu sym [list r1 $sym(data1) \
r2 $sym(data2) \
r3 $sym(pdata3) \
r4 $sym(data4e) \
r5 $sym(pdat5e) ]
r2 $sym(data2) \
r3 $sym(pdata3) \
r4 $sym(data4e) \
r5 $sym(pdat5e) ]
rw11::asmwait $cpu sym 1.0
rw11::asmtreg $cpu [list r0 0100 \
r1 $sym(data1) \
63,12 → 52,9
r5 [expr {$sym(pdat5e) - 4}] ]
rw11::asmtmem $cpu $sym(data1) {0110 0120 0121 0130 0131 0140 0141 0150 0151}
 
# ----------------------------------------------------------------------------
 
 
rlc log " nn(r0),@nn(r0),var,@var,@#var (mode=6,7,67,77,37)"
 
# code register pre/post conditions beyond defaults
# r0 #data0-020 -> ..same
# r1 #pdata0-040 -> ..same
$cpu ldasm -lst lst -sym sym {
. = 1000
start: mov #200,20(r0)
78,7 → 64,6
mov #240,@#data4
halt
stop:
;
data0: .word 0
data1: .word 0
data2: .word 0
92,10 → 77,4
rw11::asmrun $cpu sym [list r0 [expr {$sym(data0)-020}] \
r1 [expr {$sym(pdata1)-040}] ]
rw11::asmwait $cpu sym 1.0
rw11::asmtreg $cpu [list r0 [expr {$sym(data0)-020}] \
r1 [expr {$sym(pdata1)-040}] \
r2 0 \
r3 0 \
r4 0 \
r5 0 ]
rw11::asmtmem $cpu $sym(data0) {0200 0210 0220 0230 0240}
/trunk/tools/tbench/w11a_all.dat
1,11 → 1,9
# $Id: w11a_all.dat 552 2014-03-02 23:02:00Z mueller $
# $Id: w11a_all.dat 504 2013-04-13 15:37:24Z mueller $
#
## steering file for all w11a tests
#
test_cp_gpr.tcl
test_cp_psw.tcl
test_cp_membasics.tcl
test_cp_ibrbasics.tcl
test_cp_cpubasics.tcl
test_w11a_srcr_word_flow.tcl
test_w11a_dstw_word_flow.tcl
/trunk/tools/tbench/test_cp_gpr.tcl
1,4 → 1,4
# $Id: test_cp_gpr.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_cp_gpr.tcl 502 2013-04-02 19:29:30Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
13,7 → 13,6
# k,s,u mode sp are distinct
#
 
# ----------------------------------------------------------------------------
rlc log "test_cp_gpr: test cp access to general purpose registers"
rlc log " write set 0"
$cpu cp -wps 0000000
/trunk/tools/tbench/test_cp_psw.tcl
1,4 → 1,4
# $Id: test_cp_psw.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_cp_psw.tcl 502 2013-04-02 19:29:30Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
16,7 → 16,6
# This test not only verifies psw, but also all basic access methods
#
 
# ----------------------------------------------------------------------------
rlc log "test_cp_psw: test psw access via all methods"
rlc log " write/read via cp"
foreach w { 000000 000017 } {
/trunk/tools/tbench/test_cp_cpubasics.tcl
1,4 → 1,4
# $Id: test_cp_cpubasics.tcl 552 2014-03-02 23:02:00Z mueller $
# $Id: test_cp_cpubasics.tcl 504 2013-04-13 15:37:24Z mueller $
#
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
13,11 → 13,8
# 3. single step code via -step
#
 
# ----------------------------------------------------------------------------
rlc log "test_cp_cpubasics: Test very basic cpu interface gymnastics"
rlc log " load code via lsasm"
 
#
$cpu ldasm -lst lst -sym sym {
. = 1000
start: inc r2
/trunk/tools/asm-11/tests/test_0040_asci.mac
1,4 → 1,4
; $Id: test_0040_asci.mac 548 2014-01-12 09:48:47Z mueller $
; $Id: test_0040_asci.mac 501 2013-03-30 13:53:39Z mueller $
;
; test .ascii/.asciz
;
8,14 → 8,14
.asect
.blkw 400
.ascii /foobar/ ;;!! 001000:
.asciz /fooba/ ;;!! 001006:
.ascii /foobar/
.asciz /fooba/
 
a0: .ascii /test/ ;;!! 001014:
a1: .asciz /test1/ ;;!! 001020:
a0: .ascii /test/
a1: .asciz /test1/
 
a2: .ascii <CR><LF>/test/ ;;!! 001026:
a3: .asciz /test/<CR><LF> ;;!! 001034:
a2: .ascii <CR><LF>/test/
a3: .asciz /test/<CR><LF>
 
a4: .asciz <CR><LF>/retro/<CR><LF>|computing|
a5: .ascii /Hello World!/
/trunk/tools/asm-11/tests/Makefile
1,4 → 1,3
# $Id: Makefile 525 2013-07-06 12:19:39Z mueller $
#
# Revision History:
# Date Rev Version Comment
/trunk/tools/asm-11/tests-err/Makefile
1,4 → 1,3
# $Id: Makefile 525 2013-07-06 12:19:39Z mueller $
#
# Revision History:
# Date Rev Version Comment
/trunk/tools/asm-11/w11/sys/dl11/Makefile
1,4 → 1,3
# $Id: Makefile 525 2013-07-06 12:19:39Z mueller $
#
# Revision History:
# Date Rev Version Comment
/trunk/tools/dox/make_doxy
1,5 → 1,5
#!/bin/sh
# $Id: make_doxy 523 2013-05-26 21:54:55Z mueller $
# $Id: make_doxy 488 2013-02-16 18:49:47Z mueller $
#
# Revision History:
# Date Rev Version Comment
35,6 → 35,6
#
echo ""
echo "to view use"
echo " firefox $RETRODOXY/doxy/w11/cpp/html/index.html &"
echo " firefox $RETRODOXY/doxy/w11/tcl/html/index.html &"
echo " firefox $RETRODOXY/doxy/w11/vhd/html/index.html &"
echo " firefox $RETRODOXY/w11/cpp/html/index.html &"
echo " firefox $RETRODOXY/w11/tcl/html/index.html &"
echo " firefox $RETRODOXY/w11/vhd/html/index.html &"
/trunk/tools/dox/w11_vhd_all.Doxyfile
5,10 → 5,10
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = w11 - vhd
PROJECT_NUMBER = 0.60
PROJECT_BRIEF = "W11 CPU core and support modules"
PROJECT_NUMBER = 0.57
PROJECT_BRIEF = "Backend server for Rlink and w11"
PROJECT_LOGO =
OUTPUT_DIRECTORY = $(RETRODOXY)/doxy/w11/vhd
OUTPUT_DIRECTORY = $(RETRODOXY)/w11/vhd
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
262,7 → 262,7
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = $(RETRODOXY)/w11/vhd/vhd.tag
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
/trunk/tools/dox/w11_cpp.Doxyfile
5,10 → 5,10
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = w11 - cpp
PROJECT_NUMBER = 0.60
PROJECT_NUMBER = 0.57
PROJECT_BRIEF = "Backend server for Rlink and w11"
PROJECT_LOGO =
OUTPUT_DIRECTORY = $(RETRODOXY)/doxy/w11/cpp
OUTPUT_DIRECTORY = $(RETRODOXY)/w11/cpp
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
262,8 → 262,8
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = $(RETRODOXY)/w11/cpp/cpp.tag
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
/trunk/tools/dox/w11_tcl.Doxyfile
5,10 → 5,10
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = w11 - tcl
PROJECT_NUMBER = 0.60
PROJECT_NUMBER = 0.57
PROJECT_BRIEF = "Backend server for Rlink and w11"
PROJECT_LOGO =
OUTPUT_DIRECTORY = $(RETRODOXY)/doxy/w11/tcl
OUTPUT_DIRECTORY = $(RETRODOXY)/w11/tcl
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
102,11 → 102,10
FILE_PATTERNS = *.tcl \
*.dox
RECURSIVE = YES
EXCLUDE =
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */.svn* \
*/tests/* \
*/pkgIndex.tcl
*/tests/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
260,7 → 259,7
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = $(RETRODOXY)/w11/tcl/tcl.tag
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
/trunk/tools/fx2/src/README_iso_jtag.txt
1,4 → 1,4
$Id: README_iso_jtag.txt 525 2013-07-06 12:19:39Z mueller $
$ Id: $
 
usb_jtag using Cypress FX2 chip
===============================
/trunk/rtl/sys_gen/tst_fx2loop/nexys3/sys_tst_fx2loop_n3.vhd
1,4 → 1,4
-- $Id: sys_tst_fx2loop_n3.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_tst_fx2loop_n3.vhd 514 2013-05-03 16:11:23Z mueller $
--
-- Copyright 2012-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
15,7 → 15,7
-- Module Name: sys_tst_fx2loop_n3 - syn
-- Description: test of Cypress EZ-USB FX2 controller
--
-- Dependencies: vlib/xlib/s6_cmt_sfs
-- Dependencies: vlib/xlib/dcm_sfs
-- vlib/genlib/clkdivce
-- bpgen/sn_humanio
-- tst_fx2loop_hiomap
28,7 → 28,7
-- Test bench: -
--
-- Target Devices: generic
-- Tool versions: xst 13.3, 14.5, 14.6; ghdl 0.29
-- Tool versions: xst 13.3, 14.5; ghdl 0.29
--
-- Synthesized (xst):
-- Date Rev ise Target flop lutl lutm slic t peri ctl/MHz
45,7 → 45,6
--
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2013-04-24 510 1.0.1 CLKDIV.CDUWIDTH now 8, support >127 sysclk
-- 2012-04-09 461 1.0 Initial version (derived from sys_tst_fx2loop_n2)
------------------------------------------------------------------------------
138,15 → 137,11
report "assert sys_conf_clksys on MHz grid"
severity failure;
 
GEN_CLKSYS : s6_cmt_sfs
DCM : dcm_sfs
generic map (
VCO_DIVIDE => sys_conf_clksys_vcodivide,
VCO_MULTIPLY => sys_conf_clksys_vcomultiply,
OUT_DIVIDE => sys_conf_clksys_outdivide,
CLKIN_PERIOD => 10.0,
CLKIN_JITTER => 0.01,
STARTUP_WAIT => false,
GEN_TYPE => sys_conf_clksys_gentype)
CLKFX_DIVIDE => sys_conf_clkfx_divide,
CLKFX_MULTIPLY => sys_conf_clkfx_multiply,
CLKIN_PERIOD => 10.0)
port map (
CLKIN => I_CLK100,
CLKFX => CLK,
/trunk/rtl/sys_gen/tst_fx2loop/nexys3/sys_tst_fx2loop_n3.vbom
14,8 → 14,8
../../../bplib/nxcramlib/nxcramlib.vhd
${sys_conf}
# components
[xst,isim]../../../vlib/xlib/s6_cmt_sfs_unisim.vbom
[ghdl]../../../vlib/xlib/s6_cmt_sfs_gsim.vbom
[xst,isim]../../../vlib/xlib/dcm_sfs_unisim_s3e.vbom
[ghdl]../../../vlib/xlib/dcm_sfs_gsim.vbom
../../../vlib/genlib/clkdivce.vbom
../../../bplib/bpgen/sn_humanio.vbom
../tst_fx2loop_hiomap.vbom
/trunk/rtl/sys_gen/tst_fx2loop/nexys3/ic/sys_conf.vhd
1,4 → 1,4
-- $Id: sys_conf.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf.vhd 510 2013-04-26 16:14:57Z mueller $
--
-- Copyright 2012-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
16,10 → 16,9
-- Description: Definitions for sys_tst_fx2loop_ic_n3 (for synthesis)
--
-- Dependencies: -
-- Tool versions: xst 13.3, 14.5, 14.6; ghdl 0.29
-- Tool versions: xst 13.3, 14.5; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.2 pll support, use clksys_vcodivide ect
-- 2012-04-24 510 1.1 use 3/2 clock-> 150 MHz sysclk
-- 2012-04-09 461 1.0 Initial version
------------------------------------------------------------------------------
31,10 → 30,8
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 2;
constant sys_conf_clksys_vcomultiply : positive := 3; -- dcm 150 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 150 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 2;
constant sys_conf_clkfx_multiply : positive := 3;
 
constant sys_conf_fx2_type : string := "ic2";
 
56,8 → 53,7
-- derived constants
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
end package sys_conf;
/trunk/rtl/sys_gen/tst_fx2loop/nexys3/ic/sys_tst_fx2loop_ic_n3.ucf_cpp
1,8 → 1,7
## $Id: sys_tst_fx2loop_ic_n3.ucf_cpp 556 2014-05-29 19:01:39Z mueller $
## $Id: sys_tst_fx2loop_ic_n3.ucf_cpp 461 2012-04-09 21:17:54Z mueller $
##
## Revision History:
## Date Rev Version Comment
## 2013-10-13 540 1.1 add pad->clk and fx2 cdc constraints
## 2012-04-09 461 1.0 Initial version
##
 
11,33 → 10,6
OFFSET = IN 10 ns BEFORE "I_CLK100";
OFFSET = OUT 20 ns AFTER "I_CLK100";
 
## constrain pad->net clock delay
NET CLK TNM = TNM_CLK;
TIMESPEC TS_PAD_CLK=FROM PADS(I_CLK100) TO TNM_CLK 10 ns;
NET I_FX2_IFCLK_BUFGP TNM = TNM_IFCLK;
TIMESPEC TS_PAD_IFCLK=FROM PADS(I_FX2_IFCLK) TO TNM_IFCLK 10 ns;
 
## constrain async pad->pad delays
TIMEGRP TG_SLOW_INS = PADS(I_RXD);
TIMEGRP TG_SLOW_OUTS = PADS(O_TXD);
TIMESPEC TS_ASYNC_PADS=FROM TG_SLOW_INS TO TG_SLOW_OUTS 10 ns;
 
## FX2 controller specific constraints
## constrain cdc path in fifos and reset
TIMESPEC TS_CDC_FIFO =
FROM FFS(*FIFO/GC?/GRAY_*.CNT/R_DATA*
*FIFO/R_REG?_rst?
*FIFO/R_REG?_rst?_s)
TO FFS(*FIFO/R_REG?_?addr_c*
*FIFO/R_REG?_rst?_c
*FIFO/R_REG?_rst?_sc)
5 ns DATAPATHONLY;
 
## constrain cdc path in monitor
TIMESPEC TS_CDC_FX2MONI = FROM FFS
TO FFS(FX2_CNTL*/R_MONI_C*) 5 ns DATAPATHONLY;
 
##
## std board
##
#include "bplib/nexys3/nexys3_pins.ucf"
/trunk/rtl/sys_gen/tst_fx2loop/nexys3/ic3/sys_conf.vhd
1,4 → 1,4
-- $Id: sys_conf.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf.vhd 510 2013-04-26 16:14:57Z mueller $
--
-- Copyright 2012-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
16,10 → 16,9
-- Description: Definitions for sys_tst_fx2loop_ic3_n3 (for synthesis)
--
-- Dependencies: -
-- Tool versions: xst 13.3, 14.5, 14.6; ghdl 0.29
-- Tool versions: xst 13.3, 14.5; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.2 pll support, use clksys_vcodivide ect
-- 2012-04-25 510 1.1 use 3/2 clock-> 150 MHz sysclk
-- 2012-04-09 461 1.0 Initial version
------------------------------------------------------------------------------
31,10 → 30,8
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 2;
constant sys_conf_clksys_vcomultiply : positive := 3; -- dcm 150 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 150 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 2;
constant sys_conf_clkfx_multiply : positive := 3;
 
constant sys_conf_fx2_type : string := "ic3";
 
56,8 → 53,7
-- derived constants
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
end package sys_conf;
/trunk/rtl/sys_gen/tst_fx2loop/tst_fx2loop.c
1,6 → 1,6
/* $Id: tst_fx2loop.c 530 2013-08-09 21:25:04Z mueller $ */
/* $Id: tst_fx2loop.c 465 2012-12-27 21:29:38Z mueller $ */
/*
* Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
* Copyright 2011-2012 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
*
* This program is free software; you may redistribute and/or modify it under
* the terms of the GNU General Public License as published by the Free
14,7 → 14,6
*
* Revision History:
* Date Rev Version Comment
* 2013-08-09 530 2.1.2 -read: write up to 9 nstead of 7 words
* 2012-04-09 461 2.1.1 fix loop back code: fix run-down, add pipe drain
* 2012-03-24 460 2.1 add message loop back code (preliminary)
* 2012-03-10 459 2.0 re-write for asynchronous libusb interface
437,7 → 436,7
prt_time();
printf("read %4d word:", ntrans/2);
int nprt = ntrans/2;
if (nprt > 9) nprt = 9;
if (nprt > 7) nprt = 7;
for (i = 0; i < nprt; i++) printf(" %4.4x", (uint16_t)buf[i]);
printf("\n");
if (nsigint>0) break;
/trunk/rtl/sys_gen/w11a/nexys2/sys_w11a_n2.ucf_cpp
1,8 → 1,7
## $Id: sys_w11a_n2.ucf_cpp 540 2013-10-13 18:42:50Z mueller $
## $Id: sys_w11a_n2.ucf_cpp 509 2013-04-21 20:46:20Z mueller $
##
## Revision History:
## Date Rev Version Comment
## 2013-10-13 540 1.1 add pad->clk constraints
## 2013-04-20 509 1.1 add fx2 support
## 2010-11-06 336 1.0.1 rename input pin CLK -> I_CLK50
## 2010-05-26 295 1.0 Initial version
13,12 → 12,6
OFFSET = IN 10 ns BEFORE "I_CLK50";
OFFSET = OUT 20 ns AFTER "I_CLK50";
 
## constrain pad->net clock delay
NET CLK TNM = TNM_CLK;
TIMESPEC TS_PAD_CLK=FROM PADS(I_CLK50) TO TNM_CLK 10 ns;
NET I_FX2_IFCLK_BUFGP TNM = TNM_IFCLK;
TIMESPEC TS_PAD_IFCLK=FROM PADS(I_FX2_IFCLK) TO TNM_IFCLK 10 ns;
 
## std board
##
#include "bplib/nexys2/nexys2_pins.ucf"
/trunk/rtl/sys_gen/w11a/nexys3/sys_conf.vhd
1,4 → 1,4
-- $Id: sys_conf.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf.vhd 509 2013-04-21 20:46:20Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
16,11 → 16,9
-- Description: Definitions for sys_w11a_n3 (for synthesis)
--
-- Dependencies: -
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.2 pll support, use clksys_vcodivide ect
-- 2013-10-05 537 1.1.1 use 72 MHz, no closure w/ ISE 14.x for 80 anymore
-- 2013-04-21 509 1.1 add fx2 settings
-- 2011-11-26 433 1.0.1 use 80 MHz clksys (no closure for 85 after rev 432)
-- 2011-11-20 430 1.0 Initial version (derived from _n2 version)
42,12 → 40,10
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 25;
constant sys_conf_clksys_vcomultiply : positive := 18; -- dcm 72 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 72 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_memctl_read0delay : positive := 4;
constant sys_conf_clkfx_divide : positive := 5;
constant sys_conf_clkfx_multiply : positive := 4; -- ==> 80 MHz
 
constant sys_conf_memctl_read0delay : positive := 5;
constant sys_conf_memctl_read1delay : positive := sys_conf_memctl_read0delay;
constant sys_conf_memctl_writedelay : positive := 5;
 
73,8 → 69,7
-- derived constants
 
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
constant sys_conf_ser2rri_cdinit : integer :=
/trunk/rtl/sys_gen/w11a/nexys3/sys_w11a_n3.ucf_cpp
1,8 → 1,7
## $Id: sys_w11a_n3.ucf_cpp 540 2013-10-13 18:42:50Z mueller $
## $Id: sys_w11a_n3.ucf_cpp 509 2013-04-21 20:46:20Z mueller $
##
## Revision History:
## Date Rev Version Comment
## 2013-10-13 540 1.1 add pad->clk and fx2 cdc constraints
## 2013-04-21 509 1.1 add fx2 support
## 2011-11-20 430 1.0 Initial version
##
12,24 → 11,11
OFFSET = IN 10 ns BEFORE "I_CLK100";
OFFSET = OUT 20 ns AFTER "I_CLK100";
 
## constrain pad->net clock delay
NET CLK TNM = TNM_CLK;
TIMESPEC TS_PAD_CLK=FROM PADS(I_CLK100) TO TNM_CLK 10 ns;
NET I_FX2_IFCLK_BUFGP TNM = TNM_IFCLK;
TIMESPEC TS_PAD_IFCLK=FROM PADS(I_FX2_IFCLK) TO TNM_IFCLK 10 ns;
 
## FX2 controller specific constraints
## constrain cdc path in fifos and reset
TIMESPEC TS_CDC_FIFO =
FROM FFS(*FIFO/GC?/GRAY_*.CNT/R_DATA*)
TO FFS(*FIFO/R_REG?_?addr_c*)
5 ns DATAPATHONLY;
 
## std board
##
#include "bplib/nexys3/nexys3_pins.ucf"
##
## Pmod B0 - RS232
## Pmod B0 - RS232
##
#include "bplib/nexys3/nexys3_pins_pmb0_rs232.ucf"
##
/trunk/rtl/sys_gen/w11a/nexys3/tb/sys_conf_sim.vhd
1,4 → 1,4
-- $Id: sys_conf_sim.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf_sim.vhd 509 2013-04-21 20:46:20Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
16,10 → 16,9
-- Description: Definitions for sys_w11a_n3 (for simulation)
--
-- Dependencies: -
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.3 pll support, use clksys_vcodivide ect
-- 2013-04-21 509 1.2 add fx2 settings
-- 2011-11-25 432 1.0 Initial version (cloned from _n3)
------------------------------------------------------------------------------
31,14 → 30,14
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 25;
constant sys_conf_clksys_vcomultiply : positive := 18; -- dcm 72 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 72 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 1;
constant sys_conf_clkfx_multiply : positive := 1; -- no dcm in sim...
-- constant sys_conf_clkfx_divide : positive := 5;
-- constant sys_conf_clkfx_multiply : positive := 4; -- ==> 80 MHz
 
constant sys_conf_memctl_read0delay : positive := 4; -- for <75 MHz
constant sys_conf_memctl_read0delay : positive := 6; -- for 100 MHz
constant sys_conf_memctl_read1delay : positive := sys_conf_memctl_read0delay;
constant sys_conf_memctl_writedelay : positive := 5;
constant sys_conf_memctl_writedelay : positive := 7;
 
constant sys_conf_ser2rri_cdinit : integer := 1-1; -- 1 cycle/bit in sim
62,8 → 61,7
-- derived constants
 
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
end package sys_conf;
/trunk/rtl/sys_gen/w11a/nexys3/sys_w11a_n3.vhd
1,4 → 1,4
-- $Id: sys_w11a_n3.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_w11a_n3.vhd 509 2013-04-21 20:46:20Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
15,7 → 15,7
-- Module Name: sys_w11a_n3 - syn
-- Description: w11a test design for nexys3
--
-- Dependencies: vlib/xlib/s6_cmt_sfs
-- Dependencies: vlib/xlib/dcm_sfs
-- vlib/genlib/clkdivce
-- bplib/bpgen/bp_rs232_2l4l_iob
-- bplib/bpgen/sn_humanio_rbus
37,7 → 37,7
-- Test bench: tb/tb_sys_w11a_n3
--
-- Target Devices: generic
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
--
-- Synthesized (xst):
-- Date Rev ise Target flop lutl lutm slic t peri
47,7 → 47,6
--
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.5 pll support, use clksys_vcodivide ect
-- 2013-04-21 509 1.4 added fx2 (cuff) support
-- 2011-12-18 440 1.0.4 use rlink_sp1c
-- 2011-12-04 435 1.0.3 increase ATOWIDTH 6->7 (saw i/o timeouts on wblks)
242,15 → 241,11
report "assert sys_conf_clksys on MHz grid"
severity failure;
GEN_CLKSYS : s6_cmt_sfs
DCM : dcm_sfs
generic map (
VCO_DIVIDE => sys_conf_clksys_vcodivide,
VCO_MULTIPLY => sys_conf_clksys_vcomultiply,
OUT_DIVIDE => sys_conf_clksys_outdivide,
CLKIN_PERIOD => 10.0,
CLKIN_JITTER => 0.01,
STARTUP_WAIT => false,
GEN_TYPE => sys_conf_clksys_gentype)
CLKFX_DIVIDE => sys_conf_clkfx_divide,
CLKFX_MULTIPLY => sys_conf_clkfx_multiply,
CLKIN_PERIOD => 10.0)
port map (
CLKIN => I_CLK100,
CLKFX => CLK,
/trunk/rtl/sys_gen/w11a/nexys3/sys_w11a_n3.vbom
15,8 → 15,8
../../../w11a/pdp11.vhd
sys_conf = sys_conf.vhd
# components
[xst,isim]../../../vlib/xlib/s6_cmt_sfs_unisim.vbom
[ghdl]../../../vlib/xlib/s6_cmt_sfs_gsim.vbom
[xst,isim]../../../vlib/xlib/dcm_sfs_unisim_s3e.vbom
[ghdl]../../../vlib/xlib/dcm_sfs_gsim.vbom
../../../vlib/genlib/clkdivce.vbom
../../../bplib/bpgen/bp_rs232_2l4l_iob.vbom
../../../bplib/bpgen/sn_humanio_rbus.vbom
/trunk/rtl/sys_gen/tst_rlink_cuff/nexys3/sys_tst_rlink_cuff_n3.vhd
1,4 → 1,4
-- $Id: sys_tst_rlink_cuff_n3.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_tst_rlink_cuff_n3.vhd 512 2013-04-28 07:44:02Z mueller $
--
-- Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
15,7 → 15,7
-- Module Name: sys_tst_rlink_cuff_n3 - syn
-- Description: rlink tester design for nexys3 with fx2 interface
--
-- Dependencies: vlib/xlib/s6_cmt_sfs
-- Dependencies: vlib/xlib/dcm_sfs
-- vlib/genlib/clkdivce
-- bplib/bpgen/bp_rs232_2l4l_iob
-- bplib/bpgen/sn_humanio_rbus
28,7 → 28,7
-- Test bench: -
--
-- Target Devices: generic
-- Tool versions: xst 13.3, 14.6; ghdl 0.29
-- Tool versions: xst 13.3; ghdl 0.29
--
-- Synthesized (xst):
-- Date Rev ise Target flop lutl lutm slic t peri ctl/MHz
36,7 → 36,6
--
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2012-12-29 466 1.0 Initial version; derived from sys_tst_rlink_cuff_n2
-- and sys_tst_fx2loop_n3
------------------------------------------------------------------------------
165,15 → 164,11
report "assert sys_conf_clksys on MHz grid"
severity failure;
 
GEN_CLKSYS : s6_cmt_sfs
DCM : dcm_sfs
generic map (
VCO_DIVIDE => sys_conf_clksys_vcodivide,
VCO_MULTIPLY => sys_conf_clksys_vcomultiply,
OUT_DIVIDE => sys_conf_clksys_outdivide,
CLKIN_PERIOD => 10.0,
CLKIN_JITTER => 0.01,
STARTUP_WAIT => false,
GEN_TYPE => sys_conf_clksys_gentype)
CLKFX_DIVIDE => sys_conf_clkfx_divide,
CLKFX_MULTIPLY => sys_conf_clkfx_multiply,
CLKIN_PERIOD => 10.0)
port map (
CLKIN => I_CLK100,
CLKFX => CLK,
/trunk/rtl/sys_gen/tst_rlink_cuff/nexys3/ic/tb/sys_conf_sim.vhd
1,4 → 1,4
-- $Id: sys_conf_sim.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf_sim.vhd 512 2013-04-28 07:44:02Z mueller $
--
-- Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
16,10 → 16,9
-- Description: Definitions for sys_tst_rlink_cuff_ic_n3 (for simulation)
--
-- Dependencies: -
-- Tool versions: xst 13.3, 14.6; ghdl 0.29
-- Tool versions: xst 13.3; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2013-04-27 512 1.0 Initial version
------------------------------------------------------------------------------
 
30,10 → 29,8
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 1;
constant sys_conf_clksys_vcomultiply : positive := 1; -- dcm 100 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 100 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 1;
constant sys_conf_clkfx_multiply : positive := 1;
 
constant sys_conf_ser2rri_cdinit : integer := 1-1; -- 1 cycle/bit in sim
 
52,13 → 49,12
-- petowidth=10 -> 2^10 30 MHz clocks -> ~33 usec (normal operation)
constant sys_conf_fx2_petowidth : positive := 10;
 
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
constant sys_conf_fx2_ccwidth : positive := 5;
 
-- derived constants
constant sys_conf_clksys : integer :=
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
end package sys_conf;
/trunk/rtl/sys_gen/tst_rlink_cuff/nexys3/ic/sys_conf.vhd
1,4 → 1,4
-- $Id: sys_conf.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf.vhd 469 2013-01-05 12:29:44Z mueller $
--
-- Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
16,10 → 16,9
-- Description: Definitions for sys_tst_rlink_cuff_ic_n3 (for synthesis)
--
-- Dependencies: -
-- Tool versions: xst 13.3, 14.6; ghdl 0.29
-- Tool versions: xst 13.3; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2013-01-04 469 1.0 Initial version
------------------------------------------------------------------------------
 
30,10 → 29,8
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 1;
constant sys_conf_clksys_vcomultiply : positive := 1; -- dcm 100 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 100 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 1;
constant sys_conf_clkfx_multiply : positive := 1;
 
constant sys_conf_ser2rri_defbaud : integer := 115200; -- default 115k baud
constant sys_conf_hio_debounce : boolean := true; -- instantiate debouncers
56,8 → 53,7
-- derived constants
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
constant sys_conf_ser2rri_cdinit : integer :=
/trunk/rtl/sys_gen/tst_rlink_cuff/nexys3/sys_tst_rlink_cuff_n3.vbom
15,8 → 15,8
../../../bplib/nxcramlib/nxcramlib.vhd
${sys_conf}
# components
[xst,isim]../../../vlib/xlib/s6_cmt_sfs_unisim.vbom
[ghdl]../../../vlib/xlib/s6_cmt_sfs_gsim.vbom
[xst,isim]../../../vlib/xlib/dcm_sfs_unisim_s3e.vbom
[ghdl]../../../vlib/xlib/dcm_sfs_gsim.vbom
../../../vlib/genlib/clkdivce.vbom
../../../bplib/bpgen/bp_rs232_2l4l_iob.vbom
../../../bplib/bpgen/sn_humanio_rbus.vbom
/trunk/rtl/sys_gen/tst_rlink/nexys3/tb/sys_conf_sim.vhd
1,6 → 1,6
-- $Id: sys_conf_sim.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf_sim.vhd 433 2011-11-27 22:04:39Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
16,10 → 16,9
-- Description: Definitions for sys_tst_rlink_n3 (for simulation)
--
-- Dependencies: -
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2011-11-26 433 1.0 Initial version
------------------------------------------------------------------------------
 
30,10 → 29,8
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 1;
constant sys_conf_clksys_vcomultiply : positive := 1; -- dcm 100 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 100 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 1;
constant sys_conf_clkfx_multiply : positive := 1;
 
constant sys_conf_ser2rri_cdinit : integer := 1-1; -- 1 cycle/bit in sim
 
42,8 → 39,7
-- derived constants
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
end package sys_conf;
/trunk/rtl/sys_gen/tst_rlink/nexys3/tb/tb_tst_rlink_n3_ssim.vbom
1,6 → 1,6
# configure for _*sim case
# Note: this tb uses sys_tst_rlink_n3.vbom in local directory
# (not in .. as usual) to allow a tb specific configure !!!
nexys3_fusp_aif = sys_tst_rlink_n3_ssim.vhd
nexys2_aif = sys_tst_rlink_n3_ssim.vhd
tb_tst_rlink_n3.vbom
@top:tb_tst_rlink_n3
/trunk/rtl/sys_gen/tst_rlink/nexys3/sys_tst_rlink_n3.vhd
1,6 → 1,6
-- $Id: sys_tst_rlink_n3.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_tst_rlink_n3.vhd 476 2013-01-26 22:23:53Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
15,7 → 15,7
-- Module Name: sys_tst_rlink_n3 - syn
-- Description: rlink tester design for nexys3
--
-- Dependencies: vlib/xlib/s6_cmt_sfs
-- Dependencies: vlib/xlib/dcm_sfs
-- vlib/genlib/clkdivce
-- bplib/bpgen/bp_rs232_2l4l_iob
-- bplib/bpgen/sn_humanio_rbus
27,7 → 27,7
-- Test bench: tb/tb_tst_rlink_n3
--
-- Target Devices: generic
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
--
-- Synthesized (xst):
-- Date Rev ise Target flop lutl lutm slic t peri
36,7 → 36,6
--
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.2 pll support, use clksys_vcodivide ect
-- 2011-12-18 440 1.1.1 use [rt]xok for DSP_DP
-- 2011-12-11 438 1.1 use now rbd_tst_rlink and rlink_sp1c
-- 2011-11-26 433 1.0 Initial version (derived from sys_tst_rlink_n2)
146,15 → 145,11
 
RESET <= '0'; -- so far not used
GEN_CLKSYS : s6_cmt_sfs
DCM : dcm_sfs
generic map (
VCO_DIVIDE => sys_conf_clksys_vcodivide,
VCO_MULTIPLY => sys_conf_clksys_vcomultiply,
OUT_DIVIDE => sys_conf_clksys_outdivide,
CLKIN_PERIOD => 10.0,
CLKIN_JITTER => 0.01,
STARTUP_WAIT => false,
GEN_TYPE => sys_conf_clksys_gentype)
CLKFX_DIVIDE => sys_conf_clkfx_divide,
CLKFX_MULTIPLY => sys_conf_clkfx_multiply,
CLKIN_PERIOD => 10.0)
port map (
CLKIN => I_CLK100,
CLKFX => CLK,
/trunk/rtl/sys_gen/tst_rlink/nexys3/sys_tst_rlink_n3.vbom
10,8 → 10,8
../../../bplib/nxcramlib/nxcramlib.vhd
${sys_conf := sys_conf.vhd}
# components
[xst,isim]../../../vlib/xlib/s6_cmt_sfs_unisim.vbom
[ghdl]../../../vlib/xlib/s6_cmt_sfs_gsim.vbom
[xst,isim]../../../vlib/xlib/dcm_sfs_unisim_s3e.vbom
[ghdl]../../../vlib/xlib/dcm_sfs_gsim.vbom
../../../vlib/genlib/clkdivce.vbom
../../../bplib/bpgen/bp_rs232_2l4l_iob.vbom
../../../bplib/bpgen/sn_humanio_rbus.vbom
/trunk/rtl/sys_gen/tst_rlink/nexys3/sys_conf.vhd
1,6 → 1,6
-- $Id: sys_conf.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: sys_conf.vhd 433 2011-11-27 22:04:39Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
13,13 → 13,12
--
------------------------------------------------------------------------------
-- Package Name: sys_conf
-- Description: Definitions for sys_tst_rlink_n3 (for synthesis)
-- Description: Definitions for sys_tst_rlink_n2 (for synthesis)
--
-- Dependencies: -
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2011-11-26 433 1.0 Initial version
------------------------------------------------------------------------------
 
30,10 → 29,8
 
package sys_conf is
 
constant sys_conf_clksys_vcodivide : positive := 1;
constant sys_conf_clksys_vcomultiply : positive := 1; -- dcm 100 MHz
constant sys_conf_clksys_outdivide : positive := 1; -- sys 100 MHz
constant sys_conf_clksys_gentype : string := "DCM";
constant sys_conf_clkfx_divide : positive := 1;
constant sys_conf_clkfx_multiply : positive := 1; --
 
constant sys_conf_ser2rri_defbaud : integer := 115200; -- default 115k baud
 
42,8 → 39,7
-- derived constants
 
constant sys_conf_clksys : integer :=
((100000000/sys_conf_clksys_vcodivide)*sys_conf_clksys_vcomultiply) /
sys_conf_clksys_outdivide;
(100000000/sys_conf_clkfx_divide)*sys_conf_clkfx_multiply;
constant sys_conf_clksys_mhz : integer := sys_conf_clksys/1000000;
 
constant sys_conf_ser2rri_cdinit : integer :=
/trunk/rtl/bplib/fx2rlink/rlink_sp1c_fx2.vhd
1,4 → 1,4
-- $Id: rlink_sp1c_fx2.vhd 525 2013-07-06 12:19:39Z mueller $
-- $Id: $
--
-- Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
/trunk/rtl/bplib/fx2rlink/fx2rlinklib.vhd
1,4 → 1,4
-- $Id: fx2rlinklib.vhd 525 2013-07-06 12:19:39Z mueller $
-- $Id: $
--
-- Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
/trunk/rtl/bplib/fx2rlink/Makefile
1,4 → 1,4
# $Id: Makefile 525 2013-07-06 12:19:39Z mueller $
# $Id: $
#
# Revision History:
# Date Rev Version Comment
/trunk/rtl/bplib/nexys2/nexys2_time_fx2_ic.ucf
1,8 → 1,7
## $Id: nexys2_time_fx2_ic.ucf 537 2013-10-06 09:06:23Z mueller $
## $Id: nexys2_time_fx2_ic.ucf 448 2012-01-02 21:55:11Z mueller $
##
## Revision History:
## Date Rev Version Comment
## 2013-10-05 537 1.1 add VALID for hold time check
## 2012-01-01 448 1.0 Initial version
##
## timing rules for a 30 MHz internal clock design:
23,5 → 22,5
##
NET "I_FX2_IFCLK" TNM_NET = "I_FX2_IFCLK";
TIMESPEC "TS_I_FX2_IFCLK" = PERIOD "I_FX2_IFCLK" 33.34 ns HIGH 50 %;
OFFSET = IN 2.5 ns VALID 33 ns BEFORE "I_FX2_IFCLK";
OFFSET = OUT 10 ns VALID 33 ns AFTER "I_FX2_IFCLK";
OFFSET = IN 2.5 ns BEFORE "I_FX2_IFCLK";
OFFSET = OUT 10 ns AFTER "I_FX2_IFCLK";
/trunk/rtl/bplib/nexys3/tb/tb_nexys3_fusp_cuff.vbom
16,7 → 16,7
../../../vlib/simlib/simclk.vbom
../../../vlib/simlib/simclkcnt.vbom
../../../vlib/rlink/tb/tbcore_rlink.vbom
../../../vlib/xlib/s6_cmt_sfs_gsim.vbom
../../../vlib/xlib/dcm_sfs_gsim.vbom
tb_nexys3_core.vbom
../../../vlib/serport/serport_uart_rxtx.vbom
../../../bplib/fx2lib/tb/fx2_2fifo_core.vbom
/trunk/rtl/bplib/nexys3/tb/tb_nexys3_fusp_cuff.vhd
1,4 → 1,4
-- $Id: tb_nexys3_fusp_cuff.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: tb_nexys3_fusp_cuff.vhd 509 2013-04-21 20:46:20Z mueller $
--
-- Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
17,7 → 17,7
--
-- Dependencies: simlib/simclk
-- simlib/simclkcnt
-- xlib/s6_cmt_sfs
-- xlib/dcm_sfs
-- rlink/tb/tbcore_rlink
-- tb_nexys3_core
-- serport/serport_uart_rxtx
27,11 → 27,10
-- To test: generic, any nexys3_fusp_cuff_aif target
--
-- Target Devices: generic
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
--
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.1 pll support, use clksys_vcodivide ect
-- 2013-04-21 509 1.0 Initial version (derived from tb_nexys3_fusp and
-- tb_nexys2_fusp_cuff)
------------------------------------------------------------------------------
148,15 → 147,11
SB_CLKSTOP <= CLK_STOP;
 
CLKGEN_COM : s6_cmt_sfs
DCM_COM : dcm_sfs
generic map (
VCO_DIVIDE => sys_conf_clksys_vcodivide,
VCO_MULTIPLY => sys_conf_clksys_vcomultiply,
OUT_DIVIDE => sys_conf_clksys_outdivide,
CLKIN_PERIOD => 10.0,
CLKIN_JITTER => 0.01,
STARTUP_WAIT => false,
GEN_TYPE => sys_conf_clksys_gentype)
CLKFX_DIVIDE => sys_conf_clkfx_divide,
CLKFX_MULTIPLY => sys_conf_clkfx_multiply,
CLKIN_PERIOD => 10.0)
port map (
CLKIN => CLKOSC,
CLKFX => CLKCOM,
/trunk/rtl/bplib/nexys3/tb/tb_nexys3_fusp.vhd
1,6 → 1,6
-- $Id: tb_nexys3_fusp.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: tb_nexys3_fusp.vhd 476 2013-01-26 22:23:53Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2011- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
17,7 → 17,7
--
-- Dependencies: simlib/simclk
-- simlib/simclkcnt
-- xlib/s6_cmt_sfs
-- xlib/dcm_sfs
-- rlink/tb/tbcore_rlink
-- tb_nexys3_core
-- serport/serport_uart_rxtx
26,11 → 26,10
-- To test: generic, any nexys3_fusp_aif target
--
-- Target Devices: generic
-- Tool versions: xst 13.1, 14.6; ghdl 0.29
-- Tool versions: xst 13.1; ghdl 0.29
--
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.2 pll support, use clksys_vcodivide ect
-- 2011-12-23 444 1.1 new system clock scheme, new tbcore_rlink iface
-- 2011-11-25 432 1.0 Initial version (derived from tb_nexys2_fusp)
------------------------------------------------------------------------------
124,15 → 123,11
CLK_STOP => CLK_STOP
);
CLKGEN_COM : s6_cmt_sfs
DCM_COM : dcm_sfs
generic map (
VCO_DIVIDE => sys_conf_clksys_vcodivide,
VCO_MULTIPLY => sys_conf_clksys_vcomultiply,
OUT_DIVIDE => sys_conf_clksys_outdivide,
CLKIN_PERIOD => 10.0,
CLKIN_JITTER => 0.01,
STARTUP_WAIT => false,
GEN_TYPE => sys_conf_clksys_gentype)
CLKFX_DIVIDE => sys_conf_clkfx_divide,
CLKFX_MULTIPLY => sys_conf_clkfx_multiply,
CLKIN_PERIOD => 10.0)
port map (
CLKIN => CLKOSC,
CLKFX => CLKCOM,
/trunk/rtl/bplib/nexys3/tb/tb_nexys3_fusp.vbom
16,7 → 16,7
../../../vlib/simlib/simclk.vbom
../../../vlib/simlib/simclkcnt.vbom
../../../vlib/rlink/tb/tbcore_rlink.vbom
../../../vlib/xlib/s6_cmt_sfs_gsim.vbom
../../../vlib/xlib/dcm_sfs_gsim.vbom
tb_nexys3_core.vbom
../../../vlib/serport/serport_uart_rxtx.vbom
${nexys3_fusp_aif := nexys3_fusp_dummy.vbom}
/trunk/rtl/bplib/nexys3/nexys3_time_fx2_ic.ucf
1,8 → 1,7
## $Id: nexys3_time_fx2_ic.ucf 537 2013-10-06 09:06:23Z mueller $
## $Id: nexys3_time_fx2_ic.ucf 448 2012-01-02 21:55:11Z mueller $
##
## Revision History:
## Date Rev Version Comment
## 2013-10-05 537 1.1 add VALID for hold time check
## 2012-01-01 448 1.0 Initial version
##
## timing rules for a 30 MHz internal clock design:
14,5 → 13,5
 
NET "I_FX2_IFCLK" TNM_NET = "I_FX2_IFCLK";
TIMESPEC "TS_I_FX2_IFCLK" = PERIOD "I_FX2_IFCLK" 33.34 ns HIGH 50 %;
OFFSET = IN 2 ns VALID 33 ns BEFORE "I_FX2_IFCLK";
OFFSET = OUT 10 ns VALID 33 ns AFTER "I_FX2_IFCLK";
OFFSET = IN 2 ns BEFORE "I_FX2_IFCLK";
OFFSET = OUT 10 ns AFTER "I_FX2_IFCLK";
/trunk/rtl/bplib/nexys3/nexys3_pins_pmb0_rs232.ucf
1,4 → 1,4
## $Id: nexys3_pins_pmb0_rs232.ucf 534 2013-09-22 21:37:24Z mueller $
## $Id: nexys3_pins_pmb0_rs232.ucf 430 2011-11-20 20:48:39Z mueller $
##
## Revision History:
## Date Rev Version Comment
10,4 → 10,3
NET "I_FUSP_CTS_N" LOC = "k1" | IOSTANDARD=LVCMOS33 | PULLDOWN;
NET "I_FUSP_RXD" LOC = "l4" | IOSTANDARD=LVCMOS33 | PULLUP;
NET "O_FUSP_TXD" LOC = "l3" | IOSTANDARD=LVCMOS33 | DRIVE=4 | SLEW=SLOW;
##
/trunk/rtl/bplib/bpgen/bpgenlib.vhd
1,4 → 1,4
-- $Id: bpgenlib.vhd 534 2013-09-22 21:37:24Z mueller $
-- $Id: bpgenlib.vhd 476 2013-01-26 22:23:53Z mueller $
--
-- Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
19,7 → 19,6
-- Tool versions: 12.1, 13.3; ghdl 0.26-0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-09-21 534 1.1.1 add bp_rs232_4l4l_iob
-- 2013-01-26 476 1.1 moved rbus depended components to bpgenrbuslib
-- 2013-01-06 472 1.0.7 add sn_humanio_demu_rbus
-- 2011-11-16 426 1.0.6 now numeric_std clean
83,28 → 82,6
);
end component;
 
component bp_rs232_4l4l_iob is -- iob's for dual 4l+4l rs232, w/ select
generic (
RELAY : boolean := false); -- add a relay stage towards IOB's
port (
CLK : in slbit; -- clock
RESET : in slbit := '0'; -- reset
SEL : in slbit; -- select, '0' for port 0
RXD : out slbit; -- receive data (board view)
TXD : in slbit; -- transmit data (board view)
CTS_N : out slbit; -- clear to send (act. low)
RTS_N : in slbit; -- request to send (act. low)
I_RXD0 : in slbit; -- pad-i: p0: receive data (board view)
O_TXD0 : out slbit; -- pad-o: p0: transmit data (board view)
I_CTS0_N : in slbit; -- pad-i: p0: clear to send (act. low)
O_RTS0_N : out slbit; -- pad-o: p0: request to send (act. low)
I_RXD1 : in slbit; -- pad-i: p1: receive data (board view)
O_TXD1 : out slbit; -- pad-o: p1: transmit data (board view)
I_CTS1_N : in slbit; -- pad-i: p1: clear to send (act. low)
O_RTS1_N : out slbit -- pad-o: p1: request to send (act. low)
);
end component;
 
component bp_swibtnled is -- generic SWI, BTN and LED handling
generic (
SWIDTH : positive := 4; -- SWI port width
/trunk/rtl/bplib/bpgen/bp_rs232_2l4l_iob.vhd
1,4 → 1,4
-- $Id: bp_rs232_2l4l_iob.vhd 534 2013-09-22 21:37:24Z mueller $
-- $Id: bp_rs232_2l4l_iob.vhd 426 2011-11-18 18:14:08Z mueller $
--
-- Copyright 2010-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
13,7 → 13,7
--
------------------------------------------------------------------------------
-- Module Name: bp_rs232_2l4l_iob - syn
-- Description: iob's for internal(2line) + external(4line) rs232, with select
-- Description: iob's for internal + external rs232, with select
--
-- Dependencies: bp_rs232_2line_iob
-- bp_rs232_4line_iob
/trunk/rtl/bplib/atlys/atlys_time_fx2_ic.ucf
1,8 → 1,7
## $Id: atlys_time_fx2_ic.ucf 537 2013-10-06 09:06:23Z mueller $
## $Id: atlys_time_fx2_ic.ucf 471 2013-01-05 19:46:38Z mueller $
##
## Revision History:
## Date Rev Version Comment
## 2013-10-05 537 1.1 add VALID for hold time check
## 2013-01-05 471 1.0 Initial version (copied from nexys3)
##
## timing rules for a 30 MHz internal clock design:
14,5 → 13,5
 
NET "I_FX2_IFCLK" TNM_NET = "I_FX2_IFCLK";
TIMESPEC "TS_I_FX2_IFCLK" = PERIOD "I_FX2_IFCLK" 33.34 ns HIGH 50 %;
OFFSET = IN 2 ns VALID 33 ns BEFORE "I_FX2_IFCLK";
OFFSET = OUT 10 ns VALID 33 ns AFTER "I_FX2_IFCLK";
OFFSET = IN 2 ns BEFORE "I_FX2_IFCLK";
OFFSET = OUT 10 ns AFTER "I_FX2_IFCLK";
/trunk/rtl/vlib/xlib/xlib.vhd
1,6 → 1,6
-- $Id: xlib.vhd 538 2013-10-06 17:21:25Z mueller $
-- $Id: xlib.vhd 432 2011-11-25 20:16:28Z mueller $
--
-- Copyright 2007-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2007-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
16,11 → 16,9
-- Description: Xilinx specific components
--
-- Dependencies: -
-- Tool versions: xst 8.2, 9.1, 9.2, 13.1, 14.5, 14.6; ghdl 0.18-0.29
-- Tool versions: xst 8.2, 9.1, 9.2, 13.1; ghdl 0.18-0.29
-- Revision History:
-- Date Rev Version Comment
-- 2013-10-06 538 1.0.10 add s6_cmt_sfs
-- 2013-09-28 535 1.0.9 add s7_cmt_sfs
-- 2011-11-24 432 1.0.8 add iob_oddr2_simple
-- 2011-11-17 426 1.0.7 rename dcm_sp_sfs -> dcm_sfs; remove family generic
-- 2011-11-10 423 1.0.6 add family generic for dcm_sp_sfs
173,7 → 171,7
component dcm_sfs is -- DCM for simple frequency synthesis
generic (
CLKFX_DIVIDE : positive := 2; -- FX clock divide (1-32)
CLKFX_MULTIPLY : positive := 2; -- FX clock multiply (2-32) (1->no DCM)
CLKFX_MULTIPLY : positive := 2; -- FX clock divide (2-32)
CLKIN_PERIOD : real := 20.0); -- CLKIN period (def is 20.0 ns)
port (
CLKIN : in slbit; -- clock input
182,36 → 180,4
);
end component;
 
component s7_cmt_sfs is -- 7-Series CMT for simple freq. synth.
generic (
VCO_DIVIDE : positive := 1; -- vco clock divide
VCO_MULTIPLY : positive := 1; -- vco clock multiply
OUT_DIVIDE : positive := 1; -- output divide
CLKIN_PERIOD : real := 10.0; -- CLKIN period (def is 10.0 ns)
CLKIN_JITTER : real := 0.01; -- CLKIN jitter (def is 10 ps)
STARTUP_WAIT : boolean := false; -- hold FPGA startup till LOCKED
GEN_TYPE : string := "PLL"); -- PLL or MMCM
port (
CLKIN : in slbit; -- clock input
CLKFX : out slbit; -- clock output (synthesized freq.)
LOCKED : out slbit -- pll/mmcm locked
);
end component;
 
component s6_cmt_sfs is -- Spartan-6 CMT for simple freq. synth.
generic (
VCO_DIVIDE : positive := 1; -- vco clock divide
VCO_MULTIPLY : positive := 1; -- vco clock multiply
OUT_DIVIDE : positive := 1; -- output divide
CLKIN_PERIOD : real := 10.0; -- CLKIN period (def is 10.0 ns)
CLKIN_JITTER : real := 0.01; -- CLKIN jitter (def is 10 ps)
STARTUP_WAIT : boolean := false; -- hold FPGA startup till LOCKED
GEN_TYPE : string := "PLL"); -- PLL or DCM
port (
CLKIN : in slbit; -- clock input
CLKFX : out slbit; -- clock output (synthesized freq.)
LOCKED : out slbit -- pll/mmcm locked
);
end component;
 
end package xlib;
/trunk/rtl/vlib/xlib/dcm_sfs_unisim_s3e.vhd
1,4 → 1,4
-- $Id: dcm_sfs_unisim_s3e.vhd 534 2013-09-22 21:37:24Z mueller $
-- $Id: dcm_sfs_unisim_s3e.vhd 426 2011-11-18 18:14:08Z mueller $
--
-- Copyright 2010-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
18,7 → 18,7
--
-- Dependencies: -
-- Test bench: -
-- Target Devices: generic Spartan-3A,-3E; Spartan-6
-- Target Devices: generic Spartan-3A,-3E
-- Tool versions: xst 12.1; ghdl 0.29
--
-- Revision History:
/trunk/rtl/w11a/pdp11_core_rbus.vhd
1,6 → 1,6
-- $Id: pdp11_core_rbus.vhd 553 2014-03-17 06:40:08Z mueller $
-- $Id: pdp11_core_rbus.vhd 427 2011-11-19 21:04:11Z mueller $
--
-- Copyright 2007-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2007-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
68,9 → 68,6
-- bbb00011 psw r/w/- processor status word access
-- bbb00100 al r/w/- address register, low
-- bbb00101 ah r/w/- address register, high
-- 7 ubm r/w/- ubmap access
-- 6 p22 r/w/- 22bit access
-- 5: 0 addr r/w/- addr(21:16)
-- bbb00110 mem r/w/- memory access
-- bbb00111 memi r/w/- memory access, inc address
-- bbb01rrr gpr[] r/w/- general purpose regs
/trunk/rtl/w11a/pdp11_sequencer.vhd
1,6 → 1,6
-- $Id: pdp11_sequencer.vhd 556 2014-05-29 19:01:39Z mueller $
-- $Id: pdp11_sequencer.vhd 427 2011-11-19 21:04:11Z mueller $
--
-- Copyright 2006-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
-- Copyright 2006-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
--
-- This program is free software; you may redistribute and/or modify it under
-- the terms of the GNU General Public License as published by the Free
18,11 → 18,10
-- Dependencies: ib_sel
-- Test bench: tb/tb_pdp11_core (implicit)
-- Target Devices: generic
-- Tool versions: xst 8.2-14.7; viv 2014.1; ghdl 0.18-0.29
-- Tool versions: xst 8.2, 9.1, 9.2, 12.1, 13.1; ghdl 0.18-0.29
--
-- Revision History:
-- Date Rev Version Comment
-- 2014-04-20 554 1.5 now vivado compatible (add dummy assigns in procs)
-- 2011-11-18 427 1.4.2 now numeric_std clean
-- 2010-10-23 335 1.4.1 use ib_sel
-- 2010-10-17 333 1.4 use ibus V2 interface
413,8 → 412,6
nstatus : inout cpustat_type;
mok : out boolean) is
begin
nstate := nstate; -- dummy to add driver (vivado)
nstatus := nstatus; -- "
mok := false;
if VM_STAT.ack = '1' then
mok := true;
432,7 → 429,6
isdef : in slbit;
regnum : in slv3) is
begin
ndpcntl := ndpcntl; -- dummy to add driver (vivado)
if bytop='0' or isdef='1' or
regnum=c_gpr_pc or regnum=c_gpr_sp then
ndpcntl.ounit_const := "000000010";
507,8 → 503,6
nvmcntl : inout vm_cntl_type;
nmmumoni : inout mmu_moni_type) is
begin
ndpcntl := ndpcntl; -- dummy to add driver (vivado)
nvmcntl := nvmcntl; -- "
nmmumoni.idone := '1';
if unsigned(INT_PRI) > unsigned(PSW.pri) then
nstate := s_idle;
/trunk/rtl/make/generic_xflow.mk
1,8 → 1,7
# $Id: generic_xflow.mk 539 2013-10-13 17:06:35Z mueller $
# $Id: generic_xflow.mk 477 2013-01-27 14:07:10Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-12 539 1.9 use xtwi; support trce tsi file; use -C for cpp
# 2013-01-27 477 1.8 remove defaults for ISE_(BOARD|PATH) and XFLOWOPT_*
# use dontincdep.mk to suppress .dep include on clean
# 2013-01-05 470 1.7.6 remove '-r' from all non-dir clean rm's
86,7 → 85,7
if [ -r ${RETROBASE}/rtl/make/${XFLOWOPT_SYN} ]; then \
cp ${RETROBASE}/rtl/make/${XFLOWOPT_SYN} ./ise; fi
if [ -r ${XFLOWOPT_SYN} ]; then cp ${XFLOWOPT_SYN} ./ise; fi
xtwi ${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} \
${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} \
-g top_entity:`vbomconv --get_top $<` $*.prj
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*.ngc ]; then cp -p ./ise/$*.ngc .; fi
108,7 → 107,7
if [ -r ${RETROBASE}/rtl/make/${XFLOWOPT_SYN} ]; then \
cp ${RETROBASE}/rtl/make/${XFLOWOPT_SYN} ./ise; fi
if [ -r ${XFLOWOPT_SYN} ]; then cp ${XFLOWOPT_SYN} ./ise; fi
xtwi ${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} \
${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} \
-g top_entity:`vbomconv --get_top $<` $*.prj
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*.ngc ]; then cp -p ./ise/$*.ngc .; fi
129,7 → 128,6
# %_map.log map log file (renamed %_map.mrp)
# %_par.log par log file (renamed %.par)
# %_pad.log pad file (renamed %_pad.txt)
# %_tsi.log trce tsi file (renamed %.tsi)
# %_twr.log trce log file (renamed %.twr)
#
%.ncd %.pcf: %.ngc
139,7 → 137,7
if [ -r ${RETROBASE}/rtl/make/${XFLOWOPT_IMP} ]; then \
cp ${RETROBASE}/rtl/make/${XFLOWOPT_IMP} ./ise; fi
if [ -r ${XFLOWOPT_IMP} ]; then cp -p ${XFLOWOPT_IMP} ./ise; fi
xtwi ${XFLOW} -wd ise -implement ${XFLOWOPT_IMP} $<
${XFLOW} -wd ise -implement ${XFLOWOPT_IMP} $<
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*.ncd ]; then cp -p ./ise/$*.ncd .; fi
if [ -r ./ise/$*.pcf ]; then cp -p ./ise/$*.pcf .; fi
148,7 → 146,6
if [ -r ./ise/$*.par ]; then cp -p ./ise/$*.par ./$*_par.log; fi
if [ -r ./ise/$*_pad.txt ]; then cp -p ./ise/$*_pad.txt ./$*_pad.log; fi
if [ -r ./ise/$*.twr ]; then cp -p ./ise/$*.twr ./$*_twr.log; fi
if [ -r ./ise/$*.tsi ]; then cp -p ./ise/$*.tsi ./$*_tsi.log; fi
@ if [ -r $*.mfset ]; then \
echo "=============================================================";\
echo "* Translate Diagnostic Summary *";\
174,7 → 171,7
%.bit: %.ncd
if [ ! -d ./ise ]; then mkdir ./ise; fi
if [ -r $*.ncd ]; then cp -p $*.ncd ./ise; fi
(cd ./ise; xtwi bitgen -l -w -m -g ReadBack -g UserId:${ISE_USERID} -intstyle xflow $*.ncd)
(cd ./ise; bitgen -l -w -m -g ReadBack -g UserId:${ISE_USERID} -intstyle xflow $*.ncd)
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*.bit ]; then cp -p ./ise/$*.bit .; fi
if [ -r ./ise/$*.msk ]; then cp -p ./ise/$*.msk .; fi
192,7 → 189,7
# output: %.svf
#
%.svf: %.bit
xtwi config_wrapper --board=${ISE_BOARD} --path=${ISE_PATH} bit2svf $*.bit
config_wrapper --board=${ISE_BOARD} --path=${ISE_PATH} bit2svf $*.bit
 
#
# Configure FPGA with impact
200,7 → 197,7
# output: .PHONY
#
%.iconfig: %.bit
xtwi config_wrapper --board=${ISE_BOARD} --path=${ISE_PATH} iconfig $*.bit
config_wrapper --board=${ISE_BOARD} --path=${ISE_PATH} iconfig $*.bit
 
#
# Configure FPGA with jtag
213,7 → 210,7
#
%.jconfig: %.svf
fx2load_wrapper --board=${ISE_BOARD} ${FX2LOAD_OPT}
xtwi config_wrapper --board=${ISE_BOARD} --path=${ISE_PATH} jconfig $*.svf
config_wrapper --board=${ISE_BOARD} --path=${ISE_PATH} jconfig $*.svf
 
#
# Print log file summary
242,7 → 239,7
%_ssim.vhd: %.ngc
if [ ! -d ./ise ]; then mkdir ./ise; fi
if [ -r $*.ngc ]; then cp -p $*.ngc ./ise; fi
(cd ise; xtwi netgen -sim -intstyle xflow -ofmt vhdl -w $*.ngc)
(cd ise; netgen -sim -intstyle xflow -ofmt vhdl -w $*.ngc)
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*.vhd ]; then cp -p ./ise/$*.vhd ./$*_ssim.vhd; fi
if [ -r ./ise/$*.nlf ]; then cp -p ./ise/$*.nlf ./$*_ngn_ssim.log; fi
256,7 → 253,7
%_fsim.vhd: %.ngc
if [ ! -d ./ise ]; then mkdir ./ise; fi
if [ -r $*.ngc ]; then cp -p $*.ngc ./ise; fi
(cd ise; xtwi ngdbuild -p ${ISE_PATH} -nt timestamp -intstyle xflow \
(cd ise; ngdbuild -p ${ISE_PATH} -nt timestamp -intstyle xflow \
$*.ngc $*.ngd)
(cd ise; netgen -sim -intstyle xflow -ofmt vhdl -w $*.ngd)
(cd ./ise; chmod -x *.* )
278,7 → 275,7
if [ ! -d ./ise ]; then mkdir ./ise; fi
if [ -r $*.ncd ]; then cp -p $*.ncd ./ise; fi
if [ -r $*.pcf ]; then cp -p $*.pcf ./ise; fi
(cd ise; xtwi netgen -ofmt vhdl -sim -w -intstyle xflow -pcf \
(cd ise; netgen -ofmt vhdl -sim -w -intstyle xflow -pcf \
$*.pcf $*.ncd $*_tsim.vhd )
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*_tsim.vhd ]; then cp -p ./ise/$*_tsim.vhd .; fi
295,12 → 292,12
# generate cpp'ed ucf files from ucf_cpp
#
%.ucf : %.ucf_cpp
cpp -C -I${RETROBASE}/rtl $*.ucf_cpp $*.ucf
cpp -I${RETROBASE}/rtl $*.ucf_cpp $*.ucf
#
# generate nested dependency rules for cpp'ed ucf files from ucf_cpp
#
%.dep_ucf_cpp : %.ucf_cpp
cpp -C -I${RETROBASE}/rtl -MM $*.ucf_cpp |\
cpp -I${RETROBASE}/rtl -MM $*.ucf_cpp |\
sed 's/\.o:/\.ucf:/' > $*.dep_ucf_cpp
#
include $(RETROBASE)/rtl/make/dontincdep.mk
323,7 → 320,6
rm -f *_par.log
rm -f *_pad.log
rm -f *_twr.log
rm -f *_tsi.log
rm -f *_bgn.log
rm -f *_ngn_[sft]sim.log
rm -f *_svn.log
/trunk/rtl/make/generic_isim.mk
1,8 → 1,7
# $Id: generic_isim.mk 539 2013-10-13 17:06:35Z mueller $
# $Id: generic_isim.mk 477 2013-01-27 14:07:10Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-12 539 1.3 use xtwi
# 2013-01-27 477 1.2.1 use dontincdep.mk to suppress .dep include on clean
# 2011-08-13 405 1.2 renamed, moved to rtl/make;
# 2010-04-26 284 1.1 add _[sft]sim support
12,7 → 11,7
#
%_ISim : %.vbom
vbomconv -isim_prj $< > $*_isim.prj
xtwi $(FUSE) $* -prj $*_isim.prj -o $*_ISim
$(FUSE) $* -prj $*_isim.prj -o $*_ISim
rm -rf $*_isim.prj
#
# rule for _ssim to call FUSE with right top level name
19,7 → 18,7
#
%_ISim_ssim : %_ssim.vbom
vbomconv -isim_prj $*_ssim.vbom > $*_isim_ssim.prj
xtwi $(FUSE) $* -prj $*_isim_ssim.prj -o $*_ISim_ssim
$(FUSE) $* -prj $*_isim_ssim.prj -o $*_ISim_ssim
rm -rf $*_isim_ssim.prj
#
# rule for _[ft]sim to use 'virtual' _[ft]sim vbom's (derived from _ssim)
26,12 → 25,12
#
%_ISim_fsim : %_ssim.vbom
vbomconv -isim_prj $*_fsim.vbom > $*_isim_fsim.prj
xtwi $(FUSE) $* -prj $*_isim_fsim.prj -o $*_ISim_fsim
$(FUSE) $* -prj $*_isim_fsim.prj -o $*_ISim_fsim
rm -rf $*_isim_fsim.prj
#
%_ISim_tsim : %_ssim.vbom
vbomconv -isim_prj $*_tsim.vbom > $*_isim_tsim.prj
xtwi $(FUSE) $* -prj $*_isim_tsim.prj -o $*_ISim_tsim
$(FUSE) $* -prj $*_isim_tsim.prj -o $*_ISim_tsim
rm -rf $*_isim_tsim.prj
#
%.dep_isim: %.vbom
/trunk/rtl/make/generic_xflow_cpld.mk
1,8 → 1,7
# $Id: generic_xflow_cpld.mk 539 2013-10-13 17:06:35Z mueller $
# $Id: generic_xflow_cpld.mk 470 2013-01-05 17:28:46Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-12 539 1.2 use xtwi
# 2013-01-05 470 1.1.1 remove '-r' from all non-dir clean rm's
# 2011-08-13 405 1.1 renamed, moved to rtl/make;
# 2010-03-13 268 1.0 Initial version, cloned from .xflow Rev 252
46,7 → 45,7
(cd ./ise; touch $*.xcf)
if [ -r $*.xcf ]; then cp $*.xcf ./ise; fi
if [ -r ${XFLOWOPT_SYN} ]; then cp ${XFLOWOPT_SYN} ./ise; fi
xtwi ${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} $*.prj
${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} $*.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
64,7 → 63,7
(cd ./ise; touch $*.xcf)
if [ -r $*.xcf ]; then cp $*.xcf ./ise; fi
if [ -r ${XFLOWOPT_SYN} ]; then cp ${XFLOWOPT_SYN} ./ise; fi
xtwi ${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} $*.prj
${XFLOW} -wd ise -synth ${XFLOWOPT_SYN} $*.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
91,7 → 90,7
if [ -r $*.ngc ]; then cp -p $*.ngc ./ise; fi
if [ -r $*.ucf ]; then cp -p $*.ucf ./ise; fi
if [ -r ${XFLOWOPT_IMP} ]; then cp -p ${XFLOWOPT_IMP} ./ise; fi
xtwi ${XFLOW} -wd ise -fit ${XFLOWOPT_IMP} $<
${XFLOW} -wd ise -fit ${XFLOWOPT_IMP} $<
(cd ./ise; chmod -x *.* )
if [ -r ./ise/$*.ncd ]; then cp -p ./ise/$*.ncd .; fi
if [ -r ./ise/$*.jed ]; then cp -p ./ise/$*.jed .; fi
/trunk/rtl/make/syn_s6_speed.opt
1,10 → 1,9
FLOWTYPE = FPGA_SYNTHESIS;
#
# $Id: syn_s6_speed.opt 537 2013-10-06 09:06:23Z mueller $
# $Id: syn_s6_speed.opt 456 2012-02-05 22:19:44Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-05 537 1.2 define all, use -opt_level=2, -shreg_min_size=3
# 2012-02-05 456 1.1 use $top_entity variable for -top attribute
# 2011-08-13 405 1.0 Initial version
#
31,52 → 30,9
"-ofmt ngc"; # Output File Format
"-top $top_entity"; # Top Design Name
"-p <partname>"; # Target Device
"-opt_mode SPEED"; # Optimization Criteria # AREA or SPEED
"-opt_level 2"; # Optimization Effort Criteria: 2=High
"-uc <design>.xcf"; # Constraint File name
"-opt_mode SPEED"; # Optimization Criteria # AREA or SPEED
"-opt_level 2"; # Optimization Effort Criteria def=1 !
"-power NO"; # def
"-iuc NO"; # def
"-keep_hierarchy No"; # def
"-netlist_hierarchy As_Optimized";# def
"-rtlview No"; # def=yes if from ISE
"-glob_opt AllClockNets"; # likely def
"-read_cores YES"; # def (irrelevant)
"-write_timing_constraints NO"; # def
"-cross_clock_analysis NO"; # def
"-hierarchy_separator /"; # ?
"-bus_delimiter <>"; # def
"-case Maintain"; # def
"-slice_utilization_ratio 100"; # ?
"-bram_utilization_ratio 100"; # ?
"-dsp_utilization_ratio 100"; # ?
"-lc Auto"; # def
"-reduce_control_sets Auto"; # def
"-fsm_extract YES"; # def
"-fsm_encoding Auto"; # def
"-safe_implementation No"; # def
"-fsm_style LUT"; # def
"-ram_extract Yes"; # def
"-ram_style Auto"; # def
"-rom_extract Yes"; # def
"-rom_style Auto"; # def
"-shreg_extract YES"; # def
"-shreg_min_size 3"; # default is 2 !!
"-auto_bram_packing NO"; # def
"-resource_sharing YES"; # def
"-async_to_sync NO"; # def
"-use_dsp48 Auto"; # def
"-iobuf YES"; # def
"-max_fanout 100000"; # def
"-bufg 16"; # def (for S-6)
"-register_duplication YES"; # def
"-register_balancing No"; # def
"-optimize_primitives NO"; # def
"-use_clock_enable Auto"; # def
"-use_sync_set Auto"; # def
"-use_sync_reset Auto"; # def
"-iob Auto"; # ?
"-equivalent_register_removal YES"; # def
"-slice_utilization_ratio_maxmargin 5"; # ?
#
# The following are HDL Options
#
/trunk/rtl/make/imp_s6_speed.opt
1,14 → 1,11
FLOWTYPE = FPGA;
#
# $Id: imp_s6_speed.opt 539 2013-10-13 17:06:35Z mueller $
# $Id: imp_s6_speed.opt 449 2012-01-04 08:14:11Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-11 539 1.2.1 use -fastpaths, -u, -tsi for trce
# 2013-10-02 537 1.2 for ISE 14.x: for map drop -global_opt and -logic_opt
# use only -register_duplication; use -detail
# 2012-01-03 449 1.1 use '-mt 2' in map and par
# 2011-08-13 405 1.0 Initial version
# Date Rev Version Comment
# 2012-01-03 449 1.1 use '-mt 2' in map and par
# 2011-08-13 405 1.0 Initial version
#
# Derived from ISE balanced.opt
# Uses uses settings like 'mapgloboptlogoptregdup' SmartExplorer strategy
39,10 → 36,11
-intstyle xflow; # Message Reporting Style: ise, xflow, or silent
-ol high; # Effort level
-xe n; # Extra effort level for timing-driven packing (normal)
-global_opt speed; # Perform global optimization before mapping
-logic_opt on; # Perform physical synthesis combinatorial logic opt.
-register_duplication on;# Duplicate registers/luts during timing-driven packing
-w; # Always overwrite any existing output files
-mt 2; # Multi-threading
-detail; # detailed map report
<inputdir><design>.ngd; # Input NGD file
<inputdir><design>.pcf; # Physical constraints file
END Program map
87,11 → 85,9
#
Program post_par_trce
-v 3; # Produce verbose timing report
-fastpaths; # report fastest paths/verbose hold paths
-u 100; # report unconstrained paths
#-e 3; # Produce error report (limit 3 items/constraint)
-intstyle xflow; # Message Reporting Style: ise, xflow, or silent
-xml <design>.twx; # Output XML version of the timing report
-tsi <design>.tsi; # produce timing specification interaction report
<inputdir><design>.ncd; # Input placed and routed ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_par_trce
/trunk/rtl/make/syn_s3_speed.opt
1,10 → 1,9
FLOWTYPE = FPGA_SYNTHESIS;
#
# $Id: syn_s3_speed.opt 540 2013-10-13 18:42:50Z mueller $
# $Id: syn_s3_speed.opt 405 2011-08-14 08:16:28Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-05 540 1.2 use -shreg_extract NO to avoid shreg capture flops
# Date Rev Version Comment
# 2011-08-13 405 1.1 renamed, moved to rtl/make;
# 2007-07-20 67 1.0 Initial version
#
32,8 → 31,6
"-p <partname>"; # Target Device
"-opt_mode SPEED"; # Optimization Criteria # AREA or SPEED
"-opt_level 2"; # Optimization Effort Criteria: 2=High
## "-shreg_min_size 3"; # not available for Spartan-3 !!
"-shreg_extract NO"; # --> switch shreg extrtaction off instead
"-uc <design>.xcf"; # Constraint File name
#
# The following are HDL Options
/trunk/rtl/make/imp_s3_speed_maptd.opt
1,11 → 1,9
FLOWTYPE = FPGA;
#
# $Id: imp_s3_speed_maptd.opt 539 2013-10-13 17:06:35Z mueller $
# $Id: imp_s3_speed_maptd.opt 405 2011-08-14 08:16:28Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-11 539 1.2.1 use -fastpaths, -u, -tsi for trce
# 2013-10-05 537 1.2 use -detail for map
# Date Rev Version Comment
# 2011-08-13 405 1.1 renamed, moved to rtl/make;
# 2007-07-20 67 1.0 Initial version
#
41,7 → 39,6
-xe n; # Extra effort level for timing-driven packing (normal)
-register_duplication on;# Duplicate registers/luts during timing-driven packing
-logic_opt on; # Perform physical synthesis combinatorial logic opt.
-detail; # detailed map report
<inputdir><design>.ngd; # Input NGD file
<inputdir><design>.pcf; # Physical constraints file
END Program map
54,11 → 51,9
#
Program post_map_trce
-v 3; # Produce verbose timing report
-fastpaths; # report fastest paths/verbose hold paths
-u 25; # report unconstrained paths
#-e 3; # Produce error report (limit 3 items/constraint)
-xml <design>_map.twx; # Output XML version of the timing report
-intstyle xflow; # Message Reporting Style: ise, xflow, or silent
-xml <design>_map.twx; # Output XML version of the timing report
-tsi <design>.tsi; # produce timing specification interaction report
<inputdir><design>_map.ncd; # Input mapped ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_map_trce
/trunk/rtl/make/imp_s3_speed.opt
1,11 → 1,9
FLOWTYPE = FPGA;
#
# $Id: imp_s3_speed.opt 539 2013-10-13 17:06:35Z mueller $
# $Id: imp_s3_speed.opt 405 2011-08-14 08:16:28Z mueller $
#
# Revision History:
# Date Rev Version Comment
# 2013-10-11 539 1.2.1 use -fastpaths, -u, -tsi for trce
# 2013-10-05 537 1.2 use -detail for map
# Date Rev Version Comment
# 2011-08-13 405 1.1 renamed, moved to rtl/make;
# 2007-07-20 67 1.0 Initial version
#
35,7 → 33,6
Program map
-o <design>_map.ncd; # Output Mapped ncd file
-intstyle xflow; # Message Reporting Style: ise, xflow, or silent
-detail; # detailed map report
<inputdir><design>.ngd; # Input NGD file
<inputdir><design>.pcf; # Physical constraints file
END Program map
79,11 → 76,9
#
Program post_par_trce
-v 3; # Produce verbose timing report
-fastpaths; # report fastest paths/verbose hold paths
-u 25; # report unconstrained paths
#-e 3; # Produce error report (limit 3 items/constraint)
-intstyle xflow; # Message Reporting Style: ise, xflow, or silent
-xml <design>.twx; # Output XML version of the timing report
-tsi <design>.tsi; # produce timing specification interaction report
<inputdir><design>.ncd; # Input placed and routed ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_par_trce
/trunk/doc/w11a_os_guide.txt
1,4 → 1,4
# $Id: w11a_os_guide.txt 547 2013-12-29 13:10:07Z mueller $
# $Id: w11a_os_guide.txt 518 2013-05-12 16:45:02Z mueller $
 
Guide to run operating system images on w11a systems
 
120,7 → 120,7
- setup vt100 emulator window for 2nd DL11
 
cd $RETROBASE/tools/oskit/<oskit-name>
telnet_starter -s -d DL1 &
telnet_starter -d -s DL1 &
 
{Note: the -s ensures that the port numbers used by simh are taken!}
 
/trunk/doc/README.txt
1,4 → 1,4
# $Id: README.txt 556 2014-05-29 19:01:39Z mueller $
# $Id: README.txt 518 2013-05-12 16:45:02Z mueller $
 
Release notes for w11a
 
82,58 → 82,8
 
3. Change Log ----------------------------------------------------------------
 
- trunk (2014-05-29: svn rev 22(oc) 556(wfjm); untagged w11a_V0.581) ++++++++
- summary
- new reference system
- 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.
- new man pages (in doc/man/man1/)
- support for Spartan-6 CMTs in PLL and DCM mode
- trunk (2013-05-12: svn rev 21(oc) 518(wfjm); untagged w11a_V0.58) +++++++++
 
- New features
- new modules
- rtl/vlib/xlib
- s6_cmt_sfs_unisim - Spartan-6 CMT for simple frequency synthesis
- s6_cmt_sfs_gsim - dito, simple ghdl simulation model
- tools/src/librutiltpp
- RtclSignalAction - Tcl signal handler
- RtclSystem - Tcl Unix system interface
- new files
- tools/bin/create_disk - creates a disk container file
- tools/bin/xtwi - Xilinx Tool Wrapper script for ISE
- tools/tcl/rw11/defs.tcl - w11a definitions
 
- Changes
- rtl/make
- imp_*.opt - use -fastpaths, -u, -tsi for trce
- imp_s6_speed.opt - adopt for ISE 14.x
- generic_xflow.mk - use xtwi; trce tsi file; use -C for cpp
- generic_isim.mk - use xtwi
- generic_xflow_cpld.mk - use xtwi
- rtl/sys_gen/*/nexys3
- .../sys_*.vhd - pll support, use clksys_vcodivide ect
- rtl/sys_gen/w11a/nexys3
- sys_conf.vhd - use 72 MHz, no closure in ISE 14.x for 80
- rtl/bplib/nexys(2|3)
- nexys(2|3)_time_fx2_ic.ucf - add VALID for hold time check
- tools/src/librwxxtpp
- RtclRw11Cpu - cp command options modified
- tools/bin
- vbomconv - add --viv_vhdl (for Vivado)
- tools/tcl/rw11
- util.tcl - move definitions to defs.tcl
 
- Bug fixes
- tools/src/librtools/RlogFile - fix date print (month was off by one)
- tools/tcl/rw11/asm.tcl - asmwait checks now pc if stop: defined
 
- Other updates
- INSTALL_ghdl.txt - text reflects current situation on ghdl packages
 
- trunk (2013-05-12: svn rev 21(oc) 518+(wfjm); untagged w11a_V0.58) ++++++++
 
- Summary
- C++ and Tcl based backend server now fully functional, supports with
DL11, RK11, LP11 and PC11 all devices available in w11a designs
/trunk/doc/w11a_tb_guide.txt
1,4 → 1,4
# $Id: w11a_tb_guide.txt 547 2013-12-29 13:10:07Z mueller $
# $Id: w11a_tb_guide.txt 511 2013-04-27 13:51:46Z mueller $
 
Guide to running w11a test benches
 
36,7 → 36,7
- 'tbw' is a small perl script setting up a symbolic link to the
stimulus file, the default extracted from the file tbw.dat, if
an optional file name is give this one will be used instead.
- 'tee' ensures that the full log is saved
- 'tee' ensured that the full log is saved
- 'egrep' filters FAIL and DONE lines, a successful run will
produce a single DONE line
 
253,7 → 253,7
"rw11::run_pdpcp ../../../../w11a/tb/tb_pdp11core_stim.dat" |\
tee tb_w11a_s3_stim2_dsim.log | egrep "(-[EFW]:|FAIL|PEND|DONE)"
-> 10225140.0 ns 511247: DONE
-> real 0m52.105s user 0m51.871s sys 0m0.376s
-> real 0m52.105s user 0m0.260s sys 0m0.132s
 
- sys_w11a_n2 test bench
 
264,7 → 264,7
"rw11::run_pdpcp ../../../../w11a/tb/tb_pdp11core_stim.dat" |\
tee tb_w11a_n2_stim2_dsim.log | egrep "(-[EFW]:|FAIL|PEND|DONE)"
-> 10278380.0 ns 513908: DONE
-> real 1m2.951s user 1m2.628s sys 0m0.532s
-> real 1m26.388s user 0m0.312s sys 0m0.156s
 
- sys_w11a_n3 test bench
 
275,7 → 275,7
"rw11::run_pdpcp ../../../../w11a/tb/tb_pdp11core_stim.dat" |\
tee tb_w11a_n3_stim2_dsim.log | egrep "(-[EFW]:|FAIL|PEND|DONE)"
-> 5167410.0 ns 516720: DONE
-> real 1m5.322s user 1m5.072s sys 0m0.500s
-> real 1m26.611s user 0m0.248s sys 0m0.196s
 
A new, modular w11a test bench is under construction. So far it is very
incomplete. This very preliminary version can be executed with
288,5 → 288,4
"rw11::setup_cpu" "rw11::tbench @w11a_all.dat" | \
tee w11a_tbench_dsim.log | egrep "(-[EFW]:|FAIL|PASS|DONE)"
-> 904180.0 ns 45198: DONE
-> real 0m5.539s user 0m5.748s sys 0m0.204s
 
-> real 0m5.739s user 0m0.576s sys 0m0.076s
/trunk/doc/INSTALL_ghdl.txt
1,4 → 1,4
# $Id: INSTALL_ghdl.txt 537 2013-10-06 09:06:23Z mueller $
# $Id: INSTALL_ghdl.txt 467 2013-01-02 19:49:05Z mueller $
 
The w11 project uses the open source VHDL simulator
 
6,49 → 6,22
 
It used to be part of most distributions. Unfortunately the Debian maintainer
for ghdl refused at some point to integrate ghdl into Debian Etch. Therefore
ghdl was part of Debian Lenny, and again of Debian Squeeze, and is missing
again in Debian Wheezy (the current 'stable').
ghdl is part of Debian Lenny, and again of Debian Squeeze (the current
'stable'). So for an up-to-date Debian simply install the ghdl package.
 
The glitch at Debian unfortunately lead to the removal of ghdl from Ubuntu,
which is based on Debian. Ubuntu Lucid (10.04) and up to Oneiric (11.10)
included ghdl, the currently maintained versions Precise (12.04 LTS) and
alter don't.
Quantal (12.10) don't.
 
To install ghdl on an up-to-date Debian or Ubuntu systems you have the
following options {as of early October 2013}:
Thanks to Peter Gavin Ubuntu packages for GHDL are available from his PPA
'Personal Package Archives', see
 
- Ubuntu Precise, Quantal, and Raring
https://launchpad.net/~pgavin/+archive/ghdl
 
Thanks to Peter Gavin Ubuntu packages for GHDL are available from his PPA
'Personal Package Archives', see
So to install ghdl under Ubuntu use
 
https://launchpad.net/~pgavin/+archive/ghdl
sudo add-apt-repository ppa:pgavin/ghdl
sudo apt-get update
sudo apt-get install ghdl
 
So to install ghdl under Ubuntu use
 
sudo add-apt-repository ppa:pgavin/ghdl
sudo apt-get update
sudo apt-get install ghdl
 
- Debian Wheezy
 
Thanks to Joris van Rantwijk Debian packages for GHDL are available
from the web site
 
http://jorisvr.nl/ghdl_debian.html
 
There are also Ubuntu packages, but Joris focus is clearly on Debian.
 
Only Debian and Ubuntu are actively used by the w11a developer. The
situation for other linux distributions is therefore just taken from
the respective web sites:
 
- Suse
For Suse 12.2 and 12.3 un-official ghdl packages are available, but they
seem to be based on the long obsolete ghdl version 0.27.
 
- Redhat/Fedora
For Fedora 18,19, and 20 packages are available based on ghdl 0.29
 
- Gentoo
Packages, marked 'unstable', are available based on ghdl 0.29 and 0.27
/trunk/doc/man/man5/vbom.5
1,5 → 1,5
.\" -*- nroff -*-
.\" $Id: vbom.5 522 2013-05-24 17:50:29Z mueller $
.\" $Id: vbom.5 320 2010-07-30 19:35:01Z mueller $
.\"
.\" Copyright 2010- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
.\"
12,43 → 12,65
.
.\" ------------------------------------------------------------------
.SH DESCRIPTION
These files describe the sources needed to build a \fIvhdl\fP
These files describe the sources needed to build a
.I vhdl
module. The source files are either given directly in case of libraries
or via other \fIvbom\fP's in case of instantiated components.
They are used by \fBvbomconv\fP(1) to build project descriptions
for synthesis and simulation tools.
or via other
.IR vbom 's
in case of instantiated components. They are used by
.BR vbomconv (1)
to build project descriptions for synthesis and simulation tools.
 
The format has four types of lines:
.
.\" ----------------------------------------------
.IP \fBcomments\fP
each line starting with \fB#\fP is treated as comment and ignored.
.TP
.B comments
each line starting with
.B #
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.
.TP
.B file names
either source files with a
.I '.vhd'
file type or nested
.IR vbom 's
with a
.I '.vbom'
file type. The must be given as relative path name
from the directory the
.I vbom
file is located in. Absolute path names are not allowed, nor is expansion of
environment variables.
.
.\" ----------------------------------------------
.IP "\fBlogical names\fP"
.TP
.B logical names
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.
.IR vbom 's
by
.BR vbomconv (1)
is taken, all later definitions are ignored.
 
A logical name can be used with
.EX
<lname> : <filename>
.EE
If it wasn't ???
If it wasn't
 
 
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
Again, the filenames, either of type
.I vhd
or
.IR vbom ,
must be given as relative path name from the directory the
.I vbom
file is located in.
 
The definition clause just sets up the logical name for later usage.
55,11 → 77,21
The usage clause
 
.\" ----------------------------------------------
.IP \fBdirectives\fP
.TP
.B directives
 
 
 
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.
source files with a
.I '.vhd'
file type or nested
.IR vbom 's
with a
.I '.vbom'
file type. Lines starting with
.B #
are treated as comments.
 
 
.
/trunk/doc/man/man1/set_ftdi_lat.1
1,11 → 1,11
.\" -*- nroff -*-
.\" $Id: set_ftdi_lat.1 547 2013-12-29 13:10:07Z mueller $
.\" $Id: set_ftdi_lat.1 321 2010-08-01 19:43:39Z mueller $
.\"
.\" Copyright 2010-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
.\" Copyright 2010- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
.\"
.\" ------------------------------------------------------------------
.
.TH SET_FTDI_LAT 1 2013-12-26 "Retro Project" "Retro Project Manual"
.TH SET_FTDI_LAT 1 2010-07-24 "Retro Project" "Retro Project Manual"
.\" ------------------------------------------------------------------
.SH NAME
set_ftdi_lat \- set latency timer in FTDI USB UART or FIFO
19,49 → 19,52
.
.\" ------------------------------------------------------------------
.SH DESCRIPTION
\fBNote:\fP command is obsolete when kernel 2.6.32 or newer is used.
See NOTES section.
.
.PP
FTDI USB UART or FIFO adapters of type FT232, FT245, and other similar
models have a latency timer which controls the maximal time between reception
of a byte by the UART or FIFO and the emission of a USB frame. The default
is 16 msec on kernels prior to 2.6.32 and can lead to unsatisfactory
response times.
is 16 msec and can lead to unsatisfactory response times.
The
.B set_ftdi_lat
script allows to set this latency timer via a node in the \fI/sys\fP
script allows to set this latency timer via a node in the
.I /sys
virtual file system, specifically
.IP "" 4
.I /sys/bus/usb-serial/devices/ttyUSBn/latency_timer
.
.PP
The first optional argument \fIdev\fP allows to specify the device name
in the form \fIUSBn\fP with the default \fIUSB0\fP. The second optional
argument \fItime\fP allows to specify the new value of the latency timer,
given in msec. Default is 1 msec.
The first optional argument
.I dev
allows to specify the device name in the form
.I USBn
with the default
.IR USB0 .
The second optional argument
.I
time
allows to specify the new value of the latency timer, given in msec.
Default is 1 msec.
.
.
.\" ------------------------------------------------------------------
.SH EXIT STATUS
If device tty\fIdev\fP is not found or the entry in \fI/sys\fP is not
writable an exit status 1 is returned.
If device
.RI tty dev
is not found or the entry in
.I /sys
is not writable an exit status 1 is returned.
 
.\" ------------------------------------------------------------------
.SH EXAMPLES
In general the command is given via \fBsudo\fP(8) like
 
In general the command is given via
.BR sudo ,
like
.EX
sudo set_ftdi_lat USB0 1
.EE
.\" ------------------------------------------------------------------
.SH "SEE ALSO"
.BR sudo (8)
.BR sudo (1)
.
.\" ------------------------------------------------------------------
.SH NOTES
For linux kernel 2.6.32 or newer the default is 1 ms already. On all
up-to-date systems therefore no need to use this command.
.
.\" ------------------------------------------------------------------
.SH AUTHOR
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
/trunk/Makefile
1,4 → 1,4
# $Id: Makefile 538 2013-10-06 17:21:25Z mueller $
# $Id: Makefile 513 2013-05-01 14:02:06Z mueller $
#
# 'Meta Makefile' for whole retro project
# allows to make all synthesis targets
6,7 → 6,6
#
# Revision History:
# Date Rev Version Comment
# 2013-09-28 535 1.0.7 add nexys4 port for sys_gen/tst_sram,w11a
# 2013-05-01 513 1.0.6 add clean_sim_tmp and clean_syn_tmp targets
# 2012-12-29 466 1.0.5 add tst_rlink_cuff
# 2011-12-26 445 1.0.4 add tst_fx2loop

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.