Compare commits

...
10 Commits
49 changed files with 19361 additions and 19265 deletions
+18
View File
@@ -169,3 +169,21 @@ Logic/LAN_IDE/LAN_IDE\.zip
/Logic/LAN_IDE_V2/LAN_IDE_CP.tspec
/Logic/LAN_IDE_V2/LAN_IDE_CP.vm6
/Logic/LAN_IDE_V2/ZORO_LAN_IDE_Z2.ipf
/Logic/LAN_IDE_V2/_impact.cmd
/Logic/LAN_IDE_V2/_impact.log
/Logic/LAN_IDE_V2/iseconfig/LAN_IDE_CP.xreport
/Logic/LAN_IDE_V2/iseconfig/LAN_IDEz2v2.projectmgr
/Logic/LAN_IDE_V2/iseconfig/LAN_IDEz3v2.projectmgr
/Logic/LAN_IDE_V2/LAN_IDE_CP.cmd_log
/Logic/LAN_IDE_V2/LAN_IDE_CP.gyd
/Logic/LAN_IDE_V2/LAN_IDE_CP.mfd
/Logic/LAN_IDE_V2/LAN_IDE_CP.nga
/Logic/LAN_IDE_V2/LAN_IDE_CP.ngd
/Logic/LAN_IDE_V2/LAN_IDE_CP.pad
/Logic/LAN_IDE_V2/LAN_IDE_CP.rpt
/Logic/LAN_IDE_V2/LAN_IDE_CP.syr
/Logic/LAN_IDE_V2/LAN_IDE_CP.tspec
/Logic/LAN_IDE_V2/LAN_IDE_CP.vhd.bak
/Logic/LAN_IDE_V2/LAN_IDE_CP.vm6
/Logic/LAN_IDE_V2/LAN_IDEz2v2.gise
/Logic/LAN_IDE_V2/LAN_IDEz3v2.gise
+19 -7
View File
@@ -1,17 +1,29 @@
Short: V2.00, SANA-II network drivers for several adapters
Short: V2.15, SANA-II network drivers for several adapters
Author: Henryk Richter
Uploader: henryk.richter@gmx.net
Type: driver/net
Architecture: m68k-amigaos
Requires: OS 2.04+
This package contains network drivers for the following hardware:
- ZII LAN IDE CP (matze, scrat and buggs @a1k.org)
This package contains network drivers and test utilities for the
following hardware:
- ZII LAN IDE CP (matze and buggs @a1k.org)
OSS Zorro-II card with ENC624J600 ethernet controller, autoboot
IDE and Clockport
IDE and Clockport (see https://gitlab.com/MHeinrichs/Zorro-LAN-IDE)
- Vampire500/600 with ENC28J60 module connected to the SD-card slot
- Vampire500V2+ with ENC28J60 module connected to the expansion port
(sdnet.device)
Full source code is included. Please refer to README.sdnet and
README.enc for installation and operation instructions
- Vampire500V2+ or Vampire1200V2 with ENC28J60 module connected to
the expansion port (v2expeth.device)
- Vampire500V2+ with Wiznet W5500 module connected to the expansion
port (requires adapter PCB)
- VampireV4 (assumes HW registers didn't change since the time of my
initial implementation, YMMV)
Full source code (GPL V3) is included. Please refer to README.sdnet
and README.enc for installation and operation instructions.
+34 -7
View File
@@ -1,10 +1,9 @@
ENC624J6Net - A SANA-II driver for the Scratze card
ENC624J6Net - A SANA-II driver for the Zorro-LAN-IDE card
ENC624J6Net Copyright (C) 2018 Henryk Richter <henryk.richter@gmx.net>
This driver is supposed to support ENC624J600 based ethernet on the
ZII LAN IDE CP card designed by Matze (a1k.org), Buggs (a1k.org)
and Scrat (a1k.org).
ZII LAN IDE CP card designed by Matze (a1k.org) and Buggs (a1k.org).
Please see at the end of the file for information about licensing
conditions.
@@ -23,8 +22,8 @@ the 68000/68010 version to enc624j6net.device before use.
So far, successful tests have been done with the free AmiTCP/IP 3.0b2,
AmiTCP4.0-4.2, Genesis, MiamiDX and RoadShow.
The Zorro board itself should be visible in early startup with manufacturer
ID 2588 and card ID 123.
The Zorro board itself should be visible in Early Startup and ShowConfig
with manufacturer ID 2588 and card ID 123.
@@ -34,10 +33,10 @@ Configuration options
No special configuration of the driver is necessary for normal operation.
The configuration options outlined below are documented for tuning purposes.
The config to be placed in ENVARC:sana2/enc624j6net.config and consists
The config is to be placed in ENVARC:sana2/enc624j6net.config and consists
of a single line with parameters (much like CLI parameters).
PRIORITY=PRI/K/N,BPS/K/N,MTU/K/N,FULLDUPLEX/S,FLOWCONTROL/S,TIMER/K/N,MULTICAST/S
PRIORITY=PRI/K/N,BPS/K/N,MTU/K/N,FULLDUPLEX/S,FLOWCONTROL/S,TIMER/K/N,MULTICAST/S,MAC/K
FULLDUPLEX - change Ethernet module into full duplex mode,
caution: requires manual configuration of duplex mode
@@ -60,13 +59,41 @@ PRIORITY=PRI/K/N,BPS/K/N,MTU/K/N,FULLDUPLEX/S,FLOWCONTROL/S,TIMER/K/N,MULTICAST/
FLOWCONTROL - enable automatic flow control that throttles incoming
data when the hardware buffer gets full
MAC - explicitly set MAC address (default: read from hardware),
use hexadecimal notation like AA:BB:CC:DD:EE:FF
example (useful for DSL via PPPoE with AmiTCP):
echo "MTU=1492 PRIORITY=6" >ENVARC:sana2/enc624j6net.config
Troubleshooting:
----------------
It has been reported that the MMU.library marked the LAN part
of the card as invalid in at least one Zorro-III configuration
such that the respective I/O space got inaccessible to the driver.
Should "muscan" report "I/O space Invalid" for the slot assigned
to the card (compare with "showConfig" or "Scout->Expansions"),then
an additional line in the MMU configuration file might help. Add
the following to the MMU-Configuration:
For 2588 123 SetCacheMode {base} 0x10000 Valid CacheInhibit IOSpace
Changelog:
----------
2.15 - fixed multicast mapping code
- added recent Microchip OUIs to MAC address validation list
(2020 and later)
- disabled automatic MMU configuration as commonly redundant
2.13 - explicit MMU parameters for LAN address space, if mmu.library
is present in the system
2.11 - try to finish up auto neg and duplex setup when going online
- improved startup/shutdown of the server process
2.10 - option to set MAC address for first board explicitly
2.9 - better support for Envoy: automatically select a higher
task priority in presence of Envoy services
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Regular → Executable
View File
+5 -3
View File
@@ -27,8 +27,8 @@ compiler_vcc = 0
# prefix for system includes (ASM)
# native AmigaOS compilation: set PREFX=GG: or PREFX=ADE:, depending on toolchain
###############################################################################
#PREFX = /opt/amigaos-68k/
PREFX = gg:
PREFX = /opt/amigaos-68k/
#PREFX = gg:
SYSINC = $(PREFX)os-include
###############################################################################
@@ -39,8 +39,9 @@ SYSINC = $(PREFX)os-include
ifeq ($(compiler_vcc),1)
# VBCC (use explicit vlink line for LINK= if complaints about R_PC happen)
# -Rshort
CCX = vc
LINK = vlink -bamigahunk -x -s -mrel -Cvbcc -Bstatic -nostdlib #-Rshort
LINK = vlink -bamigahunk -x -s -mrel -Cvbcc -Bstatic -nostdlib -Rshort
LINKEXE = vlink -bamigahunk -x -s -mrel -Cvbcc -Bstatic
#LINK = $(CCX) -nostdlib
CFLAGS = -Os -+ -sc -c99 -cpu=$(CPU)
@@ -138,6 +139,7 @@ ifeq ($(debug),1)
CFLAGS += -DDEBUG -g
CFLAGS2 += -DDEBUG -g
#LINKLIBS = -L$(PREFX)/lib -ldebug
#ASMOBJECTS += kprintf.o
endif
###############################################################################
+5 -5
View File
@@ -23,7 +23,7 @@
#DEVICEREVISION=95
#DEVICEDATE=08.09.2018
SUBDIR=enc624j6net
ASMOBJECTS = $(SUBDIR)/enc624j6l.o $(SUBDIR)/intervaltimer.o kprintf.o
ASMOBJECTS = $(SUBDIR)/enc624j6l.o $(SUBDIR)/intervaltimer.o kprintf.o #mmustuff.o
###############################################################################
# Devices to build (1 or 2, keep DEVICEID2 empty if only one build is desired)
@@ -31,13 +31,13 @@ ASMOBJECTS = $(SUBDIR)/enc624j6l.o $(SUBDIR)/intervaltimer.o kprintf.o
###############################################################################
DEVICEID=enc624j6net.device
DEFINES = -DHW_DMA_TX # -DPROTO_V2EXPNET
ASMDEFS = -DHW_DMA_TX # -DPROTO_V2EXPNET
DEFINES = -DHW_DMA_TX #-DUSEMMU #
ASMDEFS = -DHW_DMA_TX #
CPU = 68060
DEVICEID2=enc624j6net.device_68000
DEFINES2 = # -DPROTO_V2EXPNET
ASMDEFS2 = # -DPROTO_V2EXPNET
DEFINES2 = #
ASMDEFS2 = #
CPU2 = 68000
SAME_DEVNAME=1
+50
View File
@@ -0,0 +1,50 @@
###############################################################################
#
# VAMPIREGFX makefile for vbcc
#
# author: Henryk Richter <henryk.richter@gmx.net>
#
# concept:
#
# tools required:
# - vbcc, defaulting to m68k-amigaos
# - vlink
# - vasm
#
# porting:
#
###############################################################################
###############################################################################
# Date, version, extra objects to build
#
###############################################################################
#DEVICEVERSION=1
#DEVICEREVISION=95
#DEVICEDATE=08.09.2018
SUBDIR=v4net
ASMOBJECTS = $(SUBDIR)/vampuuid.o $(SUBDIR)/v4l.o $(SUBDIR)/intervaltimer.o kprintf.o
###############################################################################
# Devices to build (1 or 2, keep DEVICEID2 empty if only one build is desired)
#
###############################################################################
DEVICEID=v4net.device
DEFINES = #-DHW_DMA_TX # -DPROTO_V2EXPNET
ASMDEFS = #-DHW_DMA_TX # -DPROTO_V2EXPNET
CPU = 68060
#DEVICEID2=v4net.device_68000
#DEFINES2 = # -DPROTO_V2EXPNET
#ASMDEFS2 = # -DPROTO_V2EXPNET
#CPU2 = 68000
#SAME_DEVNAME=1
###############################################################################
# import generic ruleset
#
###############################################################################
include Common.mk
+51
View File
@@ -0,0 +1,51 @@
###############################################################################
#
# VWiznet build instructions
#
# author: Henryk Richter <henryk.richter@gmx.net>
#
# concept:
# this makefile is intended mainly for cross compilation,
# although building on AmigaOS works (see Common.mk)
#
# tools required:
# - vbcc or m68k-amigaos-gcc (Default: gcc)
# - vlink or GNU ld
# - vasm (vasmm68k_mot)
# - system headers (default: /opt/amigaos-68k/os-include, see Common.mk)
#
# porting:
# see smakefile for native building using SAS/C
#
###############################################################################
###############################################################################
# Name, version
#
###############################################################################
#DEVICEVERSION=1
#DEVICEREVISION=95
#DEVICEDATE=09.09.2018
#DEVICEEXTRA=Beta
ASMOBJECTS = $(SUBDIR)/vampuuid.o $(SUBDIR)/intervaltimer.o $(SUBDIR)/w5500l.o
SUBDIR=qwiznet
# two flavours of the same code base may be build with this setup
# leave DEVICEID2 empty to disable second build
DEVICEID=vwiznet600sd.device
DEFINES = # -DPROTO_V2EXPNET
ASMDEFS = # -DPROTO_V2EXPNET
CPU = 68060
DEVICEID2=vwiznet500ex.device
DEFINES2 = -DPROTO_V2EXPNET
ASMDEFS2 = -DPROTO_V2EXPNET
CPU2 = 68020
###############################################################################
# import generic ruleset
#
###############################################################################
include Common.mk
+139 -35
View File
@@ -120,6 +120,8 @@ ASM SAVEDS struct Device *DevInit( ASMR(d0) DEVBASEP ASMREG(d0)
db->db_SegList = seglist;
db->db_Flags = 0;
InitSemaphore( &db->db_Sem ); /* server start/stop/online/offline */
dbNewList( &db->db_BufferManagement );
for(i=0 ; i < MAX_UNITS ; i++ )
@@ -137,9 +139,12 @@ ASM SAVEDS struct Device *DevInit( ASMR(d0) DEVBASEP ASMREG(d0)
}
ok = 0;
if( (DOSBase = OpenLibrary("dos.library", 36)) )
if( (DOSBase = OpenLibrary( (STRPTR)"dos.library", 36)) )
{
if( (UtilityBase = OpenLibrary("utility.library", 37)) )
#ifdef USEMMU
MMUBase = OpenLibrary( (STRPTR)"mmu.library",46 );
#endif
if( (UtilityBase = OpenLibrary( (STRPTR)"utility.library", 37)) )
{
/* Search HW */
ok = hw_Find_Boards( db );
@@ -182,10 +187,16 @@ ASM SAVEDS LONG DevOpen( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
D(("DevOpen for %ld\n",unit));
db->db_Lib.lib_OpenCnt++; /* avoid Expunge, see below for separate "unit" open count */
/* avoid Expunge, see below for separate "unit" open count */
//ObtainSemaphore( &db->db_Sem ); /* probably overkill */
db->db_Lib.lib_OpenCnt++;
//ReleaseSemaphore( &db->db_Sem );
db->db_ID++; /* opener ID (always >0) */
if( unit < db->db_NBoards )
if( (unit < db->db_NBoards) &&
(ioreq->ios2_Req.io_Message.mn_Length >= sizeof( struct IOSana2Req ) )
)
{
ObtainSemaphore( &db->db_Units[unit].du_Sem ); /* lock current board */
@@ -222,9 +233,6 @@ ASM SAVEDS LONG DevOpen( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
if( flags & SANA2OPF_PROM ) /* implies _MINE by spec */
db->db_Units[unit].du_Flags |= DUF_PROMISC;
hw_GetMacAddress( db, unit, &db->db_Units[unit].du_HWAddr[0] );
hw_GetMacAddress( db, unit, &db->db_Units[unit].du_CFGAddr[0] );
ok = 0;
dbm = (struct db_BufferManagement *)AllocMem( sizeof(struct db_BufferManagement),MEMF_ANY|MEMF_CLEAR);
if( dbm )
@@ -246,7 +254,7 @@ ASM SAVEDS LONG DevOpen( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
/* v1.95: disabled CopyToBuffer32 due to problems with MiamiDX */
/* v1.99: try identifying Miami */
/* MiamiDX requires byte count to be a multiple of 4 */
if( FindPort("MIAMI.1") ) /* Miami active ? */
if( FindPort( (STRPTR)"MIAMI.1") ) /* Miami active ? */
{
dbm->dbm_CopyToBuffer32 = (0);
dbm->dbm_CopyFromBuffer32 = (0);
@@ -269,11 +277,19 @@ ASM SAVEDS LONG DevOpen( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
dbm->dbm_ID = db->db_ID;
ok = 1;
}
/* the server is started with the Semaphore locked, to avoid
the race condition of getting instantiated twice
*/
if( ok )
{
/* start server if necessary */
ok = dbStartServer( db, unit );
}
hw_GetMacAddress( db, unit, &db->db_Units[unit].du_HWAddr[0] );
hw_GetMacAddress( db, unit, &db->db_Units[unit].du_CFGAddr[0] );
if( ok )
{
ret = 0;
@@ -352,8 +368,12 @@ ASM SAVEDS BPTR DevClose( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
(db->db_Units[unit].du_Flags & DUF_ONLINE )
)
{
#if 1
dbSignalServer( db , SIGBREAKF_CTRL_D, 1 ); /* signal server to shut down unit (and lock the semaphore while doing so) */
#else
Signal( (struct Task*)db->db_ServerProc, SIGBREAKF_CTRL_D);
Delay(1);
#endif
}
ObtainSemaphore( &db->db_Units[unit].du_Sem ); /* lock current board */
@@ -365,6 +385,30 @@ ASM SAVEDS BPTR DevClose( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
ReleaseSemaphore( &db->db_Units[unit].du_Sem );
#if 1
/* now check if the device is no longer in use in any unit (=global OpenCnt)
and shut down server if that is the case
*/
ObtainSemaphore( &db->db_Sem );
if( db->db_Lib.lib_OpenCnt == 0 )
{
ULONG i;
struct SanaReadType *type;
dbStopServer(db,0);
for( i=0 ; i < db->db_NBoards ; i++ )
{
while( (type = GetHead( &db->db_Units[i].du_ReadTypes ) ))
{
dbDeleteType( db, i, type->srt_Type );
}
}
}
ReleaseSemaphore( &db->db_Sem );
#endif
if (db->db_Lib.lib_Flags & LIBF_DELEXP)
ret = DevExpunge(db);
@@ -375,10 +419,9 @@ ASM SAVEDS BPTR DevClose( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
ASM SAVEDS BPTR DevExpunge( ASMR(a6) DEVBASEP ASMREG(a6) )
{
BPTR seglist = db->db_SegList;
ULONG i;
struct SanaReadType *type;
if( db->db_Lib.lib_OpenCnt )
/* don't go if the server is still up (for whatever reason) */
if( (db->db_Lib.lib_OpenCnt) || (db->db_ServerProc) )
{
db->db_Lib.lib_Flags |= LIBF_DELEXP;
return (0);
@@ -388,6 +431,8 @@ ASM SAVEDS BPTR DevExpunge( ASMR(a6) DEVBASEP ASMREG(a6)
Remove((struct Node*)db); /* remove device node from system */
Permit();
#if 0
/* moved to CloseDevice() */
dbStopServer(db,0);
for( i=0 ; i < db->db_NBoards ; i++ )
@@ -398,6 +443,7 @@ ASM SAVEDS BPTR DevExpunge( ASMR(a6) DEVBASEP ASMREG(a6)
}
}
#endif
/* last steps: libraries */
CloseLibrary(DOSBase);
@@ -816,9 +862,9 @@ LONG Need_HighPri( DEVBASEP )
return 0;
}
if( FindPort("Services Manager") )
if( FindPort( (STRPTR)"Services Manager") )
return 1;
if( FindPort("Accounts Manager") )
if( FindPort( (STRPTR)"Accounts Manager") )
return 1;
return 0;
@@ -833,34 +879,43 @@ static LONG dbStartServer( DEVBASEP, LONG unit )
LONG ret = 0,i,pri;
struct TagItem sv_tags[5];
/* server running ? */
if( db->db_ServerProc )
ObtainSemaphore( &db->db_Sem );
do
{
/* server running ? */
if( db->db_ServerProc )
{
if( Need_HighPri( db ) )
SetTaskPri((struct Task*)db->db_ServerProc,HIGHPRI);
return 1;
}
ret = 1;
break; /* ReleaseSemaphore */
}
if(!(port = CreateMsgPort() ))
return 0;
if(!(port = CreateMsgPort() ))
break; /* ReleaseSemaphore */
pri = 0;
if( Need_HighPri( db ) )
pri = 0;
if( Need_HighPri( db ) )
pri = HIGHPRI;
else
if( FindPort("AMITCP") ) /* AmiTCP active ? */
else
{
if( FindPort( (STRPTR)"AMITCP") ) /* AmiTCP active ? */
pri = 6;
if( FindPort( (STRPTR)"BAXTCP") ) /* BaxTCP active ? */
pri = 6;
}
sv_tags[i=0].ti_Tag = NP_Entry;
sv_tags[i++].ti_Data = (ULONG)ServerTask;
sv_tags[i ].ti_Tag = NP_Name;
sv_tags[i++].ti_Data = (ULONG)db->db_Lib.lib_Node.ln_Name;
sv_tags[i ].ti_Tag = NP_Priority;
sv_tags[i++].ti_Data = (ULONG)pri;
sv_tags[i ].ti_Tag = TAG_DONE;
sv_tags[i=0].ti_Tag = NP_Entry;
sv_tags[i++].ti_Data = (ULONG)ServerTask;
sv_tags[i ].ti_Tag = NP_Name;
sv_tags[i++].ti_Data = (ULONG)db->db_Lib.lib_Node.ln_Name;
sv_tags[i ].ti_Tag = NP_Priority;
sv_tags[i++].ti_Data = (ULONG)pri;
sv_tags[i ].ti_Tag = TAG_DONE;
if( (db->db_ServerProc = CreateNewProc(sv_tags)))
{
if( (db->db_ServerProc = CreateNewProc(sv_tags)))
{
/* server is running, wait for response */
volatile struct ServerMsg msg;
@@ -874,11 +929,15 @@ static LONG dbStartServer( DEVBASEP, LONG unit )
WaitPort( port );
ret = msg.sm_result; /* should be 1 */
D(("Server answered with %ld\n",ret));
}
if( !ret )
}
if( !ret )
db->db_ServerProc = (0);
DeleteMsgPort( port );
DeleteMsgPort( port );
} while(0);
ReleaseSemaphore( &db->db_Sem );
return ret;
}
@@ -886,12 +945,16 @@ static LONG dbStartServer( DEVBASEP, LONG unit )
/* stop Server function */
/* note: server is global right now */
/* note: this code assumes to run with locked Semaphore (db_Sem) */
static LONG dbStopServer( DEVBASEP, LONG unit )
{
ULONG i=1;
volatile struct Task *P;
/* server deletes itself from devbase */
dbSignalServer( db, SIGBREAKF_CTRL_C, 0 );
/* failsafe: when the server does not come down, hammer it with CTRL_C */
while( (P=(volatile struct Task*)db->db_ServerProc) )
{
Signal( (struct Task*)P, SIGBREAKF_CTRL_C);
@@ -902,6 +965,47 @@ static LONG dbStopServer( DEVBASEP, LONG unit )
return 0;
}
/* Signal server and wait for response */
/* notes:
- server is global right now
- a Semaphore is used to ensure one signal per call only
- a signal is allocated, if possible
*/
static LONG dbSignalServer( DEVBASEP, ULONG sig, ULONG flags )
{
ULONG mysig = SIGBREAKF_CTRL_D; /* failsafe */
LONG sigbit=-1;
sigbit = AllocSignal(-1);
if( sigbit >= 0 )
mysig = 1<<sigbit;
if( flags & 1 )
ObtainSemaphore( &db->db_Sem ); /* lock access to server state */
if( db->db_ServerProc )
{
/* important: we might land here from various tasks/procs: always update
task pointer, always lock semaphore
*/
db->db_ServerSigMask = mysig;
db->db_Task = FindTask(NULL);
Signal( (struct Task*)db->db_ServerProc, sig );
/* TODO: check "sig" for valid server signals,
currently: SIGBREAKF_CTRL_D,SIGBREAKF_CTRL_F,SIGBREAKF_CTRL_C
and otherwise don't wait */
Wait( mysig );
db->db_Task = NULL; /* no waiting is pending */
}
if( flags & 1 )
ReleaseSemaphore( &db->db_Sem ); /* unlock access to server state */
if( sigbit >= 0 )
FreeSignal(sigbit);
return 0;
}
/*
delete all buffers (type references) associated with device opener
+5
View File
@@ -33,6 +33,7 @@
#define SysBase db->db_SysBase
#define DOSBase db->db_DOSBase
#define UtilityBase db->db_UtilityBase
#define MMUBase db->db_MMUBase
//#define VampireBase db->db_VampireBase
/* old sana2.h ? */
@@ -103,6 +104,7 @@ struct devbase {
struct Library *db_SysBase; /* Exec Base */
struct Library *db_DOSBase;
struct Library *db_UtilityBase;
struct Library *db_MMUBase;
ULONG db_NBoards;
ULONG db_ID; /* device opener ID enumeration */
@@ -110,6 +112,8 @@ struct devbase {
than 1 network card of the same type, anyway ? */
/* server process data */
struct SignalSemaphore db_Sem; /* lock server state communication to one caller */
/* (see per-unit Semaphore for queue stuff) */
volatile struct Process *db_ServerProc; /* process of main queue server */
struct Task *db_Task; /* server shutdown task address (non permanently available) */
ULONG db_ServerSigMask; /* shutdown signal */
@@ -249,6 +253,7 @@ static LONG dbIsInList( struct List *, struct Node * );
static LONG dbStartServer( DEVBASETYPE*, LONG );
static LONG dbStopServer( DEVBASETYPE*, LONG );
static LONG dbSignalServer( DEVBASETYPE*, ULONG, ULONG );
static void dbDeleteBuffers( DEVBASETYPE*, struct IOSana2Req * );
+1
View File
@@ -112,6 +112,7 @@ DUF_PROMISC EQU (1<<DUB_PROMISC)
;than 1 network card of the same type, anyway ?
; server process data
STRUCT db_Sem,SS_SIZE ;list locking (global per unit)
APTR db_ServerProc ;process of main queue server
APTR db_Task ;server shutdown task address (non permanently available)
ULONG db_ServerSigMask ;shutdown signal
+376 -3
View File
@@ -23,11 +23,13 @@
DEBUG EQU 0
GLOBALINT_BOARD EQU 0 ;if 1, then toggle board interrupt, else ENC624 INTIE
OPT_AVOID_DEFAULT_RESETS EQU 1 ;if 1, then check valid Microchip MAC OUI and don't reset the whole chip if the MAC address is ok
OPT_Z2_WORDREAD EQU 1 ;read words instead of Longs on Z2 (specifically, 68030)
incdir src:baxnet/trunk/source/
;Temp:Amiga/src/Zorro-LAN-IDE.git/Driver/enc624j6net/
include "enc624j6net/registers.i"
include "enc624j6net/macros.i"
include "hw.i"
ifnd DEBUG
DEBUG EQU 0
@@ -129,6 +131,9 @@ ENC_BOARDID EQU 123 ;ZII-IDE-LAN-CP
XDEF _enc624j6l_ReadPHY
XDEF _enc624j6l_WritePHY
ifne OPT_Z2_WORDREAD
XDEF _enc624j6l_Z2Mode
endc
;
; System includes
@@ -458,6 +463,15 @@ a
dc.b $54,$10,$EC,0
dc.b $80,$1F,$12,0
dc.b $D8,$80,$39,0
;new registrations by Microchip
dc.b $e8,$eb,$1b,0 ; 23-Jun-2020
dc.b $80,$34,$28,0 ; 22-Dec-2020
dc.b $60,$8a,$10,0 ; 30-Mar-2021
dc.b $fc,$0f,$e7,0 ; 10-Sep-2021
dc.b $9c,$95,$6e,0 ; 21-Apr-2022
dc.b $44,$b7,$d0,0 ; 02-Aug-2022
dc.b $D8,$47,$8f,0 ; 13-Jan-2023
dc.b $40,$84,$32,0 ; 30-Mar-2023
dc.b 0,0,0,0
.dorst:
@@ -657,7 +671,7 @@ _enc624j6l_Init:
move #RXSTOP_INIT&$fffe,d0
WRITEREG ERXTAIL,a0,d0 ;tail pointer in buffer = rx-2, wraparound
; ifne _OPT_FLOWCONTROL
; ifne _OPT_FLOWCONTROL ;this is now a runtime option
moveq #PIO_INIT_FLOW_CONTROL,d0
and d1,d0
beq.s .init_noflow
@@ -810,6 +824,49 @@ _enc624j6l_SetOnline:
moveq #0,d0
WRITEREG PLinkChange,a0,d0 ;no detected/acknowledged link right now, i.e. LNK and DPX bits = 0
ifne 1
moveq #48,d0 ;was: 12
move.l d0,-(sp)
.an_wait_loop:
moveq #100,d0 ;
lsl.l #5,d0 ;wait 3.2ms (0.1*32)
bsr _enc624j6l_UMinDelay ;
moveq #PHSTAT1,d0 ;AUTONEG DONE, forced speeds/duplex
bsr _enc624j6l_ReadPHY
and.w #PHSTAT1_ANDONE,d0 ;autoneg success?
beq.s .an_not_finished
bsr _enc624j6l_CheckLinkChange ;
bra.s .an_finished
.an_not_finished:
subq.l #1,(sp)
bgt.s .an_wait_loop
.an_finished:
addq.l #4,sp
endc
ifne 0
;---------------- until HW comes upe ----------------------------------
;
;wait 256 us
;
moveq #40,d1 ;
.txwait:
READREG ECON1,a0,d0
and.w #ECON1_TXRTS,d0
beq.s .txrdy
;100 MBit/s frame time is max. 0.12 ms (without inter-frame spacing)
;WRITEDEBUG TXWait_MSG
;wait 5 us via CIA
moveq #5,d0
bsr _enc624j6l_UMinDelay
dbf d1,.txwait ;approx. 1ms max. wait
.txrdy:
endc
;moveq #1,d0 ;already set, see above
.err
rts
@@ -1073,6 +1130,7 @@ _enc624j6l_IntServer_List:
; In: A0 = board base address
;
; Out: D0 <0 error
;
; =0 ok, no link change handled
; >0 ok, link change handled
;
@@ -1080,7 +1138,7 @@ _enc624j6l_IntServer_List:
;
_enc624j6l_CheckLinkChange:
move.l a0,d0
beq.s .rts
beq.s .err ;error: we don't have a board
; link change events are captured with Interrupts and stored
; in the (custom) PLinkChange location (per board) by init and
@@ -1145,7 +1203,8 @@ _enc624j6l_CheckLinkChange:
moveq #0,d0
.rts:
rts
.err: moveq #HW_MAC_INVALID,d0 ;-1
rts
;---------------------------------------------------------------------------------------
;
@@ -1272,6 +1331,305 @@ _enc624j6l_HaveRecv:
bra.s .rts
ifne OPT_Z2_WORDREAD
;---------------------------------------------------------------------------------------
;
; receive single frame from HW into supplied memory buffer (Z2 Only)
;
; input: A0 - APTR mmapped board base address
; A1 - APTR buffer for received frame
; D0 - SHORT maximum size in buffer
;
; output: D0 <0 - error (i.e. frame too large)
; 0 - no pending frames
; >0 - size of received frame in buffer
;
; trash: -
;
; notes:
;
_enc624j6l_RecvFrameZ2:
;WORD READS ONLY
movem.l d2-d7/a1-a3,-(sp)
move.l a0,d1
beq .err
moveq #0,d0
READREG ESTAT,a0,d2 ;number of pending frames
move.b d2,d0 ;clear out count (ESTAT_PKTCNT7...ESTAT_PKTCNT0)
beq .rts ;nothing in buffer, return sheer emptiness
;at least one frame in buffer
ifne DEBUG
READREG ERXHEAD,A0,d4
READREG ERXTAIL,A0,d5
endc
;----------- check next packet pointer and verify expected state -----------
READREG PNextPacket,a0,d7 ;get user read pointer from private space
;lea (a0,d7.w),a2 ;read ptr for next packet address
;READREG 0,a2,d0 ;next packet pointer
READSRAM a0,d7,d0 ;move (a0,d7.w),d0
ifeq _OPT_BUFFER_SWAP
rol.w #8,d0 ;swap pointer to Big Endian
endc
;verify next packet pointer, re-initialize recv if this is invalid
cmp #RXSTOP_INIT,d0 ;bad pointer (<0 or >end of memory)
bhi.w .recv_err
cmp d0,d7
bgt.s .maybewrap
;unwrapped next packet
move d0,d1
bra.s .ptrcheck
.maybewrap:
;wrapped next packet ?
move #RXSTOP_INIT+1-RXSTART_INIT,d1 ;unwrap distance
add.w d0,d1 ;next pkt + unwrap distance
.ptrcheck:
sub.w d7,d1 ;length of pkt
cmp #MAX_FRAMELEN+2+6+2,d1 ;must be smaller than max framelen + ptr + status vector + alignment
bhi .recv_err ;-> reinit recv (am I paranoid ? -> try ENC28J60, then you know why...)
;------------------ check receive status vector -----------------------------
addq.w #2,d7 ;increment pointer
WRAPINDEX d7 ;wrap D7 if beyond buffer
ifne 0
READSRAM a0,d7,d2 ;move (a0,d7.w),d0
ifeq _OPT_BUFFER_SWAP
rol.w #8,d2 ;swap pointer to Big Endian
endc
and.w #$f800,d2 ;verify (should be all zeros in upper 9 bits)
bne .recv_err ;receive buffer is wrong -> re-initialize
endc
addq.w #4,d7 ;increment pointer
WRAPINDEX d7 ;wrap D7 if beyond buffer
WRITEREG PNextPacket,a0,d0 ;write pointer for next packet
ifne 0
;lea (a0,d7.w),a2 ;new read pointer for length
;READREG 0,a2,d0 ;last control word = length (byte count)
READSRAM a0,d7,d2 ;move (a0,d7.w),d0
ifeq _OPT_BUFFER_SWAP
rol.w #8,d2 ;swap pointer to Big Endian
endc ;_OPT_BUFFER_SWAP
endc ;0
;D1 is the distance to the next frame = stored length + recv vevtor
subq #6+2,d1 ;STATUS VECTOR, Pointer
move d1,d0 ;
subq #4,d0 ;subtract CRC length
addq.w #2,d7 ;increment pointer (skip status vector length field)
WRAPINDEX d7 ;wrap D7 if beyond buffer
;d0.w: length (without crc)
;d7.w: read position (beginning of frame, dest MAC)
;a0: board I/O
;a1: dest pointer
move.l a1,a3
ifne _OPT_RECV
move.l d7,d1 ;start
;and.l #$FFFF,d1 ;keep only lower address
add.w d0,d1 ;start+bytes
bvs.s .nooptrecv ;what? beyond 16 Bit ? -> we really should consider this an error, really :-)
cmp.w #RXSTOP_INIT,d1 ;
bgt.s .nooptrecv ;sadly, we cannot use faster routine atm, because we have a wrap around in the SRAM buffer
ifne _OPT_ADR_QUIRK
eor.w #$6000,d7
endc ;_OPT_ADR_QUIRK
lea (a0,d7.w),a2 ;read pointer
ifeq _OPT_BUFFER_SWAP
btst #1,d7 ;do we have a read address that`s not long aligned?
beq.s .no_impair
move.w (a2)+,(a1)+ ;long-align address
subq #2,d0
ble.w .end_read ;should not happen (>14 per valid frame)
moveq #15,d1 ;
move.l d0,d2 ;total bytes
and.l d0,d1 ;remainder: max 15 bytes
lsr.w #4,d2 ;total/16
addq #2,d0
bra.s .impair
.no_impair:
move.l d0,d2 ;total bytes
moveq #15,d1 ;
lsr.w #4,d2 ;total/16
and.l d0,d1 ;remainder: max 15 bytes
.impair:
addq #3,d1 ;remainder, rounded up to +3 bytes
subq #1,d2 ;dbf
blt.s .nopt16_read ;less than 16 bytes -> bail out
bra.s .opt16_read
.opt16_loop:
move.w d3,(a1)+
.opt16_read:
rept 3
move.w (a2)+,(a1)+
move.w (a2)+,(a1)+
endr
move.w (a2)+,(a1)+
move.w (a2)+,d3
dbf d2,.opt16_loop
move.w d3,(a1)+
.nopt16_read:
else ;_OPT_BUFFER_SWAP
moveq #3,d1 ;round bytes up
add d0,d1 ;byte count + 3
endc ;_OPT_BUFFER_SWAP
lsr #2,d1 ;converted to dword count = ceil(bytes/4)
subq #1,d1 ;longwords - 1
blt.s .end_read
.opt_read:
ifne _OPT_BUFFER_SWAP
move.w (a2)+,d2 ;get current word
rol.w #8,d2 ;swap buffer to Big Endian
move.w d2,(a1)+
move.w (a2)+,d2
rol.w #8,d2 ;swap buffer to Big Endian
move.w d2,(a1)+
else ;_OPT_BUFFER_SWAP
move.w (a2)+,(a1)+
move.w (a2)+,(a1)+
endc ;_OPT_BUFFER_SWAP
dbf d1,.opt_read
bra.s .end_read
.nooptrecv:
;DEBUG ONLY
;bra.s .emergency_slow
;DEBUG ONLY
ifeq _OPT_BUFFER_SWAP ;1
;
;wraparound aware loop for big endian buffer
;
move.w #RXSTOP_INIT+1,d1 ;end address $6000
lea (a0,d7.w),a2 ;read pointer
sub.w d7,d1 ;minus start pointer = number of bytes until wrap
cmp.w d0,d1 ;
bhi.s .emergency_slow ;don`t trust anyone: if d1<0 or >total_length, then branch to slow routine
move d1,d2
lsr #2,d2 ;we copy long words
subq #1,d2 ;dbf
blt.s .nowords_beforewrap ;
.loop_beforewrap:
move.w (a2)+,(a1)+
move.w (a2)+,(a1)+
dbf d2,.loop_beforewrap
.nowords_beforewrap: ;
btst #1,d7 ;uneven longword address before wraparound ?
beq.s .copy_afterwrap
move.w (a2)+,(a1)+ ;copy word from uneven address
.copy_afterwrap:
move #RXSTART_INIT,d7 ;wrap
lea (a0,d7.w),a2 ;read pointer
move d0,d2 ;total bytes to read
sub.w d1,d2 ;remaining=total-copied (D1=RXSTOP_INIT+1-D7)
ble.s .end_read ;done, if zero
move d2,d1 ;
lsr #2,d2 ;we copy long words
bra.s .enter_afterwrap
.loop_afterwrap:
move.w (a2)+,(a1)+
move.w (a2)+,(a1)+
.enter_afterwrap:
dbf d2,.loop_afterwrap
and.b #3,d1 ;btst #1,d1 ;1 byte or short remaining ?
beq.s .end_read
move.w (a2)+,(a1)+
bra.s .end_read
.emergency_slow:
endc ;_OPT_BUFFER_SWAP
endc ;_OPT_RECV
;generic loop: check for position overflows with each word
;
;CAUTION: DWORD loop doesn`t apply here since buffer is organized
; in multiples of two bytes, same for frame lengths and
; possible wraparounds
;
moveq #1,d2 ;mask for lower bit
move d0,d1 ;byte count
lsr #1,d1 ;converted to word count
and.l d0,d2 ;if lower bits are set ->
bne.s .generic_read ;read 1 word more if impair byte/word count
subq #1,d1 ;words - 1
.generic_read:
move.w (a0,d7.w),d2 ;get current word
ifne _OPT_BUFFER_SWAP
rol.w #8,d2 ;swap buffer to Big Endian
endc
move.w d2,(a1)+ ; store currend word
addq #2,d7 ;increment position
WRAPINDEX d7 ;wrap D7 if beyond buffer
dbf d1,.generic_read
.end_read:
;frame copied, now advance HW pointer
READREG PNextPacket,a0,d1 ;write pointer for next packet
cmp #RXSTART_INIT,d1
bne.s .tail_nowrap
move #(RXSTOP_INIT&$fffe)+2,d1
.tail_nowrap:
subq #2,d1
WRITEREG ERXTAIL,a0,d1 ;tail pointer in buffer = rx-2, wraparound
move #ECON1_PKTDEC,d1
SETREG ECON1,a0,d1 ;set packet decrement ("frame", actually)
ext.l d0
ifne ADD_4RX
addq.l #4,d0 ;+4 (fake CRC) for Shapeshifter, also see server.c plain copy mode
endc
cmp.w #14,d0
bge.s .rts
moveq #0,d0
.rts:
movem.l (sp)+,d2-d7/a1-a3
rts
.err: moveq #-1,d0 ;receive error
bra.s .rts
.recv_err:
moveq #0,d0
READREG ESTAT,a0,d2 ;number of pending frames
move.b d2,d0 ;clear out count (ESTAT_PKTCNT7...ESTAT_PKTCNT0)
beq.s .rts ;nothing in buffer, return sheer emptiness
;serious problem: we need to re-initialize the recv buffer here
bsr _enc624j6l_RXReset
moveq #ECON1_RXEN,d0 ;re-enable reception
SETREG ECON1,a0,d0
moveq #0,d0
bra.s .rts
endc
;---------------------------------------------------------------------------------------
;
; receive single frame from HW into supplied memory buffer
@@ -1289,10 +1647,17 @@ _enc624j6l_HaveRecv:
; notes:
;
_enc624j6l_RecvFrame: ;
ifne OPT_Z2_WORDREAD
tst.l Z2Mode
bne.w _enc624j6l_RecvFrameZ2
endc
movem.l d2-d7/a1-a3,-(sp)
move.l a0,d1
beq .err
moveq #0,d0
READREG ESTAT,a0,d2 ;number of pending frames
move.b d2,d0 ;clear out count (ESTAT_PKTCNT7...ESTAT_PKTCNT0)
@@ -1899,4 +2264,12 @@ _enc624j6l_UMinDelay:
;recvcount: dc.l 0
;recvlist: ds.w 65536
;separate section necessary with SAS/C
section data,data
Z2Mode:
_enc624j6l_Z2Mode:
dc.l 0
END
@@ -362,5 +362,6 @@ ASM SAVEDS int enc624j6l_WritePHY(
ASMR(d0) unsigned long phyreg ASMREG(d0),
ASMR(d1) unsigned short data ASMREG(d1) );
extern unsigned long enc624j6l_Z2Mode;
#endif /* _INC_ENC624J6L_H */
+83 -5
View File
@@ -9,21 +9,26 @@
*/
#include <exec/libraries.h>
#include <proto/exec.h>
#include <exec/execbase.h>
/*#include <clib/expansion_protos.h>
#include <pragmas/expansion_pragmas.h>*/
#include <proto/expansion.h>
#include <libraries/configvars.h>
#include <hardware/intbits.h>
#include "device.h"
#include "hw.h"
#include "enc624j6l.h"
#include "registers.h"
#include "mmustuff.h"
extern const BYTE DeviceName[];
#ifndef AFF_68060
#define AFF_68060 (1<<10)
#endif
#define ENC_MANUFACTURER 2588
#define ENC_BOARD 123
@@ -90,11 +95,12 @@ ASM SAVEDS LONG hw_Find_Boards( ASMR(a0) DEVBASEP ASMREG(a0) )
struct ConfigDev *cfg = (0);
APTR boardbase;
if( (ExpansionBase = OpenLibrary( (BYTE*)exp_name, 37 )) )
if( (ExpansionBase = OpenLibrary( (STRPTR)exp_name, 37 )) )
{
/* TODO: actually verify that we have a module here */
/* ret = 1; */
enc624j6l_Z2Mode = 0;
for( i=0 ; i < MAX_UNITS ; i++ )
{
cfg = FindConfigDev( cfg, ENC_MANUFACTURER, ENC_BOARD );
@@ -104,9 +110,28 @@ ASM SAVEDS LONG hw_Find_Boards( ASMR(a0) DEVBASEP ASMREG(a0) )
db->db_Units[i].duh_BASE = boardbase;
D(("Board at %lx\n",(ULONG)cfg->cd_BoardAddr ));
/* on Z2 ? */
if( boardbase <= (APTR)0x40000000 )
{
struct ExecBase *EB = (struct ExecBase *)SysBase;
/* 68000-68030 ? */
if( !(EB->AttnFlags & (AFF_68040|AFF_68060) ))
enc624j6l_Z2Mode = 1;
}
#ifdef USEMMU
if( MMUBase )
{
/* sometimes (A3000 with SuperKickstart), the MMU table is just wrong, fix "Invalid" bit, if necessary */
setupMMU( boardbase, 0x10000, 0, db );
}
#endif
/* bring board to sane state (i.e. perform soft reset) */
/* if( boardbase < (APTR)0x40000000 ) */ /* debug only */
enc624j6l_CheckBoard( boardbase );
}
ret = i;
D(("%ld boards found\n",ret));
@@ -300,12 +325,30 @@ ASM SAVEDS void hw_ConfigInit( ASMR(a0) DEVBASEP ASMREG(a0) )
}
UBYTE hex2char( STRPTR src )
{
UBYTE cur = 0;
cur = *src;
if( cur >= 'a' )
cur &= ~32;
if( (cur < '0') || (cur>'F') )
return 0;
cur = ( cur < 'A' ) ? cur-'0' : cur-'A'+10;
return cur;
}
ASM SAVEDS void hw_ConfigUpdate( ASMR(a0) DEVBASEP ASMREG(a0),
ASMR(a1) void*argsv ASMREG(a1))
{
struct HWConfig *args = (struct HWConfig *)argsv; /* see hwprivate.h */
struct HWData *hwd = &db->db_hwdat;
D(("hw_ConfigUpdate\n"));
if( args->timervalue )
hwd->timervalue = *args->timervalue;
if( args->fullduplex )
@@ -314,6 +357,28 @@ ASM SAVEDS void hw_ConfigUpdate( ASMR(a0) DEVBASEP ASMREG(a0),
hwd->flowcontrol = 1;
if( args->multicast )
hwd->multicast = 1;
if( args->conf_mac ) /* user-configured MAC address */
{
int i=0,val;
STRPTR src = args->conf_mac;
while( i < 6 )
{
val = hex2char( src++ ) << 4;
val |= hex2char( src++ );
if( (*src++ != ':') && (i<5) )
break;
db->db_Units[0].du_CFGAddr[i] = val;
/* db->db_Units[0].du_HWAddr[i] = val; */
i++;
}
D(("Configured MAC %s (-> %02lx%02lx%02lx%02lx%02lx%02lx\n",\
args->conf_mac, \
db->db_Units[0].du_CFGAddr[0], db->db_Units[0].du_CFGAddr[1],\
db->db_Units[0].du_CFGAddr[2], db->db_Units[0].du_CFGAddr[3],\
db->db_Units[0].du_CFGAddr[4], db->db_Units[0].du_CFGAddr[5] ));
enc624j6l_SetMAC( db->db_Units[0].duh_BASE, db->db_Units[0].du_CFGAddr );
}
}
/*
@@ -408,7 +473,9 @@ ASM SAVEDS LONG hw_get_mac_status( ASMR(a0) DEVBASEP ASMREG(
phcon1 = enc624j6l_ReadPHY( boardbase, PHCON1 );
phstat1 = enc624j6l_ReadPHY( boardbase, PHSTAT1 ); /* read again to see whether link is established */
if( ( phstat1 < 0 ) || ( phstat3 < 0 ) )
{
return HW_MAC_INVALID; /* no valid data found */
}
/* a) check Link */
ret = 0;
@@ -548,6 +615,17 @@ ASM void INCMAC( ASMR(a0) UBYTE *curmc ASMREG(a0) )
}
}
ASM void COPYMAC( ASMR(a0) UBYTE *dest ASMREG(a0),
ASMR(a1) UBYTE *src ASMREG(a1) )
{
dest[0] = src[0];
dest[1] = src[1];
dest[2] = src[2];
dest[3] = src[3];
dest[4] = src[4];
dest[5] = src[5];
}
/* TODO: implement Multicast hashing */
ASM SAVEDS LONG hw_change_multicast( ASMR(a0) DEVBASEP ASMREG(a0),
ASMR(d0) ULONG unit ASMREG(d0),
@@ -560,7 +638,7 @@ ASM SAVEDS LONG hw_change_multicast( ASMR(a0) DEVBASEP ASMREG(
USHORT mc_hashes[4] = {0,0,0,0}; /* EHT1, EHT2, EHT3, EHT4 */
USHORT *hash_tab;
struct MCastEntry *mc;
UBYTE *curmc;
UBYTE curmc[6];
flags = PIO_INIT_BROAD_CAST;
@@ -581,7 +659,7 @@ ASM SAVEDS LONG hw_change_multicast( ASMR(a0) DEVBASEP ASMREG(
mc->mce_Node.mln_Succ ;
mc=(struct MCastEntry*)mc->mce_Node.mln_Succ )
{
curmc = mc->mce_start;
COPYMAC( curmc, mc->mce_start );
while( CMPleMAC( curmc, mc->mce_stop ) )
{
D(("CMPleMAC %ld %02lx%02lx%02lx%02lx%02lx%02lx - %02lx%02lx%02lx%02lx%02lx%02lx\n",\
@@ -594,7 +672,7 @@ ASM SAVEDS LONG hw_change_multicast( ASMR(a0) DEVBASEP ASMREG(
(ULONG)mc->mce_stop[4],(ULONG)mc->mce_stop[5] \
));
crc = myhw_CRC32( mc->mce_start, 6 );
crc = myhw_CRC32( curmc, 6 );
curhash = (crc & 0x1f800000)>>23; /* 2 bit reg, 4 bit hash pos in reg */
mc_hashes[ ((curhash >> 4)&3) ] |= 1<<(curhash&0xf);
INCMAC( curmc );
+2 -1
View File
@@ -41,7 +41,7 @@ struct HWData {
#define HW_CONFIGFILE "ENV:SANA2/enc624j6net.config"
/* appended to COMMON_TEMPLATE */
#define HW_CONFIGTEMPLATE "TIMER/K/N,FULLDUPLEX/S,MULTICAST/S,FLOWCONTROL/S"
#define HW_CONFIGTEMPLATE "TIMER/K/N,FULLDUPLEX/S,MULTICAST/S,FLOWCONTROL/S,MAC/K"
/* referenced by server.c, hw.c */
struct HWConfig
@@ -51,6 +51,7 @@ struct HWConfig
ULONG fullduplex;
ULONG multicast;
ULONG flowcontrol;
STRPTR conf_mac; /* user config MAC address */
};
#endif /* _INC_HWPRIVATE_H */
+1 -1
View File
@@ -8,7 +8,7 @@
_OPT_BUFFER_SWAP EQU 0 ;perform byte swap on buffer ops (1) or assume native endian (0)
_OPT_REG_SWAP EQU 0 ;perform byte swap on register ops (1) or assume native endian (0)
_OPT_ADR_QUIRK EQU 0 ;address lines 12/13 are swapped (1) or linear addressing (0)
_OPT_FLOWCONTROL EQU 0 ;perform flow control on RX (1) or not (0)
_OPT_FLOWCONTROL EQU 0 ;perform flow control on RX (1) or not (0), obsolete (runtime option now)
_OPT_RECV EQU 1 ;faster recv (1) or generic (0)
_OPT_CHECKLINK_TX EQU 0 ;check for link changes in TX (1) or expect from outside (0) -> see server.c
+11 -11
View File
@@ -1,10 +1,10 @@
incdir include:
ifnd _LVOSupervisor
include lvo/exec_lib.i
;incdir include:
;ifnd _LVOSupervisor
;include lvo/exec_lib.i
;include exec/exec_lib.i
endc
include exec/execbase.i
include device.i
;endc
;include exec/execbase.i
;include device.i
ifnd _LVORawDoFmt
@@ -52,10 +52,10 @@ _KPrintFa0a1:
rts
;DEBUG
dc.l $deadbeef
dc.l sds_SIZEOF
dc.l sv_SIZEOF
dc.l du_SIZEOF
dc.l db_SIZEOF
; dc.l $deadbeef
; dc.l sds_SIZEOF
; dc.l sv_SIZEOF
; dc.l du_SIZEOF
; dc.l db_SIZEOF
+3 -3
View File
@@ -174,7 +174,7 @@ LONG get_device(struct prgdata *prg, BYTE *name, LONG unit )
static BOOL findcmd(struct NSDeviceQueryResult *nsdqr, UWORD cmd)
{
UWORD *p;
for (p = nsdqr->SupportedCommands; (*p); ++p)
for (p = nsdqr->nsdqr_SupportedCommands; (*p); ++p )
if (*p == cmd)
return TRUE;
return FALSE;
@@ -204,9 +204,9 @@ LONG probe_device( struct prgdata *prg )
return 0;
}
if (nsdqr.DeviceType != NSDEVTYPE_SANA2)
if ( nsdqr.nsdqr_DeviceType != NSDEVTYPE_SANA2 )
{
Printf("Device is not a SANA-II device (type %ld, needed %ld\n).", (LONG)nsdqr.DeviceType, (LONG) NSDEVTYPE_SANA2);
Printf("Device is not a SANA-II device (type %ld, needed %ld\n).", (LONG)nsdqr.nsdqr_DeviceType, (LONG) NSDEVTYPE_SANA2 );
return 0;
}
+109
View File
@@ -0,0 +1,109 @@
/*
set up MMU for flash access using mmu.library
(C) 2022 Henryk Richter
The F0 area (0xF00000-0xF7ffff) is known to be
reserved by Commodore for diagnostic ROMs (or
BootROMs), as well as additional kickstart modules.
Some configurations of the MMU will mark this
area as ROM such that write attempts are inhibited
by the processor itself.
This code will revert any existing remapping (to
RAM) and set up useable cache flags such that the
Flash can be written to.
*/
#define __NOLIBBASE__
#include <proto/mmu.h>
#include <mmu/context.h>
#include <mmu/mmutags.h>
#include "debug.h"
#include "mmustuff.h"
//extern struct Library *MMUBase;
//extern struct DosLibrary *DOSBase;
#define CACHEFLAGS (MAPP_CACHEINHIBIT|MAPP_COPYBACK|MAPP_NONSERIALIZED|MAPP_IMPRECISE)
#define ROMFLAGS (MAPP_CACHEINHIBIT|MAPP_GLOBAL|MAPP_IO|MAPP_USER0)
#define ROMCFLAGS (MAPP_CACHEINHIBIT|MAPP_COPYBACK|MAPP_NONSERIALIZED|MAPP_IMPRECISE|MAPP_GLOBAL|MAPP_IO|MAPP_WRITEPROTECTED|MAPP_ROM|MAPP_INVALID)
#ifdef __VBCC__
#define BCAST
#else
#define BCAST (ULONG)
#endif
/*
set up MMU as I/O space from "base", "size" bytes,
keep flags==0 for now
the device pointer is used to fetch the MMUbase from it, nothing more
*/
ASM SAVEDS LONG setupMMU( ASMR(a0) void *base ASMREG(a0),
ASMR(d0) LONG size ASMREG(d0),
ASMR(d1) ULONG flags ASMREG(d1),
ASMR(a6) DEVBASEP ASMREG(a6) )
{
struct MMUContext *ctx,*sctx; /* default context, supervisor context */
ULONG props;
struct MinList *ctxl,*sctxl;
struct TagItem tgs[2] = {{TAG_DONE,0},{TAG_DONE,0} };
if( !MMUBase )
return 1; /* cannot setup MMU without MMULib */
ctx=DefaultContext();
sctx=SuperContext(ctx);
props = GetPropertiesA(sctx,BCAST base,tgs);
props |= GetPropertiesA(sctx,BCAST base,tgs);
D(( (STRPTR)"Current MMU props on 0x%lx area: 0x%lx\n",(ULONG)base,props));
LockContextList();
LockMMUContext(ctx);
LockMMUContext(sctx);
if( (props & MAPP_REMAPPED) )
{
D(( (STRPTR)"Memory was remapped elsewhere, reverting to physical location\n" ));
if( (ctxl=GetMapping(ctx)))
{
if( (sctxl=GetMapping(sctx)))
{
if( SetPropertiesA(ctx,0,MAPP_REMAPPED|CACHEFLAGS,BCAST base,size,tgs) )
{
if( SetPropertiesA(sctx,0,MAPP_REMAPPED|CACHEFLAGS,BCAST base,size,tgs) )
{
}
}
ReleaseMapping(sctx,sctxl);
}
ReleaseMapping(ctx,ctxl);
}
}
/* set desired flags */
SetPropertiesA(ctx,ROMFLAGS,ROMCFLAGS, BCAST base,size,tgs);
SetPropertiesA(sctx,ROMFLAGS,ROMCFLAGS,BCAST base,size,tgs);
RebuildTrees(ctx,sctx,NULL);
UnlockMMUContext(sctx);
UnlockMMUContext(ctx);
UnlockContextList();
props = GetPropertiesA(sctx,BCAST base,tgs);
props |= GetPropertiesA(sctx,BCAST base,tgs);
D(( (STRPTR)"New MMU props on 0x%lx area: 0x%lx\n",(ULONG)base,props));
return 0;
}
+30
View File
@@ -0,0 +1,30 @@
/*
set up MMU for flash access using mmu.library
(C) 2022 Henryk Richter
The F0 area (0xF00000-0xF7ffff) is known to be
reserved by Commodore for diagnostic ROMs (or
BootROMs), as well as additional kickstart modules.
Some configurations of the MMU will mark this
area as ROM such that write attempts are inhibited
by the processor itself.
This code will revert any existing remapping (to
RAM) and set up useable cache flags such that the
Flash can be written to.
*/
#ifndef _INC_MMUSTUFF_H
#define _INC_MMUSTUFF_H
#include "compiler.h"
#include "device.h"
ASM SAVEDS LONG setupMMU( ASMR(a0) void *base ASMREG(a0),
ASMR(d0) LONG size ASMREG(d0),
ASMR(d1) ULONG flags ASMREG(d1),
ASMR(a6) DEVBASEP ASMREG(a6) );
#endif
+17 -5
View File
@@ -154,7 +154,7 @@ static LONG server_setOnline( DEVBASEP , ULONG unit, ULONG evt )
struct Library *TimerBase;
MemSet( &timereq, 0, sizeof(struct timerequest));
OpenDevice("timer.device", 0, (struct IORequest*)&timereq, 0);
OpenDevice( (STRPTR)"timer.device", 0, (struct IORequest*)&timereq, 0);
TimerBase = (struct Library *)timereq.tr_node.io_Device;
GetSysTime( &db->db_Units[unit].du_DevStats.LastStart );
CloseDevice( (struct IORequest*)&timereq);
@@ -293,7 +293,7 @@ static LONG server_Config( DEVBASEP )
hw_ConfigInit( db ); /* hw defaults */
if((cfgfile = Open(HW_CONFIGFILE, MODE_OLDFILE))) /* see hwprivate.h for CONFIGFILE */
if((cfgfile = Open( (STRPTR)HW_CONFIGFILE, MODE_OLDFILE))) /* see hwprivate.h for CONFIGFILE */
{
struct HWConfig args; /* see hwprivate.h */
struct RDArgs *readargs;
@@ -302,7 +302,7 @@ static LONG server_Config( DEVBASEP )
MemSet( &args, 0, sizeof( args ) );
readargs = ReadArgs( (BYTE*)configtemplate, (LONG *)&args, NULL);
readargs = ReadArgs( (STRPTR)configtemplate, (LONG *)&args, NULL);
Close( SelectInput( cfgfile ) ); /* restore default input and retrieve cfgfile */
@@ -354,7 +354,7 @@ static LONG server_changeMulticast( DEVBASEP, ULONG unit, struct IOSana2Req *ior
entry = (struct MCastEntry *)db->db_svdat.sv_mclist.lh_Head;
while( entry->mce_Node.mln_Succ )
{
if( CMPeqMAC( entry->mce_start, ioreq->ios2_SrcAddr ) )
if( CMPeqMAC( (BYTE*)entry->mce_start, (BYTE*)ioreq->ios2_SrcAddr ) )
break;
entry = (struct MCastEntry *)entry->mce_Node.mln_Succ;
}
@@ -1143,11 +1143,17 @@ VOID SAVEDS ServerTask(void)
server_HandleS2Commands( db );
gotmask &= ~portsigmask;
}
/* Important: first check CTRL_D to go offline cleanly
before acting on CTRL_C
*/
if( gotmask & SIGBREAKF_CTRL_D )
{
D(("Got CTRL-D in Server. Checking Online status\n"));
gotmask &= ~SIGBREAKF_CTRL_D;
server_CloseDevice_offline( db );
/* acknowledge command (unless CTRL_C was also set) */
if( (db->db_Task) && (!(gotmask & SIGBREAKF_CTRL_C)) )
Signal( db->db_Task, db->db_ServerSigMask );
}
if( gotmask & SIGBREAKF_CTRL_C )
{
@@ -1161,10 +1167,16 @@ VOID SAVEDS ServerTask(void)
QuitServer:
if( db )
db->db_ServerProc = (0);
{
db->db_ServerProc = (0);
/* acknowledge command */
if( db->db_Task )
Signal( db->db_Task, db->db_ServerSigMask );
}
{ /* revert to "real" execbase, in case that we never got the startup msg */
struct { struct Library *db_SysBase; } *db = (void*)0x4;
D(("Server exiting"));
Forbid();
}
+1
View File
@@ -31,6 +31,7 @@ ASMOBJECTS = $(SUBDIR)/enc624j6l.o$(TYPE) $(SUBDIR)/intervaltimer.o$(TYPE)
# arguments passed down recursively (example):
#DEVICEID=v2expeth.device
DEFINES1 = DEFINE HW_DMA_TX=1
#DEFINES1 = $(DEFINES1) DEFINE USEMMU=1
ASMDEFS1 = -DHW_DMA_TX=1
#CPU = 68020
+165
View File
@@ -0,0 +1,165 @@
###############################################################################
#
# SAS/C Makefile for V4 ETH
#
# author: Henryk Richter <henryk.richter@gmx.net>
#
# tools required:
# working SAS/C installation (sc:, sc:include and sc:netinclude assigned,
# "sc", "smake" and "slink in path)
# vasm in path (vasmm68k_mot)
#
###############################################################################
###############################################################################
# Name, version
#
###############################################################################
#DEVICEVERSION=1
#DEVICEREVISION=95
#DEVICEDATE=08.09.2018
#DEVICEEXTRA=Beta
SUBDIR=v4net
ASMOBJECTS = $(SUBDIR)/vampuuid.o$(TYPE) $(SUBDIR)/intervaltimer.o$(TYPE) \
$(SUBDIR)/v4l.o$(TYPE) kprintf.o$(TYPE)
#
# more than one flavour of the same code base may be build with this setup
#
# some arguments are passed down recursively (example):
#DEVICEID=v4net.device
#DEFINES1 = DEFINE HW_DMA_TX=1
#ASMDEFS1 = -DHW_DMA_TX
#CPU = 68020
###############################################################################
#
# common.smk (SAS/C variant of common.mk)
#
# author: Henryk Richter <henryk.richter@gmx.net>
#
# note: when switching between different hardware targets, don`t forget
# "make clean" in between
###############################################################################
# debug = 1 will include string debugging for terminal/sushi/sashimi
# not enabled yet in SAS/C makefile
debug = 0
###############################################################################
# prefix for system includes (ASM)
#
###############################################################################
PREFX = sc:
SYSINC = $(PREFX)include
###############################################################################
#
# compiler executables and support calls
#
###############################################################################
RM = delete force quiet
CC = sc
LD = slink
MAKE = smake
CFLAGS = NOVER NOICONS nostackcheck math=standard strmerge strsect=code parameters=regs data=near opt optsize
LDFLAGS = NOICONS SC SD ND
VASM = vasmm68k_mot
VASMFORMAT = -m$(CPU) -Fhunk -nowarn=2064 -quiet -I$(SYSINC)
###############################################################################
#
# paths to the local includes
#
###############################################################################
IPATH =
###############################################################################
#
# compile-level feature definitions
#
###############################################################################
# see all: target for defaults in $(DEFINES)
DEFINES = $(DEFINES1) CPU=$(CPU)
DEFINES = $(DEFINES) DEFINE ALLREADREQS=1
#DEFINES = $(DEFINES) DEFINE DEVICEVERSION=$(DEVICEVERSION)
#DEFINES = $(DEFINES) DEFINE DEVICEREVISION=$(DEVICEREVISION)
#DEFINES = $(DEFINES) DEFINE DEVICEDATE=$(DEVICEDATE)
#DEFINES = $(DEFINES) DEFINE DEVICEEXTRA=$(DEVICEEXTRA)
DEFINES = $(DEFINES) DEFINE NEWSTYLE=1
DEFINES = $(DEFINES) DEFINE HAVE_VERSION_H=1
DEFINES = $(DEFINES) DEFINE DEVICENAME=$(DEVICEID)
ASMDEFS = $(ASMDEFS1)
#-DDEVICEVERSION=$(DEVICEVERSION) -DDEVICEREVISION=$(DEVICEREVISION)
###############################################################################
#
# debug
#
###############################################################################
#ifeq ($(debug),1)
#CFLAGS += -DDEBUG -g
#CFLAGS2 += -DDEBUG -g
#LINKLIBS = -L$(PREFX)/lib -ldebug
#endif
###############################################################################
#
# compiler flags and optimization levels
#
###############################################################################
CFLAGS = $(CFLAGS) INCLUDEDIR="" INCLUDEDIR=$(SUBDIR) $(DEFINES)
###############################################################################
#
# objects to build
#
###############################################################################
# ASM based alternative to deviceheader.o would be romtag.o
OBJECTS = deviceheader.o$(TYPE) deviceinit.o$(TYPE) device.o$(TYPE) \
server.o$(TYPE) $(SUBDIR)/hw.o$(TYPE)
OBJECTS = $(OBJECTS) $(ASMOBJECTS)
BUILDDEPS = device.h server.h hw.h macros.h compiler.h
###############################################################################
#
# rules and commands
#
###############################################################################
.asm.o$(TYPE): $(BUILDDEPS) $*.asm
$(VASM) $(VASMFORMAT) $(ASMDEFS) -o $@ $*.asm
.c.o$(TYPE): $(BUILDDEPS) $*.c
$(CC) $(CFLAGS) OBJECTNAME $@ $*.c
all:
$(MAKE) -f smakefile.v4 TYPE=4 v4net.device DEVICEID=v4net.device CPU=68020
v4net.device: $(OBJECTS)
-$(LD) $(OBJECTS) LIB sc:lib/sc.lib $(LDFLAGS) TO $(DEVICEID)
clean:
-$(RM) v4net.device \#?.o4 $(SUBDIR)/\#?.o4
install:
copy v4net.device DEVS:Networks
# dependencies
device.o$(TYPE): device.c device.h server.h hw.h macros.h compiler.h
server.o$(TYPE): server.c device.h server.h hw.h macros.h compiler.h
deviceinit.o$(TYPE): deviceinit.c device.h server.h hw.h macros.h compiler.h
deviceheader.o$(TYPE): deviceheader.c device.h server.h hw.h macros.h compiler.h
+169
View File
@@ -0,0 +1,169 @@
###############################################################################
#
# SAS/C Makefile for VWizNet
#
# author: Henryk Richter <henryk.richter@gmx.net>
#
# tools required:
# working SAS/C installation (sc:, sc:include and sc:netinclude assigned,
# "sc", "smake" and "slink in path)
# vasm in path (vasmm68k_mot)
#
###############################################################################
###############################################################################
# Name, version
#
###############################################################################
#DEVICEVERSION=1
#DEVICEREVISION=95
#DEVICEDATE=08.09.2018
#DEVICEEXTRA=Beta
SUBDIR=qwiznet
ASMOBJECTS = $(SUBDIR)/vampuuid.o$(TYPE) $(SUBDIR)/intervaltimer.o$(TYPE) \
$(SUBDIR)/w5500l.o$(TYPE)
#
# more than one flavour of the same code base may be build with this setup
#
# some arguments are passed down recursively (example):
#DEVICEID=vwiznet500ex.device
#DEFINES1 = -DPROTO_V2EXPNET
#ASMDEFS = -DPROTO_V2EXPNET
#CPU = 68020
###############################################################################
#
# common.smk (SAS/C variant of common.mk)
#
# author: Henryk Richter <henryk.richter@gmx.net>
#
# note: when switching between different hardware targets, don`t forget
# "make clean" in between
###############################################################################
# debug = 1 will include string debugging for terminal/sushi/sashimi
# not enabled yet in SAS/C makefile
debug = 0
###############################################################################
# prefix for system includes (ASM)
#
###############################################################################
PREFX = sc:
SYSINC = $(PREFX)include
###############################################################################
#
# compiler executables and support calls
#
###############################################################################
RM = delete force quiet
CC = sc
LD = slink
MAKE = smake
CFLAGS = NOVER NOICONS nostackcheck math=standard strmerge strsect=code parameters=regs data=near opt optsize
LDFLAGS = NOICONS SC SD ND
VASM = vasmm68k_mot
VASMFORMAT = -m$(CPU) -Fhunk -nowarn=2064 -quiet -I$(SYSINC)
###############################################################################
#
# paths to the local includes
#
###############################################################################
IPATH =
###############################################################################
#
# compile-level feature definitions
#
###############################################################################
# see all: target for defaults in $(DEFINES)
DEFINES = $(DEFINES1) CPU=$(CPU)
#DEFINES = $(DEFINES) DEFINE DEVICEVERSION=$(DEVICEVERSION)
#DEFINES = $(DEFINES) DEFINE DEVICEREVISION=$(DEVICEREVISION)
#DEFINES = $(DEFINES) DEFINE DEVICEDATE=$(DEVICEDATE)
DEFINES = $(DEFINES) DEFINE NEWSTYLE=1
DEFINES = $(DEFINES) DEFINE HAVE_VERSION_H=1
DEFINES = $(DEFINES) DEFINE DEVICENAME=$(DEVICEID)
#DEFINES = $(DEFINES) DEFINE DEVICEEXTRA=$(DEVICEEXTRA)
ASMDEFS = $(ASMDEFS1)
#-DDEVICEVERSION=$(DEVICEVERSION) -DDEVICEREVISION=$(DEVICEREVISION)
###############################################################################
#
# debug
#
###############################################################################
#ifeq ($(debug),1)
#CFLAGS += -DDEBUG -g
#CFLAGS2 += -DDEBUG -g
#LINKLIBS = -L$(PREFX)/lib -ldebug
#endif
###############################################################################
#
# compiler flags and optimization levels
#
###############################################################################
CFLAGS = $(CFLAGS) INCLUDEDIR="" INCLUDEDIR=$(SUBDIR) $(DEFINES)
###############################################################################
#
# objects to build
#
###############################################################################
# ASM based alternative to deviceheader.o would be romtag.o
OBJECTS = deviceheader.o$(TYPE) deviceinit.o$(TYPE) device.o$(TYPE) \
server.o$(TYPE) $(SUBDIR)/hw.o$(TYPE)
OBJECTS = $(OBJECTS) $(ASMOBJECTS)
BUILDDEPS = device.h server.h hw.h macros.h compiler.h
###############################################################################
#
# rules and commands
#
###############################################################################
.asm.o$(TYPE): $(BUILDDEPS) $*.asm
$(VASM) $(VASMFORMAT) $(ASMDEFS) -o $@ $*.asm
.c.o$(TYPE): $(BUILDDEPS) $*.c
$(CC) $(CFLAGS) OBJECTNAME $@ $*.c
all:
$(MAKE) -f smakefile.vwiz TYPE=sd vwiznet600sd.device DEVICEID=vwiznet600sd.device CPU=68020
$(MAKE) -f smakefile.vwiz TYPE=ex vwiznet500ex.device DEVICEID=vwiznet500ex.device CPU=68020 \
"DEFINES1=DEFINE PROTO_V2EXPNET" ASMDEFS1=-DPROTO_V2EXPNET
vwiznet600sd.device: $(OBJECTS)
-$(LD) $(OBJECTS) LIB sc:lib/sc.lib $(LDFLAGS) TO $(DEVICEID)
vwiznet500ex.device: $(OBJECTS)
-$(LD) $(OBJECTS) LIB sc:lib/sc.lib $(LDFLAGS) TO $(DEVICEID)
clean:
-$(RM) vwiznet600sd.device vwiznet500ex.device \#?.oex \#?.osd $(SUBDIR)/\#?.oex $(SUBDIR)/\#?.osd
install:
copy vwiznet600sd.device vwiznet500ex.device DEVS:Networks
# dependencies
device.o$(TYPE): device.c device.h server.h hw.h macros.h compiler.h
server.o$(TYPE): server.c device.h server.h hw.h macros.h compiler.h
deviceinit.o$(TYPE): deviceinit.c device.h server.h hw.h macros.h compiler.h
deviceheader.o$(TYPE): deviceheader.c device.h server.h hw.h macros.h compiler.h
+2 -2
View File
@@ -9,9 +9,9 @@
#define _INC_VERSION_H
#define DEVICEVERSION 2
#define DEVICEREVISION 9
#define DEVICEREVISION 15
#define DEVICEEXTRA
/* #define DEVICEEXTRA Beta */
#define DEVICEDATE 23.08.20
#define DEVICEDATE 1.3.26
#endif
File diff suppressed because it is too large Load Diff
+212 -158
View File
@@ -60,7 +60,7 @@ entity LAN_IDE_CP is
RESET : in STD_LOGIC;
INT2_OUT : out STD_LOGIC;
INT6_OUT : out STD_LOGIC;
AUTOBOOT_OFF : in STD_LOGIC;
IDE_OFF : in STD_LOGIC;
ROM_B : out STD_LOGIC_VECTOR (1 downto 0);
ROM_OE : out STD_LOGIC;
IDE_WAIT : in STD_LOGIC;
@@ -94,7 +94,6 @@ architecture Behavioral of LAN_IDE_CP is
);
SIGNAL LAN_RST_SM: lan_reset :=nop;
SIGNAL lancp: STD_LOGIC; -- LAN or ClockPort
SIGNAL ide: STD_LOGIC;
SIGNAL autoconfig: STD_LOGIC;
SIGNAL lan_adr: STD_LOGIC;
@@ -103,6 +102,9 @@ architecture Behavioral of LAN_IDE_CP is
signal Dout1:STD_LOGIC_VECTOR(3 downto 0);
signal AUTO_CONFIG_DONE:STD_LOGIC_VECTOR(1 downto 0);
signal AUTO_CONFIG_DONE_CYCLE:STD_LOGIC_VECTOR(1 downto 0);
signal D_IN:STD_LOGIC_VECTOR(15 downto 0);
signal D_OUT:STD_LOGIC_VECTOR(15 downto 0);
signal A_LAN_OUT:STD_LOGIC_VECTOR(13 downto 0);
signal SHUT_UP:STD_LOGIC_VECTOR(2 downto 0);
signal IDE_BASEADR:STD_LOGIC_VECTOR(7 downto 0);
signal LAN_BASEADR:STD_LOGIC_VECTOR(7 downto 0);
@@ -120,6 +122,7 @@ architecture Behavioral of LAN_IDE_CP is
signal LAN_INT_D0: std_logic;
signal DS: std_logic;
signal DS_D: std_logic;
signal AS_D: std_logic;
signal LAN_RD_S: std_logic;
signal LAN_WRH_S: std_logic;
signal LAN_WRL_S: std_logic;
@@ -128,6 +131,8 @@ architecture Behavioral of LAN_IDE_CP is
signal CP_RD_S: std_logic;
signal CP_WE_S: std_logic;
signal CP_WE_QUIRK: std_logic;
signal SET_FREQUENCY: std_logic :='1';
signal CLEAR_REGISTER: std_logic :='1';
signal LAN_CS_RST: std_logic;
signal LAN_WR_RST: std_logic;
@@ -150,87 +155,95 @@ begin
DS <= UDS and LDS;
clock_init: process(CLK_EXT)
AS_DELAY: process(CLK_EXT,reset)
begin
if(rising_edge(CLK_EXT))then
if(rising_edge(AMIGA_CLK))then
if(reset = '0' )then
LAN_RST_SM <= nop;
LAN_CS_RST<='0';
LAN_WR_RST<='0';
AS_D <= '1';
else
--init the clock afer reset finished!
case LAN_RST_SM is
when nop=>
LAN_CS_RST<='0';
LAN_WR_RST<='0';
LAN_RST_SM<=wait0;
when wait0=>
LAN_CS_RST<='1';
LAN_WR_RST<='0';
LAN_RST_SM<=clr;
when clr=>
LAN_CS_RST<='1';
LAN_WR_RST<='1';
LAN_RST_SM<=clr_commit;
when clr_commit=>
LAN_CS_RST<='1';
LAN_WR_RST<='0';
LAN_RST_SM<=wait1;
when wait1=>
LAN_CS_RST<='1';
LAN_WR_RST<='0';
LAN_RST_SM<=set;
when set=>
LAN_CS_RST<='1';
LAN_WR_RST<='1';
LAN_RST_SM<=set_commit;
when set_commit=>
LAN_CS_RST<='1';
LAN_WR_RST<='0';
LAN_RST_SM<=done;
when done=> --stay here
LAN_CS_RST<='0';
LAN_WR_RST<='0';
LAN_RST_SM<=done;
end case;
AS_D <= AS;
end if;
end if;
end process;
clock_init: process(CLK_EXT,reset,SET_FREQUENCY)
begin
if(reset = '0' and SET_FREQUENCY ='1')then
LAN_RST_SM <= nop;
LAN_CS_RST<='1';
LAN_WR_RST<='1';
elsif(rising_edge(CLK_EXT))then
--init the clock afer reset finished!
case LAN_RST_SM is
when nop=>
LAN_CS_RST<='1';
LAN_WR_RST<='1';
LAN_RST_SM<=wait0;
when wait0=>
LAN_CS_RST<='0';
LAN_WR_RST<='1';
LAN_RST_SM<=clr;
when clr=>
LAN_CS_RST<='0';
LAN_WR_RST<='0';
LAN_RST_SM<=clr_commit;
when clr_commit=>
CLEAR_REGISTER <='0';
LAN_CS_RST<='0';
LAN_WR_RST<='1';
LAN_RST_SM<=wait1;
when wait1=>
LAN_CS_RST<='0';
LAN_WR_RST<='1';
LAN_RST_SM<=set;
when set=>
LAN_CS_RST<='0';
LAN_WR_RST<='0';
LAN_RST_SM<=set_commit;
when set_commit=>
LAN_CS_RST<='0';
LAN_WR_RST<='1';
LAN_RST_SM<=done;
when done=> --stay here
SET_FREQUENCY <='0';
LAN_CS_RST<='1';
LAN_WR_RST<='1';
LAN_RST_SM<=done;
end case;
end if;
end process clock_init;
ADDRESS_DECODE: process(reset,AMIGA_CLK)
begin
if(reset ='0')then
autoconfig <= '0';
ide <= '0';
lan_adr <= '0';
lan_adr_sw <= '0';
cp <= '0';
lancp <= '0';
autoconfig <= '1';
ide <= '1';
lan_adr <= '1';
lan_adr_sw <= '1';
cp <= '1';
elsif(rising_edge(AMIGA_CLK))then
--default values
autoconfig <= '0';
ide <= '0';
lan_adr <= '0';
lan_adr_sw <= '0';
cp <= '0';
lancp <= '0';
if(A(23 downto 16) = x"E8" and AUTO_CONFIG_DONE < "11" and CFIN='0')then
autoconfig <= '1';
autoconfig <= '1';
ide <= '1';
lan_adr <= '1';
lan_adr_sw <= '1';
cp <= '1';
if(A(23 downto 16) = x"E8" and AUTO_CONFIG_DONE > "00" and CFIN='0')then
autoconfig <= '0';
end if;
if(A(23 downto 16) = LAN_BASEADR and SHUT_UP(0)='0' )then
if(A(14 downto 13)<"11")then
lan_adr_sw <= '1';
lan_adr_sw <= '0';
end if;
lan_adr <= '1';
lancp <= '1';
lan_adr <= '0';
end if;
if(A(23 downto 16) = CP_BASEADR and SHUT_UP(1)='0')then
cp <= '1';
lancp <= '1';
cp <= '0';
end if;
if(A(23 downto 16) = IDE_BASEADR and SHUT_UP(2)='0')then
ide <= '1';
lancp <= '1';
ide <= '0';
end if;
end if;
end process ADDRESS_DECODE;
@@ -239,43 +252,43 @@ begin
lan_int_proc: process (AMIGA_CLK,reset)
begin
if(reset ='0') then
LAN_INT_ENABLE <='0';
LAN_INT_ENABLE <='1';
LAN_IRQ_D0 <='1';
LAN_IRQ_OUT <='1';
elsif falling_edge(AMIGA_CLK) then
LAN_IRQ_D0 <= LAN_INT;
if(LAN_INT ='0' and LAN_IRQ_D0 ='1') then
LAN_IRQ_OUT <='0';
elsif(LAN_INT ='1' or LAN_INT_ENABLE = '0')then
elsif(LAN_INT ='1' or LAN_INT_ENABLE = '1')then
LAN_IRQ_OUT <='1';
elsif(lan_adr = '1' and DS ='0' and RW='0' and A(15)='1') then
elsif(lan_adr = '0' and DS ='0' and RW='0' and A(15)='1') then
LAN_IRQ_OUT <= D(14); --controll lan irq
end if;
if(lan_adr = '1' and DS ='0' and RW='0' and A(15)='1') then --enable if a write to A15 occured
LAN_INT_ENABLE <= D(15);
if(lan_adr = '0' and DS ='0' and RW='0' and A(15)='1') then --enable if a write to A15 occured
LAN_INT_ENABLE <= not(D(15));
end if;
end if;
end process lan_int_proc;
--lan signal generation: all Signals are HIGH active!
lan_rw_gen: process (AMIGA_CLK,AS)
lan_rw_gen: process (AMIGA_CLK,reset)
begin
if(AS ='1') then
LAN_RD_S <= '0';
LAN_WRH_S <= '0';
LAN_WRL_S <= '0';
if(reset ='0') then
LAN_RD_S <= '1';
LAN_WRH_S <= '1';
LAN_WRL_S <= '1';
elsif falling_edge(AMIGA_CLK) then
--default values
LAN_RD_S <= '0';
LAN_WRH_S <= '0';
LAN_WRL_S <= '0';
LAN_RD_S <= '1';
LAN_WRH_S <= '1';
LAN_WRL_S <= '1';
if(lan_adr='1' and DS='0' and A(15)='0')then
LAN_RD_S <= RW;
if(lan_adr='0' and DS='0' and A(15)='0')then
LAN_RD_S <= not(RW);
-- swapped LDS/UDS here: ENC624 is little endian
LAN_WRH_S <= not LDS and not RW;
LAN_WRL_S <= not UDS and not RW;
LAN_WRH_S <= not(not LDS and not RW);
LAN_WRL_S <= not(not UDS and not RW);
end if;
end if;
end process lan_rw_gen;
@@ -288,12 +301,12 @@ begin
CP_WE_S <= '1';
CP_RD_S <= '1';
elsif falling_edge(AMIGA_CLK) then
if(cp = '1' and AS='0' and RW ='1')then
if(cp = '0' and AS='0' and RW ='1')then
CP_RD_S <= '0';
else
CP_RD_S <= '1';
end if;
if(cp = '1' and DS='0' and RW ='0')then --datastrobe instead of AS!!!
if(cp = '0' and DS='0' and RW ='0')then --datastrobe instead of AS!!!
CP_WE_S <= '0';
else
CP_WE_S <= '1';
@@ -309,15 +322,15 @@ begin
if (reset = '0') then
IDE_ENABLE <= '1';
elsif falling_edge(AMIGA_CLK) then
if(ide='1' and AS='0' and RW='0')then
if(ide='0' and AS='0' and RW='0')then
IDE_ENABLE <= '0'; -- enable IDE on first write
end if;
end if;
end process ide_enable_gen;
ide_rw_gen: process (AS,AMIGA_CLK)
ide_rw_gen: process (AMIGA_CLK,reset)
begin
if (AS = '1') then
if (reset ='0') then
IDE_R_S <= '1';
IDE_W_S <= '1';
ROM_OE_S <= '1';
@@ -325,7 +338,7 @@ begin
IDE_TERM <= '1';
elsif falling_edge(AMIGA_CLK) then
if(ide='1')then
if(ide='0' and DS ='0')then
if(RW='0')then
--the write goes to the hdd!
IDE_W_S <= '0';
@@ -363,56 +376,56 @@ begin
begin
if reset = '0' then
-- reset active ...
AUTO_CONFIG_DONE_CYCLE <="00";
AUTO_CONFIG_DONE_CYCLE <="11";
Dout1<="1111";
--Dout2<="1111";
SHUT_UP <="111";
IDE_BASEADR<=x"FF";
LAN_BASEADR<=x"FF";
CP_BASEADR<=x"FF";
AUTO_CONFIG_DONE <="00";
AUTO_CONFIG_DONE <="11";
elsif falling_edge(AMIGA_CLK) then -- no reset, so wait for rising edge of the clock
DS_D <= DS;
if(AS='1')then
AUTO_CONFIG_DONE <= AUTO_CONFIG_DONE_CYCLE;
elsif(autoconfig= '1' and DS='0') then
elsif(autoconfig= '0' and DS='0') then
case A(6 downto 1) is
when "000000" =>
if(AUTO_CONFIG_DONE < 2)then
if(AUTO_CONFIG_DONE > 1)then
Dout1 <= "1100" ; --ZII, No-System-Memory, no ROM
else
Dout1 <= "1101" ; --ZII, no System-Memory, ROM
end if;
when "000001" => Dout1 <= "0001" ; --one Card, 64KB =001
when "000010" =>
if(AUTO_CONFIG_DONE < 2)then
if(AUTO_CONFIG_DONE > 1)then
Dout1 <= "1000" ; --ProductID high nibble : 7->1000
else
Dout1 <= "1111" ; --ProductID high nibble : 0->1111
end if;
when "000011" =>
if(AUTO_CONFIG_DONE = 0)then
if(AUTO_CONFIG_DONE = 3)then
Dout1 <= "0100" ; --ProductID low nibble: B->0100
elsif(AUTO_CONFIG_DONE = 1)then
elsif(AUTO_CONFIG_DONE = 2)then
Dout1 <= "0011" ; --ProductID low nibble: C->0011
else
Dout1 <= "1001" ; --ProductID low nibble: 6->1001
end if;
when "001000" => Dout1 <= "1111" ; --Ventor ID 0
--when "001000" => Dout1 <= "1111" ; --Ventor ID 0
when "001001" =>
if(AUTO_CONFIG_DONE < 2)then
if(AUTO_CONFIG_DONE > 1)then
Dout1 <= "0101" ; --Ventor ID 1
else
Dout1 <= "0111" ; --Ventor ID 1
end if;
when "001010" =>
if(AUTO_CONFIG_DONE < 2)then
if(AUTO_CONFIG_DONE > 1)then
Dout1 <= "1110" ; --Ventor ID 2
else
Dout1 <= "1101" ; --Ventor ID 2
end if;
when "001011" =>
if(AUTO_CONFIG_DONE < 2)then
if(AUTO_CONFIG_DONE > 1)then
Dout1 <= "0011" ; --Ventor ID 3 : $0A1C: A1K.org
else
Dout1 <= "0011" ; --Ventor ID 3 : $082C: BSC
@@ -421,42 +434,43 @@ begin
when "001101" => Dout1 <= "1110" ; --Serial byte 0 (msb) low nibble
when "001110" => Dout1 <= "1001" ; --Serial byte 1 high nibble
when "001111" => Dout1 <= "0100" ; --Serial byte 1 low nibble
when "010000" => Dout1 <= "1111" ; --Serial byte 2 high nibble
when "010001" => Dout1 <= "1111" ; --Serial byte 2 low nibble
--when "010000" => Dout1 <= "1111" ; --Serial byte 2 high nibble
--when "010001" => Dout1 <= "1111" ; --Serial byte 2 low nibble
when "010010" => Dout1 <= "0100" ; --Serial byte 3 (lsb) high nibble
when "010011" => Dout1 <= "1010" ; --Serial byte 3 (lsb) low nibble: B16B00B5
--when "010100" => Dout1 <= "1111" ; --Rom vector high byte high nibble
--when "010101" => Dout1 <= "1111" ; --Rom vector high byte low nibble
--when "010110" => Dout1 <= "1111" ; --Rom vector low byte high nibble
when "010111" =>
if(AUTO_CONFIG_DONE = 2)then
Dout1 <= "1110" ; --Rom vector low byte low nibble
else
Dout1 <= "1111" ; --Rom vector low byte low nibble
end if;
when "010111" => Dout1 <= "1110" ; --Rom vector low byte low nibble ;
when "100000" => Dout1 <= "0000" ; --Interrupt config: all zero
when "100001" => Dout1 <= "0000" ; --Interrupt config: all zero
when "100100" =>
Dout1 <= "1111" ;
if(RW='0' and DS_D='1')then
if(AUTO_CONFIG_DONE = 0)then
if(RW='0')then
if(AUTO_CONFIG_DONE = 3)then
LAN_BASEADR(7 downto 0) <= D(15 downto 8); --Base adress
SHUT_UP(0) <='0'; --enable board
AUTO_CONFIG_DONE_CYCLE <= "01"; --done here
elsif(AUTO_CONFIG_DONE = 1)then
AUTO_CONFIG_DONE_CYCLE <= "10"; --done here
elsif(AUTO_CONFIG_DONE = 2)then
CP_BASEADR(7 downto 0) <= D(15 downto 8); --Base adress
SHUT_UP(1) <= '0'; --enable board
AUTO_CONFIG_DONE_CYCLE <= ('1' & not(AUTOBOOT_OFF)); --done here, if Autoboot = 1 skip ide part!
elsif(AUTO_CONFIG_DONE = 2)then
AUTO_CONFIG_DONE_CYCLE <= ('0' & IDE_OFF); --done here, if Autoboot_off = 0 skip ide part!
elsif(AUTO_CONFIG_DONE = 1)then
IDE_BASEADR(7 downto 0) <= D(15 downto 8); --Base adress
SHUT_UP(2) <= '0'; --enable board
AUTO_CONFIG_DONE_CYCLE <= "11"; --done here
AUTO_CONFIG_DONE_CYCLE <= "00"; --done here
end if;
end if;
when "100110" =>
Dout1 <= "1111" ;
if(RW='0' and DS_D='1')then
AUTO_CONFIG_DONE_CYCLE <= AUTO_CONFIG_DONE_CYCLE+1; --done here
if(RW='0')then
if(AUTO_CONFIG_DONE = 3)then
AUTO_CONFIG_DONE_CYCLE <= "10"; --done here
elsif(AUTO_CONFIG_DONE = 2)then
AUTO_CONFIG_DONE_CYCLE <= ('0' & IDE_OFF); --done here, if Autoboot_off = 0 skip ide part!
elsif(AUTO_CONFIG_DONE = 1)then
AUTO_CONFIG_DONE_CYCLE <= "00"; --done here
end if;
end if;
when others => Dout1 <= "1111" ;
end case;
@@ -464,72 +478,112 @@ begin
end if;
end process autoconfig_proc; --- that's all
LAN_CS <= lan_adr when reset='1' else LAN_CS_RST;
LAN_WRL <= LAN_WRL_S when AS='0' and reset = '1' else LAN_WR_RST;
LAN_WRH <= LAN_WRH_S when AS='0' and reset = '1' else LAN_WR_RST;
LAN_RD <= LAN_RD_S when AS='0' and reset = '1' else '0';
ADDRESS_SAMPLE: process(CLK_EXT)
begin
if(falling_edge(CLK_EXT))then
--clear and set-register adresses during initialization phase
if(SET_FREQUENCY = '1')then
if(CLEAR_REGISTER ='1')then
A_LAN_OUT <= LAN_A_CLRREG(13 downto 0);
else
A_LAN_OUT <= LAN_A_SETREG(13 downto 0);
end if;
end if;
CP_WE <= CP_WE_S when AS='0' and CP_WE_QUIRK ='1' else '1';
CP_RD <= CP_RD_S when AS='0' else '1';
CP_CS <= not cp;
if(lan_adr ='0')then --the lanport is shifted by one adress line but I forgot to adopt the clockport address!
A_LAN_OUT <= A(14 downto 1);
end if;
--the lanport is shifted by one adress line but I forgot to adopt the clockport address!
A_LAN(13 downto 0)<= LAN_A_CLRREG(13 downto 0) when (LAN_RST_SM = wait0 or LAN_RST_SM = clr or LAN_RST_SM = clr_commit) else
LAN_A_SETREG(13 downto 0) when (LAN_RST_SM = wait1 or LAN_RST_SM = set or LAN_RST_SM = set_commit) else
A(14 downto 1) when lan_adr ='1' else
A(12 downto 1) &"00";
if(cp = '0')then
A_LAN_OUT <= A(12 downto 1) &"00";
end if;
end if;
end process;
DATA_SAMPLE: process(CLK_EXT)
begin
if(falling_edge(CLK_EXT))then
if(SET_FREQUENCY = '1' and CLEAR_REGISTER ='1')then
D_IN <= LAN_D_CLR;
elsif(SET_FREQUENCY = '1' and CLEAR_REGISTER ='0') then
D_IN <= LAN_D_SET;
elsif(lan_adr ='0' and lan_adr_sw ='0') then
D_IN <= D( 7 downto 0) & D(15 downto 8);
elsif(cp ='0') then
D_IN <= D(15 downto 8) & D(15 downto 8);
elsif((lan_adr ='0' and lan_adr_sw ='1') or ide ='0') then
D_IN <= D( 15 downto 0);
else
D_IN <= x"FFFF";
end if;
if(DS='0')then
--out sample
if((lan_adr ='0' and lan_adr_sw ='1') or ide = '0') then
D_OUT <= DQ( 15 downto 0);
end if;
if(lan_adr ='0' and lan_adr_sw ='0') then
D_OUT <= DQ(7 downto 0)&DQ(15 downto 8);
end if;
if(cp = '0') then
D_OUT <= DQ(7 downto 0)&DQ(7 downto 0);
end if;
if(autoconfig ='0') then
D_OUT <= Dout1 & x"FFF";
end if;
end if;
end if;
end process;
LAN_CS <= not(lan_adr) when SET_FREQUENCY ='0' else not(LAN_CS_RST);
LAN_WRL <= not(LAN_WRL_S) when AS ='0' and SET_FREQUENCY ='0' else not(LAN_WR_RST);
LAN_WRH <= not(LAN_WRH_S) when AS ='0' and SET_FREQUENCY ='0' else not(LAN_WR_RST);
LAN_RD <= not(LAN_RD_S ) when (AS_D ='0' or AS ='0') and SET_FREQUENCY ='0' else '0';
CP_WE <= CP_WE_S when AS ='0' and CP_WE_QUIRK ='1' else '1';
CP_RD <= CP_RD_S when (AS_D ='0' or AS ='0') else '1';
CP_CS <= cp;
A_LAN(13 downto 0)<= A_LAN_OUT;
--signal assignment
D <= --RAM_D when RW='1' and TRANSFER_IN_PROGRES ='1' else
DQ when RW='1' and lan_adr ='1' and lan_adr_sw ='0' and AS='0' else
DQ(7 downto 0)&DQ(15 downto 8) when RW='1' and lan_adr ='1' and lan_adr_sw ='1' and AS='0' else
DQ(7 downto 0)&DQ(7 downto 0) when RW='1' and (cp = '1' or ROM_OE_S ='0') and AS='0' else
DQ when RW='1' and ide = '1' and ROM_OE_S ='1' and AS='0' else
Dout1 & x"FFF" when RW='1' and autoconfig ='1' and AS='0' else
D <= D_OUT when RW='1' and (AS_D ='0' or AS ='0') and (lan_adr ='0' or ide = '0' or cp = '0' or autoconfig ='0') else
(others => 'Z');
--defined lancp signal that matches both LAN and CP addresses (and IDE for Rev2 boards)
DQ <= LAN_D_CLR when (LAN_RST_SM = wait0 or LAN_RST_SM = clr or LAN_RST_SM = clr_commit) else
LAN_D_SET when (LAN_RST_SM = wait1 or LAN_RST_SM = set or LAN_RST_SM = set_commit) else
--D( 7 downto 0) & D( 7 downto 0) when RW='0' and AS='0' and lancp = '1' and LDS='0' and UDS='1' else
--D(15 downto 8) & D(15 downto 8) when RW='0' and AS='0' and lancp = '1' and LDS='1' and UDS='0' else
D( 7 downto 0) & D(15 downto 8) when RW='0' and AS='0' and lan_adr ='1' and lan_adr_sw ='1' else
D(15 downto 8) & D(15 downto 8) when RW='0' and AS='0' and cp ='1' else
D when RW='0' and AS='0' and lancp ='1'
DQ <= D_IN when (RW='0' and AS='0' and (lan_adr ='0' or cp ='0' or ide ='0')) or SET_FREQUENCY ='1'
else (others => '0') when (RW='1' and AS='1' and ide ='0') -- The bus must be cleared to avoid a hang, if no IDE drive is attached
else (others => 'Z');
IDE_W <= IDE_W_S when AS='0' else '1';
IDE_R <= IDE_R_S when AS='0' else '1';
IDE_W <= IDE_W_S when AS = '0' else '1';
IDE_R <= IDE_R_S when AS = '0' else '1';
IDE_CS(0)<= not(A(12));
IDE_CS(1)<= not(A(13));
IDE_A(2 downto 0) <= A(11 downto 9);
ROM_B <= "00";
ROM_OE <= ROM_OE_S when AS='0' else '1';
ROM_OE <= ROM_OE_S when (AS_D ='0' or AS ='0') else '1';
-- INT_OUT <= 'Z';
INT2_OUT <= '0' when
(LAN_IRQ_OUT = '0' and LAN_INT_ENABLE = '1')
INT2_OUT <= '0' when (LAN_IRQ_OUT = '0' and LAN_INT_ENABLE = '0')
else 'Z';
INT6_OUT <= '0' when
CP_IRQ = '0'
INT6_OUT <= '0' when CP_IRQ = '0'
else 'Z';
OWN <= 'Z';--'0' when AS='0' and (autoconfig = '1' or ide = '1' or lan_adr = '1' or cp = '1') else 'Z';
SLAVE <= '0' when AS='0' and (autoconfig = '1' or ide = '1' or lan_adr = '1' or cp = '1') else '1';
CFOUT <= '0' when AUTO_CONFIG_DONE=3 else '1';
OWN <= 'Z';--'0' when AS='0' and (autoconfig = '0' or ide = '0' or lan_adr = '0' or cp = '0') else 'Z';
SLAVE <= '0' when (AS_D ='0' or AS ='0') and (autoconfig = '0' or ide = '0' or lan_adr = '0' or cp = '0') else '1';
CFOUT <= '0' when AUTO_CONFIG_DONE = "00" else '1';
--OVR <= 'Z';
OVR <= '0' when ide='1' and AS='0' else 'Z';
OVR <= 'Z';
--OVR <= '0' when ide='0' and (AS_D ='0' or AS ='0') else 'Z';
DTACK <= IDE_TERM when ide='1' and AS='0' else 'Z';
--DTACK <= 'Z';
--DTACK <= IDE_TERM when ide='0' and (AS_D ='0' or AS ='0') else 'Z';
DTACK <= 'Z';
A <= (others => 'Z');
MTACK <= 'Z';
MTACK <= 'Z';
end Behavioral;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+415
View File
@@ -540,3 +540,418 @@ XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -inputs 54 -pterms 50 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -inputs 54 -pterms 50 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -inputs 54 -pterms 50 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init low -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 25 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize speed -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 50 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
xst -intstyle ise -ifn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.xst" -ofn "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP.syr"
ngdbuild -intstyle ise -dd _ngo -uc pinlist.ucf -p xc95288xl-TQ144-10 LAN_IDE_CP.ngc LAN_IDE_CP.ngd
cpldfit -intstyle ise -p xc95288xl-10-TQ144 -ofmt vhdl -optimize density -htmlrpt -loc on -slew fast -init high -exhaust -inputs 54 -pterms 90 -unused float -power std -terminate keeper LAN_IDE_CP.ngd
XSLTProcess LAN_IDE_CP_build.xml
tsim -intstyle ise LAN_IDE_CP LAN_IDE_CP.nga
hprep6 -s IEEE1149 -n LAN_IDE_CP -i LAN_IDE_CP
+88 -81
View File
@@ -2,7 +2,6 @@ Pin Freeze File: version P.20131013
95288XL144 XC95288XL-10-TQ144
AS S:PIN80
AUTOBOOT_OFF S:PIN75
A<12> S:PIN61
A<13> S:PIN64
A<14> S:PIN66
@@ -31,17 +30,13 @@ CP_IRQ S:PIN31
A<9> S:PIN58
A<10> S:PIN59
A<11> S:PIN60
IDE_WAIT S:PIN33
IDE_OFF S:PIN75
LAN_INT S:PIN111
LDS S:PIN82
RESET S:PIN143
RW S:PIN83
UDS S:PIN81
A_LAN<0> S:PIN4
A_LAN<10> S:PIN138
A_LAN<11> S:PIN139
A_LAN<12> S:PIN136
A_LAN<13> S:PIN137
A_LAN<1> S:PIN3
A_LAN<2> S:PIN6
A_LAN<3> S:PIN5
@@ -51,8 +46,11 @@ A_LAN<6> S:PIN11
A_LAN<7> S:PIN10
A_LAN<8> S:PIN140
A_LAN<9> S:PIN142
A_LAN<10> S:PIN138
A_LAN<11> S:PIN139
A_LAN<12> S:PIN136
A_LAN<13> S:PIN137
CFOUT S:PIN105
CP_CS S:PIN34
CP_RD S:PIN71
CP_WE S:PIN70
DQ<0> S:PIN118
@@ -72,12 +70,6 @@ DQ<7> S:PIN125
DQ<8> S:PIN128
DQ<9> S:PIN116
D<0> S:PIN2
D<10> S:PIN41
D<11> S:PIN43
D<12> S:PIN44
D<13> S:PIN45
D<14> S:PIN46
D<15> S:PIN48
D<1> S:PIN17
D<2> S:PIN39
D<3> S:PIN15
@@ -87,13 +79,18 @@ D<6> S:PIN14
D<7> S:PIN16
D<8> S:PIN19
D<9> S:PIN40
D<10> S:PIN41
D<11> S:PIN43
D<12> S:PIN44
D<13> S:PIN45
D<14> S:PIN46
D<15> S:PIN48
IDE_A<0> S:PIN24
IDE_A<1> S:PIN26
IDE_A<2> S:PIN25
IDE_CS<0> S:PIN22
IDE_CS<1> S:PIN23
IDE_R S:PIN27
DTACK S:PIN85
IDE_W S:PIN28
LAN_CS S:PIN133
LAN_RD S:PIN134
@@ -106,83 +103,93 @@ OVR S:PIN100
MTACK S:PIN96
INT6_OUT S:PIN135
INT2_OUT S:PIN32
DTACK S:PIN85
ROM_OE S:PIN35
SLAVE S:PIN106
CP_CS S:PIN34
;The remaining section of the .gyd file is for documentation purposes only.
;It shows where your internal equations were placed in the last successful fit.
PARTITION FB1_4 LAN_IRQ_D0 D_5_IOBUFE D_4_IOBUFE LAN_WRH_S
IDE_CS_0_OBUF IDE_W_S IDE_CS_1_OBUF AUTO_CONFIG_DONE<1>
IDE_A_0_OBUF$BUF0 AUTO_CONFIG_DONE<0> IDE_A_2_OBUF$BUF0 IDE_A_1_OBUF$BUF0
LAN_INT_ENABLE IDE_R_OBUF LAN_IRQ_OUT
PARTITION FB2_2 A_LAN_4_OBUF A_LAN_7_OBUF
PARTITION FB2_5 A_LAN_6_OBUF
PARTITION FB2_8 IDE_ENABLE CP_RD_S D_6_IOBUFE LAN_WRL_S
D_3_IOBUFE DS_D D_7_IOBUFE D_1_IOBUFE
CP_WE_S D_8_IOBUFE LAN_RD_S
PARTITION FB3_1 $OpTx$INV$143 IDE_W_OBUF EXP22_
PARTITION FB3_8 LAN_WR_RST LAN_RST_SM_FSM_FFd3 LAN_RST_SM_FSM_FFd2 LAN_RST_SM_FSM_FFd1
LAN_CS_RST autoconfig ROM_B_0_OBUF$BUF5 EXP23_
ide EXP24_ EXP25_
PARTITION FB4_1 EXP26_ D_0_IOBUFE
PARTITION FB4_5 A_LAN_1_OBUF A_LAN_0_OBUF
PARTITION FB4_8 A_LAN_3_OBUF
PARTITION FB4_12 A_LAN_2_OBUF
PARTITION FB4_14 A_LAN_5_OBUF SHUT_UP<0> LAN_BASEADR<1> IDE_BASEADR<1>
CP_BASEADR<1>
PARTITION FB5_1 EXP27_ CP_CS_OBUF EXP28_ EXP29_
PARTITION FB1_3 AUTO_CONFIG_DONE_CYCLE_0_N2/AUTO_CONFIG_DONE_CYCLE_0_N2_D2 $OpTx$FX_DC$34 D_OUT<5> D_OUT<4>
AS_D IDE_CS_0_OBUF ROM_OE_S IDE_CS_1_OBUF
LAN_RD_S IDE_A_0_OBUF$BUF0 IDE_W_S IDE_A_2_OBUF$BUF0
IDE_A_1_OBUF$BUF0 IDE_R_S IDE_R_OBUF IDE_ENABLE
PARTITION FB2_2 A_LAN_OUT<4> A_LAN_OUT<7>
PARTITION FB2_5 A_LAN_OUT<6>
PARTITION FB2_10 D_OUT<6>
PARTITION FB2_12 D_OUT<3>
PARTITION FB2_14 D_OUT<7> D_OUT<1>
PARTITION FB2_17 D_OUT<8>
PARTITION FB3_1 EXP22_ IDE_W_OBUF
PARTITION FB3_9 SHUT_UP<1> LAN_IRQ_D0 IDE_BASEADR<6> IDE_BASEADR<1>
IDE_BASEADR<0> ROM_B_0_OBUF$BUF5 CP_BASEADR<6> CP_BASEADR<1>
CP_BASEADR<0> LAN_IRQ_OUT
PARTITION FB4_2 D_OUT<0>
PARTITION FB4_5 A_LAN_OUT<1> A_LAN_OUT<0>
PARTITION FB4_8 A_LAN_OUT<3>
PARTITION FB4_12 A_LAN_OUT<2>
PARTITION FB4_14 A_LAN_OUT<5>
PARTITION FB4_18 CP_BASEADR_not0001/CP_BASEADR_not0001_D2
PARTITION FB5_1 EXP23_ cp EXP24_ EXP25_
ROM_OE_OBUF
PARTITION FB5_9 EXP30_ D_2_IOBUFE EXP31_ D_9_IOBUFE
EXP32_ D_10_IOBUFE D_11_IOBUFE EXP33_
D_12_IOBUFE EXP34_
PARTITION FB6_1 EXP35_ ROM_B_0_OBUF$BUF4 A_LAN_12_OBUF
PARTITION FB6_5 A_LAN_13_OBUF A_LAN_10_OBUF
PARTITION FB6_8 A_LAN_11_OBUF
PARTITION FB6_10 A_LAN_8_OBUF
PARTITION FB6_13 EXP36_ A_LAN_9_OBUF $OpTx$INV$141 EXP37_
EXP38_ lan_adr_sw
PARTITION FB7_1 EXP39_ CP_WE_QUIRK D_13_IOBUFE EXP40_
D_14_IOBUFE EXP41_ EXP42_ EXP43_
Dout1<2> EXP44_ EXP45_ D_15_IOBUFE
EXP46_ Dout1<3> EXP47_ EXP48_
EXP49_ Dout1<1>
PARTITION FB8_1 EXP50_ DQ_12_IOBUFE DQ_14_IOBUFE EXP51_
LAN_WRH_OBUF
PARTITION FB5_10 D_OUT<2>
PARTITION FB5_12 D_OUT<9>
PARTITION FB5_14 D_OUT<10> D_OUT<11>
PARTITION FB5_17 D_OUT<12>
PARTITION FB6_2 ROM_B_0_OBUF$BUF4 A_LAN_OUT<12>
PARTITION FB6_5 A_LAN_OUT<13> A_LAN_OUT<10>
PARTITION FB6_8 A_LAN_OUT<11>
PARTITION FB6_10 A_LAN_OUT<8> $OpTx$FX_SC$321 $OpTx$FX_DC$30 $OpTx$FX_DC$3
A_LAN_OUT<9> $OpTx$FX_DC$1 $OpTx$FX_SC$52 D_IN<0>
DQ_or0001/DQ_or0001_D2
PARTITION FB7_3 D_OUT<13>
PARTITION FB7_5 D_OUT<14>
PARTITION FB7_12 D_OUT<15>
PARTITION FB7_15 LAN_RST_SM_FSM_FFd8 D_IN<13> D_IN<5> BUF_D_IN<13>
PARTITION FB8_2 DQ_12_IOBUFE DQ_14_IOBUFE
PARTITION FB8_5 LAN_WRH_OBUF
PARTITION FB8_8 LAN_CS_OBUF
PARTITION FB8_10 LAN_RD_OBUF
PARTITION FB8_17 CP_BASEADR<6> CP_BASEADR<4>
PARTITION FB9_17 EXP52_ lancp
PARTITION FB10_1 EXP53_ DQ_1_IOBUFE DQ_0_IOBUFE EXP54_
DQ_3_IOBUFE DQ_2_IOBUFE IDE_R_S DQ_5_IOBUFE
EXP55_ DQ_4_IOBUFE DQ_7_IOBUFE DQ_6_IOBUFE
$OpTx$INV$83__$INT DQ_8_IOBUFE EXP56_ ROM_OE_S
DQ_10_IOBUFE DQ_9_IOBUFE/DQ_9_IOBUFE_TRST__$INT
PARTITION FB11_1 EXP57_ EXP58_ EXP59_ $OpTx$INV$142
EXP60_
PARTITION FB11_12 ROM_B_0_OBUF$BUF0
PARTITION FB11_14 ROM_B_0_OBUF
PARTITION FB11_16 EXP61_ CP_WE_OBUF lan_adr
PARTITION FB12_4 EXP62_ DQ_15_IOBUFE
PARTITION FB12_7 EXP63_ DQ_13_IOBUFE EXP64_ DQ_11_IOBUFE
EXP65_ DQ_9_IOBUFE EXP66_
PARTITION FB12_18 CP_BASEADR<3>
PARTITION FB13_1 Dout1<0> CP_RD_OBUF lancp/lancp_CLKF lan_adr_sw/lan_adr_sw_CLKF
lan_adr/lan_adr_CLKF ide/ide_CLKF autoconfig/autoconfig_CLKF SHUT_UP<2>/SHUT_UP<2>_CLKF
CP_CS_OBUF/CP_CS_OBUF_CLKF SHUT_UP<2> LAN_BASEADR<6> LAN_BASEADR<4>
LAN_BASEADR<2> LAN_WRL_OBUF IDE_BASEADR<6> IDE_BASEADR<4>
EXP67_ EXP68_
PARTITION FB14_3 ROM_B_0_OBUF$BUF2
PARTITION FB14_7 SHUT_UP<1> LAN_BASEADR<7> LAN_BASEADR<5> LAN_BASEADR<3>
CFOUT_OBUF IDE_BASEADR<7> IDE_BASEADR<5> SLAVE_OBUF
ROM_B_0_OBUF$BUF1 IDE_BASEADR<3> CP_BASEADR<7> CP_BASEADR<5>
PARTITION FB8_12 D_IN<9> D_IN<8> D_IN<3> D_IN<2>
D_IN<1> D_IN<11> D_IN<10>
PARTITION FB9_1 EXP26_
PARTITION FB9_11 LAN_BASEADR_not0001/LAN_BASEADR_not0001_D2 $OpTx$FX_DC$31 LAN_BASEADR<4> LAN_BASEADR<3>
LAN_BASEADR<2> LAN_BASEADR<1> LAN_BASEADR<0> Dout1<3>
PARTITION FB15_1 LAN_BASEADR<0> IDE_BASEADR<2> IDE_BASEADR<0> CP_BASEADR<2>
CP_BASEADR<0> EXP69_ AUTO_CONFIG_DONE_CYCLE<1> AUTO_CONFIG_DONE_CYCLE<0>
EXP70_
PARTITION FB15_11 EXP71_ IDE_TERM
PARTITION FB16_10 ROM_B_0_OBUF$BUF3
PARTITION FB10_2 DQ_1_IOBUFE DQ_0_IOBUFE $OpTx$FX_DC$19 DQ_3_IOBUFE
DQ_2_IOBUFE DQ_9_IOBUFE/DQ_9_IOBUFE_TRST DQ_5_IOBUFE LAN_WRL_S
DQ_4_IOBUFE DQ_7_IOBUFE DQ_6_IOBUFE LAN_WRH_S
DQ_8_IOBUFE CP_WE_S CP_RD_S DQ_10_IOBUFE
LAN_INT_ENABLE
PARTITION FB11_1 EXP27_ EXP28_
PARTITION FB11_12 ROM_B_0_OBUF$BUF0 autoconfig ROM_B_0_OBUF SHUT_UP<0>
CP_WE_QUIRK CP_WE_OBUF ide
PARTITION FB12_1 SET_FREQUENCY D_IN<15> D_IN<14> D_IN<12>
DQ_15_IOBUFE LAN_RST_SM_FSM_FFd7 LAN_RST_SM_FSM_FFd4 DQ_13_IOBUFE
LAN_CS_RST DQ_11_IOBUFE CLEAR_REGISTER DQ_9_IOBUFE
D_IN<7> D_IN<6> BUF_D_IN<15> BUF_D_IN<14>
BUF_D_IN<12> D_IN<4>
PARTITION FB13_2 CP_RD_OBUF
PARTITION FB13_7 SHUT_UP<2> IDE_BASEADR<7> IDE_BASEADR<5> IDE_BASEADR<4>
IDE_BASEADR<3> IDE_BASEADR<2> CP_BASEADR<7> LAN_WRL_OBUF
CP_BASEADR<5> CP_BASEADR<4> CP_BASEADR<3> CP_BASEADR<2>
PARTITION FB14_1 Dout1<0> EXP29_ ROM_B_0_OBUF$BUF2 Dout1<2>
D_OUT_or0002/D_OUT_or0002_D2 AUTO_CONFIG_DONE_CYCLE<0> AUTO_CONFIG_DONE_CYCLE<1> AUTO_CONFIG_DONE<0>
AUTO_CONFIG_DONE<1> IDE_BASEADR_not0001/IDE_BASEADR_not0001_D2 CFOUT_OBUF
PARTITION FB14_14 SLAVE_OBUF ROM_B_0_OBUF$BUF1 Dout1<1> EXP30_
EXP31_
PARTITION FB15_9 LAN_WR_RST LAN_RST_SM_FSM_FFd5 LAN_RST_SM_FSM_FFd2 ROM_B_0_OBUF$BUF6
LAN_RST_SM_FSM_FFd1 lan_adr lan_adr_sw LAN_BASEADR<7>
LAN_BASEADR<6> LAN_BASEADR<5>
PARTITION FB16_6 D_OUT_and0001/D_OUT_and0001_D2 lan_adr_sw/lan_adr_sw_CLKF LAN_RST_SM_FSM_FFd6 LAN_RST_SM_FSM_FFd3
ROM_B_0_OBUF$BUF3 $OpTx$FX_DC$45 $OpTx$FX_DC$44 $OpTx$FX_DC$43
$OpTx$FX_DC$42 $OpTx$FX_DC$41 $OpTx$FX_DC$40 $OpTx$FX_DC$39
$OpTx$FX_DC$38
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -1,7 +1,7 @@
Release 8.1i - Fit P.20131013
Copyright(c) 1995-2003 Xilinx Inc. All rights reserved
7-30-2021 1:05AM
3- 8-2022 1:48PM
NOTE: This file is designed to be imported into a spreadsheet program
such as Microsoft Excel for viewing, printing and sorting. The pipe '|'
@@ -50,7 +50,7 @@ P29|GND||GND||||||||||
P30|CLK_EXT|GCK|I/O/GCK1||||||||||
P31|CP_IRQ|I|I/O|INPUT|||||||||
P32|INT2_OUT|O|I/O/GCK2|OUTPUT|||||||||
P33|IDE_WAIT|I|I/O|INPUT|||||||||
P33|TIE||I/O||||||||||
P34|CP_CS|O|I/O|OUTPUT|||||||||
P35|ROM_OE|O|I/O|OUTPUT|||||||||
P36|GND||GND||||||||||
@@ -92,7 +92,7 @@ P71|CP_RD|O|I/O|OUTPUT|||||||||
P72|GND||GND||||||||||
P73|VCC||VCCIO||||||||||
P74|A<15>|I|I/O|INPUT|||||||||
P75|AUTOBOOT_OFF|I|I/O|INPUT|||||||||
P75|IDE_OFF|I|I/O|INPUT|||||||||
P76|LAN_WRL|O|I/O|OUTPUT|||||||||
P77|TIE||I/O||||||||||
P78|TIE||I/O||||||||||
@@ -160,7 +160,7 @@ P139|A_LAN<11>|O|I/O|OUTPUT|||||||||
P140|A_LAN<8>|O|I/O|OUTPUT|||||||||
P141|VCC||VCCINT||||||||||
P142|A_LAN<9>|O|I/O|OUTPUT|||||||||
P143|RESET|GSR/I|I/O/GSR||||||||||
P143|RESET|I|I/O/GSR|INPUT|||||||||
P144|GND||GND||||||||||
To preserve the pinout above for future design iterations in
File diff suppressed because it is too large Load Diff
+83 -60
View File
@@ -10,7 +10,7 @@ Total CPU time to Xst completion: 0.08 secs
Total REAL time to Xst completion: 0.00 secs
Total CPU time to Xst completion: 0.08 secs
Total CPU time to Xst completion: 0.09 secs
--> Reading design: LAN_IDE_CP.prj
@@ -43,7 +43,7 @@ Target Device : XC9500XL CPLDs
---- Source Options
Top Module Name : LAN_IDE_CP
Automatic FSM Extraction : YES
FSM Encoding Algorithm : Gray
FSM Encoding Algorithm : Auto
Safe Implementation : No
Mux Extraction : Yes
Resource Sharing : YES
@@ -56,7 +56,7 @@ Equivalent register Removal : YES
---- General Options
Optimization Goal : Speed
Optimization Effort : 2
Optimization Effort : 1
Keep Hierarchy : Yes
Netlist Hierarchy : As_Optimized
RTL Output : Yes
@@ -71,8 +71,6 @@ wysiwyg : NO
=========================================================================
Setting FSM Encoding Algorithm to : Gray
=========================================================================
* HDL Compilation *
@@ -91,6 +89,8 @@ Analyzing hierarchy for entity <LAN_IDE_CP> in library <work> (architecture <beh
* HDL Analysis *
=========================================================================
Analyzing Entity <LAN_IDE_CP> in library <work> (Architecture <behavioral>).
WARNING:Xst:819 - "C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/LAN_IDE_CP-Z2v2.vhd" line 161: One or more signals are missing in the process sensitivity list. To enable synthesis of FPGA/CPLD hardware, XST will assume that all necessary signals are present in the sensitivity list. Please note that the result of the synthesis may differ from the initial design specification. The missing signals are:
<AMIGA_CLK>
Entity <LAN_IDE_CP> analyzed. Unit <LAN_IDE_CP> generated.
@@ -110,20 +110,22 @@ WARNING:Xst:647 - Input <Z3> is never used. This port will be preserved and left
WARNING:Xst:647 - Input <MTCR> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
WARNING:Xst:646 - Signal <ROM_OE_D0> is assigned but never used. This unconnected signal will be trimmed during the optimization process.
WARNING:Xst:1780 - Signal <LAN_INT_D0> is never used or assigned. This unconnected signal will be trimmed during the optimization process.
WARNING:Xst:646 - Signal <IDE_TERM> is assigned but never used. This unconnected signal will be trimmed during the optimization process.
WARNING:Xst:1780 - Signal <DTACK_S> is never used or assigned. This unconnected signal will be trimmed during the optimization process.
WARNING:Xst:646 - Signal <DS_D> is assigned but never used. This unconnected signal will be trimmed during the optimization process.
WARNING:Xst:646 - Signal <DECODE_RESET> is assigned but never used. This unconnected signal will be trimmed during the optimization process.
Found finite state machine <FSM_0> for signal <LAN_RST_SM>.
-----------------------------------------------------------------------
| States | 8 |
| Transitions | 8 |
| Inputs | 0 |
| Outputs | 8 |
| Outputs | 4 |
| Clock | CLK_EXT (rising_edge) |
| Reset | RESET (negative) |
| Reset type | synchronous |
| Reset | LAN_RST_SM$and0000 (positive) |
| Reset type | asynchronous |
| Reset State | nop |
| Power Up State | nop |
| Encoding | gray |
| Encoding | automatic |
| Implementation | automatic |
-----------------------------------------------------------------------
Found 16-bit tristate buffer for signal <D>.
@@ -134,32 +136,35 @@ WARNING:Xst:646 - Signal <DECODE_RESET> is assigned but never used. This unconne
Found 1-bit tristate buffer for signal <DTACK>.
Found 1-bit tristate buffer for signal <INT2_OUT>.
Found 1-bit tristate buffer for signal <INT6_OUT>.
Found 1-bit xor2 for signal <AMIGA_CLK$xor0000> created at line 148.
Found 14-bit register for signal <A_LAN_OUT>.
Found 1-bit xor2 for signal <AMIGA_CLK$xor0000> created at line 153.
Found 1-bit register for signal <AS_D>.
Found 2-bit register for signal <AUTO_CONFIG_DONE>.
Found 2-bit register for signal <AUTO_CONFIG_DONE_CYCLE>.
Found 2-bit adder for signal <AUTO_CONFIG_DONE_CYCLE$addsub0000> created at line 459.
Found 2-bit subtractor for signal <AUTO_CONFIG_DONE_CYCLE$addsub0000> created at line 467.
Found 1-bit register for signal <autoconfig>.
Found 2-bit comparator less for signal <autoconfig$cmp_lt0000> created at line 217.
Found 2-bit comparator greater for signal <autoconfig$cmp_gt0000> created at line 233.
Found 1-bit register for signal <CLEAR_REGISTER>.
Found 1-bit register for signal <cp>.
Found 8-bit comparator equal for signal <cp$cmp_eq0000> created at line 227.
Found 8-bit comparator equal for signal <cp$cmp_eq0000> created at line 242.
Found 8-bit register for signal <CP_BASEADR>.
Found 1-bit register for signal <CP_RD_S>.
Found 1-bit register for signal <CP_WE_QUIRK>.
Found 1-bit register for signal <CP_WE_S>.
Found 16-bit register for signal <D_IN>.
Found 16-bit register for signal <D_OUT>.
Found 4-bit register for signal <Dout1>.
Found 3-bit comparator less for signal <Dout1$cmp_lt0000> created at line 381.
Found 1-bit register for signal <DS_D>.
Found 3-bit comparator greater for signal <Dout1$cmp_gt0000> created at line 394.
Found 1-bit register for signal <ide>.
Found 8-bit comparator equal for signal <ide$cmp_eq0000> created at line 231.
Found 8-bit comparator equal for signal <ide$cmp_eq0000> created at line 245.
Found 8-bit register for signal <IDE_BASEADR>.
Found 1-bit register for signal <IDE_ENABLE>.
Found 1-bit register for signal <IDE_R_S>.
Found 1-bit register for signal <IDE_TERM>.
Found 1-bit register for signal <IDE_W_S>.
Found 1-bit register for signal <lan_adr>.
Found 1-bit register for signal <lan_adr_sw>.
Found 8-bit comparator equal for signal <lan_adr_sw$cmp_eq0000> created at line 220.
Found 2-bit comparator less for signal <lan_adr_sw$cmp_lt0000> created at line 221.
Found 8-bit comparator equal for signal <lan_adr_sw$cmp_eq0000> created at line 236.
Found 2-bit comparator less for signal <lan_adr_sw$cmp_lt0000> created at line 237.
Found 8-bit register for signal <LAN_BASEADR>.
Found 1-bit register for signal <LAN_CS_RST>.
Found 1-bit register for signal <LAN_INT_ENABLE>.
@@ -169,12 +174,12 @@ WARNING:Xst:646 - Signal <DECODE_RESET> is assigned but never used. This unconne
Found 1-bit register for signal <LAN_WR_RST>.
Found 1-bit register for signal <LAN_WRH_S>.
Found 1-bit register for signal <LAN_WRL_S>.
Found 1-bit register for signal <lancp>.
Found 1-bit register for signal <ROM_OE_S>.
Found 1-bit register for signal <SET_FREQUENCY>.
Found 3-bit register for signal <SHUT_UP>.
Summary:
inferred 1 Finite State Machine(s).
inferred 24 D-type flip-flop(s).
inferred 25 D-type flip-flop(s).
inferred 1 Adder/Subtractor(s).
inferred 6 Comparator(s).
inferred 1 Xor(s).
@@ -187,15 +192,18 @@ HDL Synthesis Report
Macro Statistics
# Adders/Subtractors : 1
2-bit adder : 1
# Registers : 32
2-bit subtractor : 1
# Registers : 35
1-bit register : 26
14-bit register : 1
16-bit register : 2
2-bit register : 2
4-bit register : 1
8-bit register : 3
# Comparators : 6
2-bit comparator less : 2
3-bit comparator less : 1
2-bit comparator greater : 1
2-bit comparator less : 1
3-bit comparator greater : 1
8-bit comparator equal : 3
# Tristates : 8
1-bit tristate buffer : 6
@@ -209,19 +217,24 @@ Macro Statistics
* Advanced HDL Synthesis *
=========================================================================
Optimizing FSM <LAN_RST_SM/FSM> on signal <LAN_RST_SM[1:3]> with gray encoding.
Analyzing FSM <FSM_0> for best encoding.
Optimizing FSM <LAN_RST_SM/FSM> on signal <LAN_RST_SM[1:8]> with one-hot encoding.
------------------------
State | Encoding
------------------------
nop | 000
wait0 | 001
clr | 011
clr_commit | 010
wait1 | 110
set | 111
set_commit | 101
done | 100
nop | 00000001
wait0 | 00000010
clr | 00000100
clr_commit | 00001000
wait1 | 00010000
set | 00100000
set_commit | 01000000
done | 10000000
------------------------
WARNING:Xst:1426 - The value init of the FF/Latch 0 hinder the constant cleaning in the block SET_FREQUENCY.
You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch 0 hinder the constant cleaning in the block CLEAR_REGISTER.
You should achieve better results by setting this init to 0.
=========================================================================
Advanced HDL Synthesis Report
@@ -229,9 +242,9 @@ Advanced HDL Synthesis Report
Macro Statistics
# FSMs : 1
# Adders/Subtractors : 1
2-bit adder : 1
# Registers : 24
Flip-Flops : 24
2-bit subtractor : 1
# Registers : 25
Flip-Flops : 25
# Comparators : 3
8-bit comparator equal : 3
@@ -240,11 +253,22 @@ Macro Statistics
=========================================================================
* Low Level Synthesis *
=========================================================================
WARNING:Xst:1426 - The value init of the FF/Latch SET_FREQUENCY hinder the constant cleaning in the block LAN_IDE_CP.
You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch CLEAR_REGISTER hinder the constant cleaning in the block LAN_IDE_CP.
You should achieve better results by setting this init to 0.
Optimizing unit <LAN_IDE_CP> ...
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd3
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd2
implementation constraint: INIT=s : CLEAR_REGISTER
implementation constraint: INIT=s : SET_FREQUENCY
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd1
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd2
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd3
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd4
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd5
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd6
implementation constraint: INIT=r : LAN_RST_SM_FSM_FFd7
implementation constraint: INIT=s : LAN_RST_SM_FSM_FFd8
=========================================================================
* Partition Report *
@@ -276,26 +300,25 @@ Design Statistics
# IOs : 113
Cell Usage :
# BELS : 864
# AND2 : 211
# AND3 : 67
# AND4 : 8
# AND5 : 3
# BELS : 822
# AND2 : 197
# AND3 : 52
# AND4 : 13
# AND8 : 3
# GND : 1
# INV : 345
# OR2 : 187
# OR3 : 10
# OR4 : 2
# XOR2 : 27
# FlipFlops/Latches : 61
# FD : 5
# FDC : 9
# FDCE : 6
# FDP : 8
# FDPE : 33
# IO Buffers : 107
# IBUF : 36
# INV : 346
# OR2 : 164
# OR3 : 19
# OR4 : 1
# XOR2 : 26
# FlipFlops/Latches : 112
# FD : 17
# FDC : 7
# FDCE : 32
# FDP : 18
# FDPE : 38
# IO Buffers : 106
# IBUF : 35
# IOBUFE : 32
# OBUF : 33
# OBUFE : 6
@@ -303,13 +326,13 @@ Cell Usage :
Total REAL time to Xst completion: 3.00 secs
Total CPU time to Xst completion: 2.73 secs
Total CPU time to Xst completion: 2.81 secs
-->
Total memory usage is 4514352 kilobytes
Total memory usage is 4514408 kilobytes
Number of errors : 0 ( 0 filtered)
Number of warnings : 9 ( 0 filtered)
Number of warnings : 16 ( 0 filtered)
Number of infos : 1 ( 0 filtered)
+181 -9
View File
@@ -1,12 +1,184 @@
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd2.Q:TO:LAN_RST_SM_FSM_FFd2.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd3.Q:TO:LAN_RST_SM_FSM_FFd2.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd1.Q:TO:LAN_RST_SM_FSM_FFd2.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd2.Q:TO:LAN_RST_SM_FSM_FFd3.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd1.Q:TO:LAN_RST_SM_FSM_FFd3.D:400
TS_CLK_EXT:FROM:D_IN<8>.Q:TO:D_OUT<0>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<0>.D:400
TS_CLK_EXT:FROM:D_IN<0>.Q:TO:D_OUT<0>.D:400
TS_CLK_EXT:FROM:D_OUT<0>.Q:TO:D_OUT<0>.D:400
TS_CLK_EXT:FROM:D_IN<2>.Q:TO:D_OUT<10>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<10>.D:400
TS_CLK_EXT:FROM:D_IN<10>.Q:TO:D_OUT<10>.D:400
TS_CLK_EXT:FROM:D_OUT<10>.Q:TO:D_OUT<10>.D:400
TS_CLK_EXT:FROM:D_IN<3>.Q:TO:D_OUT<11>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<11>.D:400
TS_CLK_EXT:FROM:D_IN<11>.Q:TO:D_OUT<11>.D:400
TS_CLK_EXT:FROM:D_OUT<11>.Q:TO:D_OUT<11>.D:400
TS_CLK_EXT:FROM:D_IN<9>.Q:TO:D_OUT<1>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<1>.D:400
TS_CLK_EXT:FROM:D_IN<1>.Q:TO:D_OUT<1>.D:400
TS_CLK_EXT:FROM:D_OUT<1>.Q:TO:D_OUT<1>.D:400
TS_CLK_EXT:FROM:D_IN<2>.Q:TO:D_OUT<2>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<2>.D:400
TS_CLK_EXT:FROM:D_IN<10>.Q:TO:D_OUT<2>.D:400
TS_CLK_EXT:FROM:D_OUT<2>.Q:TO:D_OUT<2>.D:400
TS_CLK_EXT:FROM:D_IN<3>.Q:TO:D_OUT<3>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<3>.D:400
TS_CLK_EXT:FROM:D_IN<11>.Q:TO:D_OUT<3>.D:400
TS_CLK_EXT:FROM:D_OUT<3>.Q:TO:D_OUT<3>.D:400
TS_CLK_EXT:FROM:D_IN<4>.Q:TO:D_OUT<4>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<4>.D:400
TS_CLK_EXT:FROM:D_IN<12>.Q:TO:D_OUT<4>.D:400
TS_CLK_EXT:FROM:D_OUT<4>.Q:TO:D_OUT<4>.D:400
TS_CLK_EXT:FROM:D_IN<5>.Q:TO:D_OUT<5>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<5>.D:400
TS_CLK_EXT:FROM:D_IN<13>.Q:TO:D_OUT<5>.D:400
TS_CLK_EXT:FROM:D_OUT<5>.Q:TO:D_OUT<5>.D:400
TS_CLK_EXT:FROM:D_IN<6>.Q:TO:D_OUT<6>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<6>.D:400
TS_CLK_EXT:FROM:D_IN<14>.Q:TO:D_OUT<6>.D:400
TS_CLK_EXT:FROM:D_OUT<6>.Q:TO:D_OUT<6>.D:400
TS_CLK_EXT:FROM:D_IN<7>.Q:TO:D_OUT<7>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<7>.D:400
TS_CLK_EXT:FROM:D_IN<15>.Q:TO:D_OUT<7>.D:400
TS_CLK_EXT:FROM:D_OUT<7>.Q:TO:D_OUT<7>.D:400
TS_CLK_EXT:FROM:D_IN<0>.Q:TO:D_OUT<8>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<8>.D:400
TS_CLK_EXT:FROM:D_IN<8>.Q:TO:D_OUT<8>.D:400
TS_CLK_EXT:FROM:D_OUT<8>.Q:TO:D_OUT<8>.D:400
TS_CLK_EXT:FROM:D_IN<1>.Q:TO:D_OUT<9>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<9>.D:400
TS_CLK_EXT:FROM:D_IN<9>.Q:TO:D_OUT<9>.D:400
TS_CLK_EXT:FROM:D_OUT<9>.Q:TO:D_OUT<9>.D:400
TS_CLK_EXT:FROM:D_IN<4>.Q:TO:D_OUT<12>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<12>.D:400
TS_CLK_EXT:FROM:D_IN<12>.Q:TO:D_OUT<12>.D:400
TS_CLK_EXT:FROM:D_OUT<12>.Q:TO:D_OUT<12>.D:400
TS_CLK_EXT:FROM:D_IN<5>.Q:TO:D_OUT<13>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<13>.D:400
TS_CLK_EXT:FROM:D_IN<13>.Q:TO:D_OUT<13>.D:400
TS_CLK_EXT:FROM:D_OUT<13>.Q:TO:D_OUT<13>.D:400
TS_CLK_EXT:FROM:D_IN<6>.Q:TO:D_OUT<14>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<14>.D:400
TS_CLK_EXT:FROM:D_IN<14>.Q:TO:D_OUT<14>.D:400
TS_CLK_EXT:FROM:D_OUT<14>.Q:TO:D_OUT<14>.D:400
TS_CLK_EXT:FROM:D_IN<7>.Q:TO:D_OUT<15>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_OUT<15>.D:400
TS_CLK_EXT:FROM:D_IN<15>.Q:TO:D_OUT<15>.D:400
TS_CLK_EXT:FROM:D_OUT<15>.Q:TO:D_OUT<15>.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd1.Q:TO:LAN_RST_SM_FSM_FFd1.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd2.Q:TO:LAN_RST_SM_FSM_FFd1.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd3.Q:TO:LAN_RST_SM_FSM_FFd1.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd1.RSTF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd4.Q:TO:LAN_RST_SM_FSM_FFd3.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd3.RSTF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd6.Q:TO:LAN_RST_SM_FSM_FFd5.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd5.RSTF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd7.Q:TO:LAN_RST_SM_FSM_FFd6.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd6.RSTF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd3.Q:TO:LAN_WR_RST.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd2.Q:TO:LAN_WR_RST.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd3.Q:TO:LAN_CS_RST.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd2.Q:TO:LAN_CS_RST.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd6.Q:TO:LAN_WR_RST.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_WR_RST.SETF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd1.Q:TO:LAN_CS_RST.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd8.Q:TO:LAN_CS_RST.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_CS_RST.SETF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd3.Q:TO:LAN_RST_SM_FSM_FFd2.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd2.RSTF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd5.Q:TO:LAN_RST_SM_FSM_FFd4.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd4.RSTF:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd8.Q:TO:LAN_RST_SM_FSM_FFd7.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd7.RSTF:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<0>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<0>.Q:TO:A_LAN_OUT<0>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<10>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<10>.Q:TO:A_LAN_OUT<10>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<11>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<11>.Q:TO:A_LAN_OUT<11>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<12>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<12>.Q:TO:A_LAN_OUT<12>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<13>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<13>.Q:TO:A_LAN_OUT<13>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<1>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<1>.Q:TO:A_LAN_OUT<1>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<2>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<2>.Q:TO:A_LAN_OUT<2>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<3>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<3>.Q:TO:A_LAN_OUT<3>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<4>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<4>.Q:TO:A_LAN_OUT<4>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<5>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<5>.Q:TO:A_LAN_OUT<5>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:A_LAN_OUT<6>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<6>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<6>.Q:TO:A_LAN_OUT<6>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<7>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<7>.Q:TO:A_LAN_OUT<7>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<8>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<8>.Q:TO:A_LAN_OUT<8>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:A_LAN_OUT<9>.D:400
TS_CLK_EXT:FROM:A_LAN_OUT<9>.Q:TO:A_LAN_OUT<9>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:SET_FREQUENCY.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd1.Q:TO:SET_FREQUENCY.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:CLEAR_REGISTER.D:400
TS_CLK_EXT:FROM:LAN_RST_SM_FSM_FFd5.Q:TO:CLEAR_REGISTER.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:CLEAR_REGISTER.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:LAN_RST_SM_FSM_FFd8.SETF:400
TS_CLK_EXT:FROM:D_OUT<8>.Q:TO:D_IN<0>.D:400
TS_CLK_EXT:FROM:D_OUT<0>.Q:TO:D_IN<0>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<0>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<0>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<10>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<10>.D:400
TS_CLK_EXT:FROM:D_OUT<2>.Q:TO:D_IN<10>.D:400
TS_CLK_EXT:FROM:D_OUT<10>.Q:TO:D_IN<10>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<11>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<11>.D:400
TS_CLK_EXT:FROM:D_OUT<3>.Q:TO:D_IN<11>.D:400
TS_CLK_EXT:FROM:D_OUT<11>.Q:TO:D_IN<11>.D:400
TS_CLK_EXT:FROM:D_OUT<4>.Q:TO:D_IN<12>.D:400
TS_CLK_EXT:FROM:D_OUT<12>.Q:TO:D_IN<12>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<12>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<12>.D:400
TS_CLK_EXT:FROM:D_OUT<5>.Q:TO:D_IN<13>.D:400
TS_CLK_EXT:FROM:D_OUT<13>.Q:TO:D_IN<13>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<13>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<13>.D:400
TS_CLK_EXT:FROM:D_OUT<6>.Q:TO:D_IN<14>.D:400
TS_CLK_EXT:FROM:D_OUT<14>.Q:TO:D_IN<14>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<14>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<14>.D:400
TS_CLK_EXT:FROM:D_OUT<7>.Q:TO:D_IN<15>.D:400
TS_CLK_EXT:FROM:D_OUT<15>.Q:TO:D_IN<15>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<15>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<15>.D:400
TS_CLK_EXT:FROM:D_OUT<9>.Q:TO:D_IN<1>.D:400
TS_CLK_EXT:FROM:D_OUT<1>.Q:TO:D_IN<1>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<1>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<1>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<2>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<2>.D:400
TS_CLK_EXT:FROM:D_OUT<10>.Q:TO:D_IN<2>.D:400
TS_CLK_EXT:FROM:D_OUT<2>.Q:TO:D_IN<2>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<3>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<3>.D:400
TS_CLK_EXT:FROM:D_OUT<11>.Q:TO:D_IN<3>.D:400
TS_CLK_EXT:FROM:D_OUT<3>.Q:TO:D_IN<3>.D:400
TS_CLK_EXT:FROM:D_OUT<12>.Q:TO:D_IN<4>.D:400
TS_CLK_EXT:FROM:D_OUT<4>.Q:TO:D_IN<4>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<4>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<4>.D:400
TS_CLK_EXT:FROM:D_OUT<13>.Q:TO:D_IN<5>.D:400
TS_CLK_EXT:FROM:D_OUT<5>.Q:TO:D_IN<5>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<5>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<5>.D:400
TS_CLK_EXT:FROM:D_OUT<14>.Q:TO:D_IN<6>.D:400
TS_CLK_EXT:FROM:D_OUT<6>.Q:TO:D_IN<6>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<6>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<6>.D:400
TS_CLK_EXT:FROM:D_OUT<15>.Q:TO:D_IN<7>.D:400
TS_CLK_EXT:FROM:D_OUT<7>.Q:TO:D_IN<7>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<7>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<7>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<8>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<8>.D:400
TS_CLK_EXT:FROM:D_OUT<8>.Q:TO:D_IN<8>.D:400
TS_CLK_EXT:FROM:D_OUT<0>.Q:TO:D_IN<8>.D:400
TS_CLK_EXT:FROM:CLEAR_REGISTER.Q:TO:D_IN<9>.D:400
TS_CLK_EXT:FROM:SET_FREQUENCY.Q:TO:D_IN<9>.D:400
TS_CLK_EXT:FROM:D_OUT<1>.Q:TO:D_IN<9>.D:400
TS_CLK_EXT:FROM:D_OUT<9>.Q:TO:D_IN<9>.D:400
+166 -79
View File
@@ -57,13 +57,13 @@ entity LAN_IDE_CP is
LDS : in STD_LOGIC;
AS : in STD_LOGIC;
RW : in STD_LOGIC;
Z3 : in STD_LOGIC;
Z3 : inout STD_LOGIC;
DS1 : in STD_LOGIC;
FCS : in STD_LOGIC;
RESET : in STD_LOGIC;
INT2_OUT : out STD_LOGIC;
INT6_OUT : out STD_LOGIC;
AUTOBOOT_OFF : in STD_LOGIC;
IDE_OFF : in STD_LOGIC;
ROM_B : out STD_LOGIC_VECTOR (1 downto 0);
ROM_OE : out STD_LOGIC;
IDE_WAIT : in STD_LOGIC;
@@ -132,11 +132,19 @@ architecture Behavioral of LAN_IDE_CP is
signal AUTO_CONFIG_Z2_DONE:STD_LOGIC_VECTOR(2 downto 0):="000";
signal AUTO_CONFIG_Z2_DONE_CYCLE:STD_LOGIC_VECTOR(2 downto 0):="000";
signal SHUT_UP_Z2:STD_LOGIC_VECTOR(2 downto 0):="111";
signal LAN_BASEADR:STD_LOGIC_VECTOR(15 downto 0);
signal LAN_BASEADR:STD_LOGIC_VECTOR(7 downto 0);
signal LAN_INT_ENABLE: std_logic :='0';
signal LAN_RD_S: std_logic;
signal LAN_WRH_S: std_logic;
signal LAN_WRL_S: std_logic;
signal LAN_ACCESS_Z2: STD_LOGIC;
signal DQ_SWAP_Z2: STD_LOGIC;
signal LAN_INT_ENABLE_Z2: STD_LOGIC;
signal LAN_RD_S_Z2: STD_LOGIC;
signal LAN_WRH_S_Z2: STD_LOGIC;
signal LAN_WRL_S_Z2: STD_LOGIC;
signal LAN_READY: std_logic;
signal CONFIG_READY: std_logic;
signal LAN_IRQ_D0: std_logic;
@@ -155,9 +163,11 @@ architecture Behavioral of LAN_IDE_CP is
signal AMIGA_CLK:STD_LOGIC;
signal DS:STD_LOGIC;
signal AS_D:STD_LOGIC;
signal LAN_CS_RST: std_logic;
signal LAN_WR_RST: std_logic;
signal LAN_INIT_FINISHED: std_logic;
signal INT_VECTOR_CYCLE: std_logic;
signal LAN_A_INIT:STD_LOGIC_VECTOR(13 downto 0) :="11"&x"FFF";
@@ -182,7 +192,16 @@ begin
AMIGA_CLK <= not (C1 xor C3);
DS <= UDS and LDS;
clock_init: process(reset,CLK_EXT)
AS_DELAY: process(CLK_EXT,reset)
begin
if(reset = '0' )then
AS_D <= '1';
elsif(rising_edge(AMIGA_CLK))then
AS_D <= AS;
end if;
end process;
clock_init: process(reset,AMIGA_CLK)
begin
if(reset='0')then
--default values
@@ -191,7 +210,8 @@ begin
LAN_RST_SM<=nop;
LAN_A_INIT<="11"&x"FFF";
LAN_D_INIT<= x"0000";
elsif(rising_edge(CLK_EXT))then --reset is high!
LAN_INIT_FINISHED <= '0';
elsif(rising_edge(AMIGA_CLK))then --reset is high!
case LAN_RST_SM is
when nop=>
LAN_CS_RST<='0';
@@ -238,6 +258,7 @@ begin
when done=>
LAN_CS_RST<='0';
LAN_WR_RST<='0';
LAN_INIT_FINISHED <='1';
LAN_RST_SM<=done;
LAN_A_INIT <= LAN_A_SETREG;
LAN_D_INIT <= LAN_D_SET;
@@ -247,36 +268,27 @@ begin
ADDRESS_Z3_DECODE: process(FCS,reset)
begin
if(reset='0' )then
if(reset='0')then
LAN_ACCESS <= '0';
DQ_SWAP <= '1';
DQ_SWAP <= '0';
Z3_ADR <= (others => '1');
INT_VECTOR_CYCLE <='0';
elsif(falling_edge(FCS))then
if(Z3='1') then
Z3_ADR(15 downto 2) <= A(15 downto 2);-- latch the whole address for the whole cycle
Z3_ADR(15 downto 2) <= A(15 downto 2);-- latch the whole address for the whole cycle
INT_VECTOR_CYCLE <= not MTCR; --is this s special int vector cycle?!?
INT_VECTOR_CYCLE <= not MTCR; --is this s special int vector cycle?!?
--use D(15 downto 8)& A(23 downto 16) = A(31 downto 16) for quick response
--lan base
--if(Z3='1' and (D(15 downto 8) & A(23 downto 16)) = LAN_BASEADR and SHUT_UP_Z2(0)='0' )then
if((D(15 downto 8) ) = LAN_BASEADR(15 downto 8) and SHUT_UP_Z2(0)='0' )then --only the upper 8 bits matter!!!
if(A(14 downto 13)<"11")then
DQ_SWAP <= '1';
else
DQ_SWAP <= '0';
end if;
LAN_ACCESS <= '1';
else
LAN_ACCESS <= '0';
if((D(15 downto 8) ) = LAN_BASEADR and SHUT_UP_Z2(0)='0' )then --only the upper 8 bits matter!!!
if(A(14 downto 13)<"11")then
DQ_SWAP <= '1';
else
DQ_SWAP <= '0';
end if;
LAN_ACCESS <= '1';
else
LAN_ACCESS <= '0';
DQ_SWAP <= '1';
DQ_SWAP <= '0';
end if;
end if;
end process ADDRESS_Z3_DECODE;
@@ -287,22 +299,37 @@ begin
AUTOCONFIG_Z2_ACCESS <= '0';
IDE_ACCESS <= '0';
CP_ACCESS <= '0';
LAN_ACCESS_Z2 <= '0';
DQ_SWAP_Z2 <= '0';
elsif(rising_edge(AMIGA_CLK))then
if(A(23 downto 16) = x"E8" and AUTO_CONFIG_Z2_DONE /= "111" and CFIN='0' and LAN_ACCESS = '0')then
if(A(23 downto 16) = x"E8" and AUTO_CONFIG_Z2_DONE /= "111" and CFIN='0' )then
AUTOCONFIG_Z2_ACCESS <= '1';
else
AUTOCONFIG_Z2_ACCESS <= '0';
end if;
--LANz2-Base
if(A(23 downto 16) = LAN_BASEADR and SHUT_UP_Z2(0)='0' and Z3 ='0' )then
if(A(14 downto 13)<"11")then
DQ_SWAP_Z2 <= '1';
else
DQ_SWAP_Z2 <= '0';
end if;
LAN_ACCESS_Z2 <= '1';
else
LAN_ACCESS_Z2 <= '0';
DQ_SWAP_Z2 <= '0';
end if;
--CP base
if(A(23 downto 16) = CP_BASEADR and SHUT_UP_Z2(1)='0' and LAN_ACCESS = '0')then
if(A(23 downto 16) = CP_BASEADR and SHUT_UP_Z2(1)='0' )then
CP_ACCESS <= '1';
else
CP_ACCESS <= '0';
end if;
--IDE base
if(A(23 downto 16) = IDE_BASEADR and SHUT_UP_Z2(2)='0' and LAN_ACCESS = '0')then
if(A(23 downto 16) = IDE_BASEADR and SHUT_UP_Z2(2)='0' )then
IDE_ACCESS <= '1';
else
IDE_ACCESS <= '0';
@@ -340,7 +367,7 @@ begin
lan_rst_gen: process (CLK_EXT)
begin
if falling_edge(CLK_EXT) then
if(FCS ='1' or reset = '0' or Z3_DS = "1111" or LAN_ACCESS = '0' or INT_VECTOR_CYCLE ='1') then
if(FCS ='1' or reset = '0' or INT_VECTOR_CYCLE ='1' or Z3_DS = "1111" or LAN_ACCESS = '0') then
LAN_SM_RST <='1';
else
LAN_SM_RST <='0';
@@ -348,6 +375,43 @@ begin
end if;
end process lan_rst_gen;
--lan signal generation: all Signals are HIGH active!
lan_data_multiplex: process (CLK_EXT,reset)
begin
if(reset ='0' ) then
DQ_DATA(15 downto 0) <= x"FFFF";
elsif rising_edge(CLK_EXT) then
-- this is a quite complex thing for a cpld
-- so I have to move this out of the cycle start condition and prepare it for every loop
if(LAN_SM = end_write_upper)then
-- prepare the data for lower write
if(DQ_SWAP='0') then
DQ_DATA(15 downto 0) <= Z3_DATA_IN(15 downto 0);
else
DQ_DATA(15 downto 0) <= Z3_DATA_IN( 7 downto 0) & Z3_DATA_IN(15 downto 8);
end if;
elsif(LAN_SM = nop)then
-- prepare the data for write
if(Z3_DS(3 downto 2) < "11")then
if(DQ_SWAP='0') then
DQ_DATA(15 downto 0) <= Z3_DATA_IN(31 downto 16);
else
DQ_DATA(15 downto 0) <= Z3_DATA_IN(23 downto 16) & Z3_DATA_IN(31 downto 24);
end if;
else -- lower word!
if(DQ_SWAP='0') then
DQ_DATA(15 downto 0) <= Z3_DATA_IN(15 downto 0);
else
DQ_DATA(15 downto 0) <= Z3_DATA_IN( 7 downto 0) & Z3_DATA_IN(15 downto 8);
end if;
end if;
end if;
end if;
end process lan_data_multiplex;
--lan signal generation: all Signals are HIGH active!
lan_rw_gen: process (CLK_EXT,LAN_SM_RST)
begin
@@ -359,7 +423,6 @@ begin
Z3_A_LOW <= '0';
LAN_READY <= '0';
Z3_DATA(31 downto 0) <= x"FFFFFFFF";
DQ_DATA(15 downto 0) <= x"FFFF";
elsif rising_edge(CLK_EXT) then
--default values
LAN_RD_S <= '0';
@@ -371,22 +434,9 @@ begin
when nop=>
--cycle start!
-- prepare the data for write
-- this is a quite complex thing for a cpld
-- so I have to move this out of the cycle start condition and prepare it for every loop
if(Z3_DS(3 downto 2) < "11")then
if(DQ_SWAP='0') then
DQ_DATA(15 downto 0) <= Z3_DATA_IN(31 downto 16);
else
DQ_DATA(15 downto 0) <= Z3_DATA_IN(23 downto 16) & Z3_DATA_IN(31 downto 24);
end if;
else -- lower word!
if(Z3_DS(3 downto 2) = "11")then
-- lower word!
Z3_A_LOW <= '1';
if(DQ_SWAP='0') then
DQ_DATA(15 downto 0) <= Z3_DATA_IN(15 downto 0);
else
DQ_DATA(15 downto 0) <= Z3_DATA_IN( 7 downto 0) & Z3_DATA_IN(15 downto 8);
end if;
end if;
if(Z3_ADR(15)='1')then
@@ -407,6 +457,7 @@ begin
LAN_SM <= start_write_lower;
end if;
end if;
when start_read_upper=>
LAN_RD_S <= '1';
LAN_SM <= wait_read_upper;
@@ -453,12 +504,7 @@ begin
when wait_write_upper=>
LAN_SM<=end_write_upper;
when end_write_upper=>
-- prepare the data for write
if(DQ_SWAP='0') then
DQ_DATA(15 downto 0) <= Z3_DATA_IN(15 downto 0);
else
DQ_DATA(15 downto 0) <= Z3_DATA_IN( 7 downto 0) & Z3_DATA_IN(15 downto 8);
end if;
if(Z3_DS(1 downto 0) = "11")then -- no lower half
LAN_READY <='1';
@@ -493,7 +539,7 @@ begin
end process lan_rw_gen;
--autoconfig
autoconfig_proc: process (reset, CLK_EXT)
autoconfig_proc: process (reset, AMIGA_CLK)
begin
if reset = '0' then
-- reset active ...
@@ -503,16 +549,16 @@ begin
IDE_BASEADR<=x"FF";
CP_BASEADR<=x"FF";
AUTO_CONFIG_Z2_DONE <="000";
LAN_BASEADR<=x"FFFF";
elsif rising_edge(CLK_EXT) then -- no reset, so wait for rising edge of the clock
LAN_BASEADR<=x"FF";
elsif falling_edge(AMIGA_CLK) then -- no reset, so wait for rising edge of the clock
D_Z2_OUT<="1111";
if(AS='1')then
AUTO_CONFIG_Z2_DONE <= AUTO_CONFIG_Z2_DONE or AUTO_CONFIG_Z2_DONE_CYCLE or (not AUTOBOOT_OFF & "00") ;
AUTO_CONFIG_Z2_DONE <= AUTO_CONFIG_Z2_DONE or AUTO_CONFIG_Z2_DONE_CYCLE or (not IDE_OFF & "00") ;
elsif(AUTOCONFIG_Z2_ACCESS= '1' and AS='0' and DS='0') then
case A(6 downto 1) is
when "000000" =>
if(AUTO_CONFIG_Z2_DONE(0) = '0')then
D_Z2_OUT <= "1000" ; --ZII, No-System-Memory, no ROM
D_Z2_OUT <= "1"&not(Z3)&"00" ; --ZII, No-System-Memory, no ROM
elsif(AUTO_CONFIG_Z2_DONE(1) = '0')then
D_Z2_OUT <= "1100" ; --ZII, No-System-Memory, no ROM
else
@@ -572,17 +618,23 @@ begin
D_Z2_OUT <= "1110" ; --Rom vector low byte low nibble
when "100010" =>
D_Z2_OUT <= "1111" ;
if(RW='0')then
if(AUTO_CONFIG_Z2_DONE(0) = '0')then
LAN_BASEADR(15 downto 0) <= D(15 downto 0); --Base adress
if(RW='0' )then
if(AUTO_CONFIG_Z2_DONE(0) = '0' and Z3 = '1')then
LAN_BASEADR(7 downto 0) <= D(15 downto 8); --Base adress Z3
SHUT_UP_Z2(0) <='0'; --enable board
AUTO_CONFIG_Z2_DONE_CYCLE(0) <= '1'; --done here
end if;
end if;
when "100100" =>
D_Z2_OUT <= "1111" ;
if(RW='0' and AUTO_CONFIG_Z2_DONE(0)='1')then
if(AUTO_CONFIG_Z2_DONE(1) = '0')then
if(RW='0')then
if(AUTO_CONFIG_Z2_DONE(0) = '0')then
if(Z3 ='0')then
LAN_BASEADR(7 downto 0) <= D(15 downto 8); --Base adress Z2
SHUT_UP_Z2(0) <='0'; --enable board
AUTO_CONFIG_Z2_DONE_CYCLE(0) <= '1'; --done here
end if;
elsif(AUTO_CONFIG_Z2_DONE(1) = '0')then
CP_BASEADR(7 downto 0) <= D(15 downto 8); --Base adress
SHUT_UP_Z2(1) <='0'; --enable board
AUTO_CONFIG_Z2_DONE_CYCLE(1) <= '1'; --done here
@@ -611,22 +663,58 @@ begin
LAN_CS <= LAN_ACCESS when reset='1' and Z3_ADR(15)='0' else LAN_CS_RST;
LAN_WRL <= LAN_WRL_S when FCS='0' and reset = '1' else LAN_WR_RST;
LAN_WRH <= LAN_WRH_S when FCS='0' and reset = '1' else LAN_WR_RST;
LAN_RD <= LAN_RD_S when FCS='0' and reset = '1' else '0';
--lan signal generation: all Signals are HIGH active!
lan_rw_gen_Z2: process (AMIGA_CLK,reset)
begin
if(reset ='0') then
LAN_INT_ENABLE_Z2 <='0';
LAN_RD_S_Z2 <= '0';
LAN_WRH_S_Z2 <= '0';
LAN_WRL_S_Z2 <= '0';
elsif falling_edge(AMIGA_CLK) then
--default values
LAN_RD_S_Z2 <= '0';
LAN_WRH_S_Z2 <= '0';
LAN_WRL_S_Z2 <= '0';
if(LAN_ACCESS_Z2='1' and AS = '0' and DS='0' and A(15)='0')then
LAN_RD_S_Z2 <= RW;
-- swapped LDS/UDS here: ENC624 is little endian
LAN_WRH_S_Z2 <= not LDS and not RW;
LAN_WRL_S_Z2 <= not UDS and not RW;
end if;
if(LAN_ACCESS_Z2 = '1' and AS = '0' and DS ='0' and RW='0' and A(15)='1') then --enable if a write to A15 occured
LAN_INT_ENABLE_Z2 <= D(15);
end if;
end if;
end process lan_rw_gen_Z2;
LAN_CS <= LAN_CS_RST when LAN_INIT_FINISHED ='0' else
LAN_ACCESS_Z2 when Z3 = '0' else
LAN_ACCESS;
LAN_WRL <= LAN_WR_RST when LAN_INIT_FINISHED ='0' else
LAN_WRL_S_Z2 when AS='0' else
LAN_WRL_S;
LAN_WRH <= LAN_WR_RST when LAN_INIT_FINISHED ='0' else
LAN_WRH_S_Z2 when AS='0' else
LAN_WRH_S;
LAN_RD <= '0' when LAN_INIT_FINISHED ='0' else
LAN_RD_S_Z2 when AS='0' else
LAN_RD_S;
-- LAN_CFG <= "ZZZZ";
A_LAN(13 downto 0)<= LAN_A_INIT(13 downto 0) when LAN_RST_SM/=done else
A_LAN(13 downto 0)<= LAN_A_INIT(13 downto 0) when LAN_INIT_FINISHED ='0' else
Z3_ADR(14 downto 2) & Z3_A_LOW when LAN_ACCESS = '1' else
A(14 downto 1) when LAN_ACCESS_Z2 = '1' else
A(12 downto 1)&"00";
--signal assignment
D(15 downto 0) <= Z3_DATA(31 downto 16) when RW='1' and FCS='0' and LAN_ACCESS ='1' else
D_Z2_OUT & x"FFF" when RW='1' and AS='0' and AUTOCONFIG_Z2_ACCESS ='1' else
DQ(7 downto 0)&DQ(7 downto 0) when RW='1' and CP_ACCESS = '1' and AS='0' else
DQ(15 downto 0) when RW='1' and IDE_ACCESS = '1' and AS='0' else
D_Z2_OUT & x"FFF" when RW='1' and AS_D='0' and AUTOCONFIG_Z2_ACCESS ='1' else
DQ(7 downto 0)&DQ(15 downto 8) when RW='1' and (CP_ACCESS = '1' or (LAN_ACCESS_Z2 ='1' and DQ_SWAP_Z2 ='1')) and AS_D='0' else
DQ(15 downto 0) when RW='1' and (IDE_ACCESS = '1' or (LAN_ACCESS_Z2 ='1' and DQ_SWAP_Z2 ='0')) and AS_D='0' else
(others => 'Z');
A(23 downto 8) <= Z3_DATA(15 downto 0) when RW='1' and FCS='0' and LAN_ACCESS ='1' else
@@ -635,24 +723,22 @@ begin
A(7 downto 1) <= (others => 'Z');
--defined lancp signal that matches both LAN and CP addresses
DQ <= LAN_D_INIT when LAN_RST_SM/=done else
DQ <= LAN_D_INIT when LAN_INIT_FINISHED ='0' else
DQ_DATA(15 downto 0) when RW='0' and FCS='0' and Z3_DS <"1111" and LAN_ACCESS ='1' else
D(15 downto 8 ) & D(15 downto 8) when RW='0' and AS='0' and CP_ACCESS ='1' else
D when RW='0' and AS='0' and IDE_ACCESS ='1' else
D(7 downto 0 ) & D(15 downto 8) when RW='0' and AS='0' and (CP_ACCESS ='1' or (LAN_ACCESS_Z2 ='1' and DQ_SWAP_Z2 ='1')) else
D when RW='0' and AS='0' and (IDE_ACCESS = '1' or (LAN_ACCESS_Z2 ='1' and DQ_SWAP_Z2 ='0')) else
x"0000" when RW = '1' and AS= '0' and AS_D ='1' and IDE_ACCESS ='1' else --clear the bus just before an IDE-Read!
(others => 'Z');
INT2_OUT <= '0' when LAN_IRQ_OUT = '0' and LAN_INT_ENABLE = '1' else
INT2_OUT <= '0' when LAN_IRQ_OUT = '0' and (LAN_INT_ENABLE = '1' or LAN_INT_ENABLE_Z2 ='1') else
--'0' when CP_IRQ = '0' else
'Z';
INT6_OUT <= '0' when CP_IRQ = '0' else
'Z';
OWN <= 'Z';
SLAVE <= '0' when FCS='0' and LAN_ACCESS = '1' else
'0' when AS='0' and (AUTOCONFIG_Z2_ACCESS = '1' or IDE_ACCESS = '1' or CP_ACCESS = '1') else '1';
'0' when AS='0' and (AUTOCONFIG_Z2_ACCESS = '1' or IDE_ACCESS = '1' or CP_ACCESS = '1' or LAN_ACCESS_Z2 = '1') else '1';
CFOUT <= '0' when AUTO_CONFIG_Z2_DONE ="111" else '1';
OVR <= '0' when FCS='0' and LAN_ACCESS = '1' else 'Z'; --is Cache inhibit on Z3!
@@ -688,14 +774,15 @@ begin
end if;
end if;
end process ide_rw_gen;
IDE_W <= IDE_W_S when AS='0' else '1';
IDE_R <= IDE_R_S when AS='0' else '1';
ROM_OE<= ROM_OE_S when AS='0' else '1';
IDE_W <= IDE_W_S when AS ='0' else '1';
IDE_R <= IDE_R_S when AS_D ='0' else '1';
ROM_OE<= ROM_OE_S when AS_D ='0' else '1';
IDE_CS(0)<= not(A(12));
IDE_CS(1)<= not(A(13));
IDE_A(2 downto 0) <= A(11 downto 9);
ROM_B <= "00";
Z3 <= '1' when reset ='0' else 'Z';
--cp signal generation
cp_rw_gen: process (AMIGA_CLK, reset)
+8547 -10879
View File
File diff suppressed because it is too large Load Diff
+6 -8
View File
@@ -68,7 +68,7 @@
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/>
</transform>
<transform xil_pn:end_ts="1627599937" xil_pn:in_ck="-8368315473908605201" xil_pn:name="TRANEXT_xstsynthesize_xc9500xl" xil_pn:prop_ck="-5742752562858310575" xil_pn:start_ts="1627599932">
<transform xil_pn:end_ts="1646743664" xil_pn:in_ck="-8368315473908605201" xil_pn:name="TRANEXT_xstsynthesize_xc9500xl" xil_pn:prop_ck="7640553560667877824" xil_pn:start_ts="1646743659">
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="WarningsGenerated"/>
<status xil_pn:value="ReadyToRun"/>
@@ -85,11 +85,11 @@
<outfile xil_pn:name="webtalk_pn.xml"/>
<outfile xil_pn:name="xst"/>
</transform>
<transform xil_pn:end_ts="1602102352" xil_pn:in_ck="176569500195729039" xil_pn:name="TRAN_compileBCD2" xil_pn:prop_ck="-8537920303570934858" xil_pn:start_ts="1602102352">
<transform xil_pn:end_ts="1646742647" xil_pn:in_ck="176569500195729039" xil_pn:name="TRAN_compileBCD2" xil_pn:prop_ck="-8537920303570934858" xil_pn:start_ts="1646742647">
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/>
</transform>
<transform xil_pn:end_ts="1627599940" xil_pn:in_ck="-8547647177936735053" xil_pn:name="TRAN_ngdbuild" xil_pn:prop_ck="6932115226421322529" xil_pn:start_ts="1627599937">
<transform xil_pn:end_ts="1646743667" xil_pn:in_ck="-8547647177936735053" xil_pn:name="TRAN_ngdbuild" xil_pn:prop_ck="6932115226421322529" xil_pn:start_ts="1646743664">
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/>
<outfile xil_pn:name="LAN_IDE_CP.bld"/>
@@ -98,7 +98,7 @@
<outfile xil_pn:name="_ngo"/>
<outfile xil_pn:name="_xmsgs/ngdbuild.xmsgs"/>
</transform>
<transform xil_pn:end_ts="1627599963" xil_pn:in_ck="-2520376148396280667" xil_pn:name="TRANEXT_vm6File_xc9500xl" xil_pn:prop_ck="-9118991997326562509" xil_pn:start_ts="1627599940">
<transform xil_pn:end_ts="1646743696" xil_pn:in_ck="-2520376148396280667" xil_pn:name="TRANEXT_vm6File_xc9500xl" xil_pn:prop_ck="-3180198092827876936" xil_pn:start_ts="1646743667">
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="WarningsGenerated"/>
<status xil_pn:value="ReadyToRun"/>
@@ -116,18 +116,16 @@
<outfile xil_pn:name="LAN_IDE_CP_html"/>
<outfile xil_pn:name="LAN_IDE_CP_pad.csv"/>
</transform>
<transform xil_pn:end_ts="1627600386" xil_pn:in_ck="-2520376148396271803" xil_pn:name="TRANEXT_crtProg_xc9500" xil_pn:prop_ck="-6294026017969277533" xil_pn:start_ts="1627600384">
<transform xil_pn:end_ts="1646743697" xil_pn:in_ck="-2520376148396271803" xil_pn:name="TRANEXT_crtProg_xc9500" xil_pn:prop_ck="-6294026017969277533" xil_pn:start_ts="1646743696">
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/>
<outfile xil_pn:name="LAN_IDE_CP.jed"/>
</transform>
<transform xil_pn:end_ts="1627596356" xil_pn:in_ck="-2520376148396285089" xil_pn:name="TRAN_impactProgrammingTool_CPLD" xil_pn:prop_ck="4303234622024928597" xil_pn:start_ts="1627596356">
<transform xil_pn:end_ts="1646517305" xil_pn:in_ck="-2520376148396285089" xil_pn:name="TRAN_impactProgrammingTool_CPLD" xil_pn:prop_ck="4303234622024928597" xil_pn:start_ts="1646517305">
<status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForInputs"/>
<status xil_pn:value="InputAdded"/>
<status xil_pn:value="InputChanged"/>
<status xil_pn:value="InputRemoved"/>
</transform>
<transform xil_pn:end_ts="1602273582" xil_pn:in_ck="-2520376148396285089" xil_pn:name="TRAN_configureTargetDevice_CPLD" xil_pn:prop_ck="-1422570904406943683" xil_pn:start_ts="1602273581">
<status xil_pn:value="SuccessfullyRun"/>
+7 -7
View File
@@ -44,7 +44,7 @@
<property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="Clock Enable" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Collapsing Input Limit (2-54)" xil_pn:value="54" xil_pn:valueState="default"/>
<property xil_pn:name="Collapsing Pterm Limit (1-90)" xil_pn:value="50" xil_pn:valueState="default"/>
<property xil_pn:name="Collapsing Pterm Limit (1-90)" xil_pn:value="90" xil_pn:valueState="default"/>
<property xil_pn:name="Compile CPLD Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
@@ -52,7 +52,7 @@
<property xil_pn:name="Compile uni9000 (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create Programmable GND Pins on Unused I/O" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Default Powerup Value of Registers" xil_pn:value="Low" xil_pn:valueState="default"/>
<property xil_pn:name="Default Powerup Value of Registers" xil_pn:value="High" xil_pn:valueState="non-default"/>
<property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/>
<property xil_pn:name="Device" xil_pn:value="xc95288xl" xil_pn:valueState="non-default"/>
<property xil_pn:name="Device Family" xil_pn:value="XC9500XL CPLDs" xil_pn:valueState="non-default"/>
@@ -62,8 +62,8 @@
<property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Evaluation Development Board" xil_pn:value="None Specified" xil_pn:valueState="default"/>
<property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Gray" xil_pn:valueState="non-default"/>
<property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="true" xil_pn:valueState="non-default"/>
<property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="VHDL" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="VHDL" xil_pn:valueState="default"/>
@@ -81,7 +81,7 @@
<property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/>
<property xil_pn:name="I/O Pin Termination" xil_pn:value="Keeper" xil_pn:valueState="default"/>
<property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
<property xil_pn:name="Implementation Template" xil_pn:value="Optimize Speed" xil_pn:valueState="non-default"/>
<property xil_pn:name="Implementation Template" xil_pn:value="Optimize Density" xil_pn:valueState="non-default"/>
<property xil_pn:name="Implementation Top" xil_pn:value="Architecture|LAN_IDE_CP|Behavioral" xil_pn:valueState="non-default"/>
<property xil_pn:name="Implementation Top File" xil_pn:value="LAN_IDE_CP-Z2v2.vhd" xil_pn:valueState="non-default"/>
<property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/LAN_IDE_CP" xil_pn:valueState="non-default"/>
@@ -101,7 +101,7 @@
<property xil_pn:name="Launch SDK after Export" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Library for Verilog Sources" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Load glbl" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Logic Optimization" xil_pn:value="Speed" xil_pn:valueState="default"/>
<property xil_pn:name="Logic Optimization" xil_pn:value="Density" xil_pn:valueState="default"/>
<property xil_pn:name="Macro Preserve" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Macrocell Power Setting" xil_pn:value="Std" xil_pn:valueState="default"/>
<property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/>
@@ -111,7 +111,7 @@
<property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/>
<property xil_pn:name="Number of Clock Buffers" xil_pn:value="4" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Effort" xil_pn:value="High" xil_pn:valueState="non-default"/>
<property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/>
<property xil_pn:name="Other CPLD Fitter Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/>
+4 -4
View File
@@ -62,8 +62,8 @@
<property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Evaluation Development Board" xil_pn:value="None Specified" xil_pn:valueState="default"/>
<property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="true" xil_pn:valueState="non-default"/>
<property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Sequential" xil_pn:valueState="non-default"/>
<property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Gray" xil_pn:valueState="non-default"/>
<property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="VHDL" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="VHDL" xil_pn:valueState="default"/>
@@ -111,8 +111,8 @@
<property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/>
<property xil_pn:name="Number of Clock Buffers" xil_pn:value="4" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Effort" xil_pn:value="High" xil_pn:valueState="non-default"/>
<property xil_pn:name="Optimization Goal" xil_pn:value="Area" xil_pn:valueState="non-default"/>
<property xil_pn:name="Other CPLD Fitter Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options Fit" xil_pn:value="" xil_pn:valueState="default"/>
Binary file not shown.
@@ -1,9 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<report-views version="2.0" >
<header>
<DateModified>2021-07-30T00:50:53</DateModified>
<DateModified>2022-03-08T12:40:08</DateModified>
<ModuleName>LAN_IDE_CP</ModuleName>
<SummaryTimeStamp>2021-07-30T00:26:13</SummaryTimeStamp>
<SummaryTimeStamp>2021-07-30T01:01:15</SummaryTimeStamp>
<SavedFilePath>C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2/iseconfig/LAN_IDE_CP.xreport</SavedFilePath>
<ImplementationReportsDirectory>C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE_V2\</ImplementationReportsDirectory>
<DateInitialized>2019-01-09T22:34:04</DateInitialized>
@@ -29,7 +29,7 @@
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000218000000010000000100000000000000000000000064ffffffff000000810000000000000001000002180000000100000000</ViewHeaderState>
<ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000154000000010000000100000000000000000000000064ffffffff000000810000000000000001000001540000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem>Generate Programming File</CurrentItem>
</ItemView>
@@ -64,13 +64,13 @@
<ClosedNode>User Constraints</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem/>
<SelectedItem></SelectedItem>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000d6000000010000000100000000000000000000000064ffffffff000000810000000000000001000000d60000000100000000</ViewHeaderState>
<ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000154000000010000000100000000000000000000000064ffffffff000000810000000000000001000001540000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem/>
<CurrentItem></CurrentItem>
</ItemView>
<ItemView engineview="SynthesisOnly" sourcetype="" guiview="Process" >
<ClosedNodes>
+1 -1
View File
@@ -38,7 +38,7 @@ NET "A_LAN<7>" LOC = "P10" ;
NET "A_LAN<8>" LOC = "P140" ;
NET "A_LAN<9>" LOC = "P142" ;
NET "AS" LOC = "P80" ;
NET "AUTOBOOT_OFF" LOC = "P75" ;
NET "IDE_OFF" LOC = "P75" ;
NET "BERR" LOC = "P98" ;
NET "C1" LOC = "P103" ;
NET "C3" LOC = "P102" ;