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/defs.tcl
File deleted
/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/RtclSignalAction.cpp
File deleted
/trunk/tools/src/librutiltpp/RtclSignalAction.hpp
File deleted
/trunk/tools/src/librutiltpp/RtclSystem.cpp
File deleted
/trunk/tools/src/librutiltpp/RtclSystem.hpp
File deleted
/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_cp_ibrbasics.tcl
File deleted
/trunk/tools/tbench/test_cp_membasics.tcl
File deleted
/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/noboot.mac
File deleted
/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/s6_cmt_sfs_unisim.vhd
File deleted
/trunk/rtl/vlib/xlib/s6_cmt_sfs_gsim.vbom
File deleted
/trunk/rtl/vlib/xlib/s6_cmt_sfs_gsim.vhd
File deleted
/trunk/rtl/vlib/xlib/s6_cmt_sfs_unisim.vbom
File deleted
/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/syn_s6_speed_ise133.opt
File deleted
/trunk/rtl/make/imp_7a_speed.opt
File deleted
/trunk/rtl/make/syn_7a_speed.opt
File deleted
/trunk/rtl/make/xflow_default_nexys4.mk
File deleted
/trunk/rtl/make/imp_s6_speed_ise133.opt
File deleted
/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/svn_set_ignore.1
File deleted
/trunk/doc/man/man1/tbw.1
File deleted
/trunk/doc/man/man1/fx2load_wrapper.1
File deleted
/trunk/doc/man/man1/isemsg_filter.1
File deleted
/trunk/doc/man/man1/xilinx_ghdl_unisim.1
File deleted
/trunk/doc/man/man1/asm-11_expect.1
File deleted
/trunk/doc/man/man1/create_disk.1
File deleted
/trunk/doc/man/man1/telnet_starter.1
File deleted
/trunk/doc/man/man1/config_wrapper.1
File deleted
/trunk/doc/man/man1/xilinx_ghdl_simprim.1
File deleted
/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 |