[System09] Bug report for the System09_Digilent_3S200.vhd

John Kent jekent at optushome.com.au
Thu Jan 15 13:41:13 UTC 2009


Prof. Dr.-Ing. Marco Winzker has reported a couple of bugs in the 
Digilent 3S200 version of System09.

"I use the Digilent XS200 board. In System09_Digilent_3S200.vhd you use 
two different clocks with the same speed. I encountered problems with 
clock domain transfers, so I just merged the clocks. Also this 25 MHz 
clock must be in the user constraints. The constraint will be violated 
slightly, but without it the design failed to work."

Modifications:

System09_Digilent_3S200.vhd – line 616

REMOVE:

vga_clk_buffer : BUFG port map(

i => clk_count,

o => vga_clk

);

INSERT:

vga_clk <= cpu_clk;


System09_Digilent_3S200.ucf – after line 136

INSERT:

NET "cpu_clk" TNM_NET = "cpu_clk";

TIMESPEC "TS_cpu_clk" = PERIOD "cpu_clk" 40 ns LOW 50 %;


He suggests that other versions of the design may also need modification.
I have not had any problem with ISE 7.1 or 8.1 but perhaps there is a 
problem with more recent versions of ISE.
The reason I split the clocks was that I was concerned about clock loading.

I've been updating David Burnette's makefiles and S1 to VHDL ROM utility 
to support variable length S1 records and to support 4KBit block RAMs 
found on the Spartan 2, although I got a bit stuck on how to specify if 
the ROMs are B4 or B16 ROMs in the makefile.

I was using a Spartan 2 board with a LANTRONIX AR Ethernet to serial 
port board, but I could not get the X Modem upload program to work 
properly. It worked fine over a direct serial COMs connection, using 
X-Modem protocol on Hyperterm, but It would not work using a TCP-IP 
socket via the LANTRONIX card. I thought the problem might have been in 
the hardware flow control, so I have been adding that to all the monitor 
ROMs.

The upshot is that the design is in limbo, until I can find time to sort 
out all the problems, and get the package up and running again.

I also got an email from Brian Dominy who wrote and maintains gcc6809. 
He was telling me his emulator was capable of running Dr Ed Cheung's 
pinball game, which had problems with the FIRQ when he used my CPU09. Ed 
solved the problem by setting the Entire Flag in the FIRQ microcode, 
although it would be good to know why that fixed the problem. There is 
not much I can do to resolve that problem until I can get a logic trace 
at the point the program crashes. I have been unable to reproduce the 
problem with my hardware so it might be a cycle accuracy problem.

System09 does not pay the bills and my Ph.D is running off track due to 
extra curricular interest.

John.

-- 
http://www.johnkent.com.au
http://members.optushome.com.au/jekent




More information about the System09 mailing list