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

Subversion Repositories t48

[/] [t48/] [tags/] [rel_0_1_beta/] [KNOWN_BUGS] - Rev 292

Compare with Previous | Blame | View Log


Known bugs of the T48 uController core
======================================
Version: $Date: 2006-07-14 01:06:36 $


Release 0.6.1 BETA
------------------

*******************************************************************************
Deassertion of PROG too early

PROG is deasserted in XTAL2 cycle which might lead to read data being already
invalid (tri-stated) when the core samples P2[3:0] at the end of XTAL3.

Fixed in:
clock_ctrl.vhd 1.12
Fix will be included in next release.



Release 0.6 BETA
----------------

*******************************************************************************
Deassertion of PROG too early

See above.

*******************************************************************************
P2 Port value restored after expander access

After access to expander interface (ANLD Pp; MOVD A,Pp; MOVD Pp,A; ORLD Pp)
the port value of P2 is restored. This is wrong according to chapter "Port 2
Operations" of the "Expanded MCS-48 System" manual. It states that previously
latched I/O information will be removed and not restored.

Fixed in:
p2.vhd 1.8
Fix will be included in next release.

*******************************************************************************
Problem when INT and JMP

When code is executed from Memory Bank 1, the injected CALL triggered by the
interrupt does not always vector to address 3. This happens because of a bus
collision between the decoder unit and the db_bus unit. The resulting address
can be either:
* 000h, 001h, 002h, 003h for external and timer interrupt
* 004h, 005h, 006h, 007h for timer interrupt

The problem was introduced in release 0.6 BETA when the glitch on PCH was
fixed.

Fixed in:
decoder.vhd 1.21
New regression test: int_on_mb1
Fix will be included in next release.



Release 0.5 BETA
----------------

*******************************************************************************
Deassertion of PROG too early

See above.

*******************************************************************************
P2 Port value restored after expander access

See above.

*******************************************************************************
Target address of JMP and CALL to Program Memory Bank 1 corrupted by interrupt

An interrupt occuring during the execution of a JMP instruction, forces bit 11
of the target address to 0. This corrupts target addresses that are located in
Program Memory Bank 1.

Fixed in:
int.vhd 1.5
New regression test: white_box/int_on_int
Fix will be included in next release.

*******************************************************************************
MSB of Program Counter changed upon PC increment

The current implementation of the Program Counter allows that the MSB (bit 11)
is modifed when the PC increments at address 07FFh linear code execution. This
is contrary to the description found in "The Expanded MCS-48 System" which
states that bit 11 is only altered by JMP and CALL/RET but not by normal
increment.

Fixed in:
pmem_crtl.vhd 1.4
New regression test: white_box/pc_wrap_bit11
Fix will be included in next release.

*******************************************************************************
Wrong clock applied to T0

After executing the 'ENT0 CLK' instruction, the internal clock (XTAL divided
by 3) should be applied to T0.
The t48_core applies clk_i to T0. This is equal to XTAL in the current
implementation of t8048 and others. Therefore, the clock at T0 is three times
faster than specified.

Fixed in:
clock_ctrl.vhd 1.7
t48_core.vhd 1.8
Fix will be included in next release.



Release 0.4 BETA
----------------

*******************************************************************************
P2 Port value restored after expander access

See above.

*******************************************************************************
Target address of JMP and CALL to Program Memory Bank 1 corrupted by interrupt

See above.

*******************************************************************************
MSB of Program Counter changed upon PC increment

See above.

*******************************************************************************
Wrong clock applied to T0

See above.

*******************************************************************************
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A

The control signals RD' and WR' are not asserted when the instructions INS A,
BUS and OUTL BUS, A are executed. The BUS is read or written but the control
signals are missing.

Fixed in:
decoder.vhd 1.16
Fix will be included in next release.

*******************************************************************************
P1 constantly in push-pull mode in t8048

Port P1 is constantly driven by an active push-pull driver instead of an
open-collector driver type. This inhibits using any bit of P1 in input
direction.

Fixed in:
t8048.vhd 1.4
Fix will be included in next release.



Release 0.3 BETA
----------------

*******************************************************************************
P2 Port value restored after expander access

See above.

*******************************************************************************
Target address of JMP and CALL to Program Memory Bank 1 corrupted by interrupt

See above.

*******************************************************************************
MSB of Program Counter changed upon PC increment

See above.

*******************************************************************************
Wrong clock applied to T0

See above.

*******************************************************************************
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A

See above.

*******************************************************************************
P1 constantly in push-pull mode in t8048

See above.

*******************************************************************************
PSENn Timing

PSENn is erroneously activated during read or write from external memory when
the read and write strobe signals RDn and WRn are active. This happens when
code is executed from external Program Memory.

The problem lies in the decoder module where the PSENn signal is generated
based on the current machine cycle.

Fixed in decoder.vhd 1.15
Added waveform check for PSENn in if_timing.vhd 1.3
New regression test: white_box/psen_rd_wr_timing
Fix will be included in next release.



Release 0.2 BETA
----------------

*******************************************************************************
P2 Port value restored after expander access

See above.

*******************************************************************************
MSB of Program Counter changed upon PC increment

See above.

*******************************************************************************
Wrong clock applied to T0

See above.

*******************************************************************************
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A

See above.

*******************************************************************************
P1 constantly in push-pull mode in t8048

See above.

*******************************************************************************
PSENn Timing

See above.

*******************************************************************************
Program Memory bank can be switched during interrupt

During an interrupt service routine (i.e. after vectoring to location 3 or 7
of the Program Memory and befor executing the RETR instruction) the Program
Memory bank can be switched by executing a JMP or CALL instruction. These
instructions honour the current state of the Program Memory Bank Flag and thus
switch the Program Memory bank upon execution.

Fixed in:
int.vhd 1.2
decoder.vhd 1.14
Updated regression test:
black_box/mb/int
Fix will be included in next release.



Release 0.1 BETA
----------------

*******************************************************************************
P2 Port value restored after expander access

See above.

*******************************************************************************
MSB of Program Counter changed upon PC increment

See above.

*******************************************************************************
Wrong clock applied to T0

See above.

*******************************************************************************
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A

See above.

*******************************************************************************
PSENn Timing

See above.

*******************************************************************************
Program Memory bank can be switched during interrupt

See above.

******************************************************************************
External Program Memory ignored when EA = 0

The external Program Memory is always ignored when EA = 0 with the t8048 system
toplevel. Desired behaviour is to access external Program Memory when code
has to be fetched from an address location that is outside the internal
Program Memory.

Fixed in t8048.vhd 1.3
Fix will be included in next release.

******************************************************************************
ANL and ORL to P2 read port status instead of port output register

The ANL and ORL instructions for P2 read the port status and apply the logical
operation on this value. Instead, they should read the port output register
and operate on this value.

Fixed in p2.vhd 1.5
Regression test:
white_box/p2_port_reg_conflict
Fix will be included in next release.

******************************************************************************
Counter is not incremented

When in counter mode, the timer/counter module does not increment upon a
falling edge of T1. Reason is a typo in the code for the edge detection signal
t1_inc_s - it will never become true.

Fixed in timer.vhd 1.3
Regression tests:
black_box/cnt/cnt
black_box/cnt/int
Fix will be included in next release. 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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