Compare commits
10
Commits
61a36e326f
...
f8dc4383d2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8dc4383d2 | ||
|
|
52ba722800 | ||
|
|
0f18ce181d | ||
|
|
7444299170 | ||
|
|
066344f4bf | ||
|
|
e2a09186e2 | ||
|
|
876b2adb5b | ||
|
|
65af379ced | ||
|
|
88cdb9fb52 | ||
|
|
dc65757a8a |
+18
@@ -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
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Regular → Executable
BIN
Binary file not shown.
Regular → Executable
BIN
Binary file not shown.
Regular → Executable
@@ -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
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+137
-33
@@ -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,29 +385,16 @@ ASM SAVEDS BPTR DevClose( ASMR(a1) struct IOSana2Req *ioreq ASMREG(a1),
|
||||
|
||||
ReleaseSemaphore( &db->db_Units[unit].du_Sem );
|
||||
|
||||
if (db->db_Lib.lib_Flags & LIBF_DELEXP)
|
||||
ret = DevExpunge(db);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ASM SAVEDS BPTR DevExpunge( ASMR(a6) DEVBASEP ASMREG(a6) )
|
||||
{
|
||||
BPTR seglist = db->db_SegList;
|
||||
#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;
|
||||
|
||||
if( db->db_Lib.lib_OpenCnt )
|
||||
{
|
||||
db->db_Lib.lib_Flags |= LIBF_DELEXP;
|
||||
return (0);
|
||||
}
|
||||
|
||||
Forbid();
|
||||
Remove((struct Node*)db); /* remove device node from system */
|
||||
Permit();
|
||||
|
||||
dbStopServer(db,0);
|
||||
|
||||
for( i=0 ; i < db->db_NBoards ; i++ )
|
||||
@@ -398,6 +405,45 @@ ASM SAVEDS BPTR DevExpunge( ASMR(a6) DEVBASEP ASMREG(a6)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
ReleaseSemaphore( &db->db_Sem );
|
||||
#endif
|
||||
|
||||
if (db->db_Lib.lib_Flags & LIBF_DELEXP)
|
||||
ret = DevExpunge(db);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ASM SAVEDS BPTR DevExpunge( ASMR(a6) DEVBASEP ASMREG(a6) )
|
||||
{
|
||||
BPTR seglist = db->db_SegList;
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
Forbid();
|
||||
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++ )
|
||||
{
|
||||
while( (type = GetHead( &db->db_Units[i].du_ReadTypes ) ))
|
||||
{
|
||||
dbDeleteType( db, i, type->srt_Type );
|
||||
}
|
||||
|
||||
}
|
||||
#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,23 +879,32 @@ static LONG dbStartServer( DEVBASEP, LONG unit )
|
||||
LONG ret = 0,i,pri;
|
||||
struct TagItem sv_tags[5];
|
||||
|
||||
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;
|
||||
break; /* ReleaseSemaphore */
|
||||
|
||||
pri = 0;
|
||||
if( Need_HighPri( db ) )
|
||||
pri = HIGHPRI;
|
||||
else
|
||||
if( FindPort("AMITCP") ) /* AmiTCP active ? */
|
||||
{
|
||||
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;
|
||||
@@ -880,18 +935,26 @@ static LONG dbStartServer( DEVBASEP, LONG unit )
|
||||
|
||||
DeleteMsgPort( port );
|
||||
|
||||
} while(0);
|
||||
|
||||
ReleaseSemaphore( &db->db_Sem );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* 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
|
||||
|
||||
@@ -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 * );
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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);
|
||||
/* 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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
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<='0';
|
||||
LAN_WR_RST<='0';
|
||||
LAN_CS_RST<='1';
|
||||
LAN_WR_RST<='1';
|
||||
LAN_RST_SM<=wait0;
|
||||
when wait0=>
|
||||
LAN_CS_RST<='1';
|
||||
LAN_WR_RST<='0';
|
||||
LAN_CS_RST<='0';
|
||||
LAN_WR_RST<='1';
|
||||
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<=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 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';
|
||||
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';
|
||||
|
||||
|
||||
end Behavioral;
|
||||
|
||||
|
||||
+1359
-1359
File diff suppressed because it is too large
Load Diff
+1309
-1309
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+2235
-3160
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
@@ -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
|
||||
|
||||
+1614
-1976
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+160
-73
@@ -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,23 +268,18 @@ 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
|
||||
|
||||
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((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
|
||||
@@ -272,11 +288,7 @@ begin
|
||||
LAN_ACCESS <= '1';
|
||||
else
|
||||
LAN_ACCESS <= '0';
|
||||
DQ_SWAP <= '1';
|
||||
end if;
|
||||
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"¬(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
File diff suppressed because it is too large
Load Diff
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
Reference in New Issue
Block a user