|
|
Known bugs of the T48 uController core
|
Known bugs of the T48 uController core
|
======================================
|
======================================
|
Version: $Date: 2005-06-08 19:23:24 $
|
Version: $Date: 2005-09-13 21:27:12 $
|
|
|
|
|
Release 0.5 BETA
|
Release 0.5 BETA
|
----------------
|
----------------
|
|
|
*******************************************************************************
|
*******************************************************************************
|
|
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
|
MSB of Program Counter changed upon PC increment
|
|
|
The current implementation of the Program Counter allows that the MSB (bit 11)
|
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 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
|
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
|
states that bit 11 is only altered by JMP and CALL/RET but not by normal
|
increment.
|
increment.
|
|
|
Fixed in:
|
Fixed in:
|
pmem_crtl.vhd 1.4
|
pmem_crtl.vhd 1.4
|
New regression test: white_box/pc_wrap_bit11
|
New regression test: white_box/pc_wrap_bit11
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Wrong clock applied to T0
|
Wrong clock applied to T0
|
|
|
After executing the 'ENT0 CLK' instruction, the internal clock (XTAL divided
|
After executing the 'ENT0 CLK' instruction, the internal clock (XTAL divided
|
by 3) should be applied to T0.
|
by 3) should be applied to T0.
|
The t48_core applies clk_i to T0. This is equal to XTAL in the current
|
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
|
implementation of t8048 and others. Therefore, the clock at T0 is three times
|
faster than specified.
|
faster than specified.
|
|
|
Fixed in:
|
Fixed in:
|
clock_ctrl.vhd 1.7
|
clock_ctrl.vhd 1.7
|
t48_core.vhd 1.8
|
t48_core.vhd 1.8
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
|
|
|
|
Release 0.4 BETA
|
Release 0.4 BETA
|
----------------
|
----------------
|
|
|
*******************************************************************************
|
*******************************************************************************
|
|
Target address of JMP and CALL to Program Memory Bank 1 corrupted by interrupt
|
|
|
|
See above.
|
|
|
|
*******************************************************************************
|
MSB of Program Counter changed upon PC increment
|
MSB of Program Counter changed upon PC increment
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Wrong clock applied to T0
|
Wrong clock applied to T0
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
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,
|
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
|
BUS and OUTL BUS, A are executed. The BUS is read or written but the control
|
signals are missing.
|
signals are missing.
|
|
|
Fixed in:
|
Fixed in:
|
decoder.vhd 1.16
|
decoder.vhd 1.16
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
P1 constantly in push-pull mode in t8048
|
P1 constantly in push-pull mode in t8048
|
|
|
Port P1 is constantly driven by an active push-pull driver instead of an
|
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
|
open-collector driver type. This inhibits using any bit of P1 in input
|
direction.
|
direction.
|
|
|
Fixed in:
|
Fixed in:
|
t8048.vhd 1.4
|
t8048.vhd 1.4
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
|
|
|
|
Release 0.3 BETA
|
Release 0.3 BETA
|
----------------
|
----------------
|
|
|
|
*******************************************************************************
|
|
Target address of JMP and CALL to Program Memory Bank 1 corrupted by interrupt
|
|
|
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
MSB of Program Counter changed upon PC increment
|
MSB of Program Counter changed upon PC increment
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Wrong clock applied to T0
|
Wrong clock applied to T0
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
P1 constantly in push-pull mode in t8048
|
P1 constantly in push-pull mode in t8048
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
PSENn Timing
|
PSENn Timing
|
|
|
PSENn is erroneously activated during read or write from external memory when
|
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
|
the read and write strobe signals RDn and WRn are active. This happens when
|
code is executed from external Program Memory.
|
code is executed from external Program Memory.
|
|
|
The problem lies in the decoder module where the PSENn signal is generated
|
The problem lies in the decoder module where the PSENn signal is generated
|
based on the current machine cycle.
|
based on the current machine cycle.
|
|
|
Fixed in decoder.vhd 1.15
|
Fixed in decoder.vhd 1.15
|
Added waveform check for PSENn in if_timing.vhd 1.3
|
Added waveform check for PSENn in if_timing.vhd 1.3
|
New regression test: white_box/psen_rd_wr_timing
|
New regression test: white_box/psen_rd_wr_timing
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
|
|
|
|
Release 0.2 BETA
|
Release 0.2 BETA
|
----------------
|
----------------
|
|
|
*******************************************************************************
|
*******************************************************************************
|
MSB of Program Counter changed upon PC increment
|
MSB of Program Counter changed upon PC increment
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Wrong clock applied to T0
|
Wrong clock applied to T0
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
P1 constantly in push-pull mode in t8048
|
P1 constantly in push-pull mode in t8048
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
PSENn Timing
|
PSENn Timing
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Program Memory bank can be switched during interrupt
|
Program Memory bank can be switched during interrupt
|
|
|
During an interrupt service routine (i.e. after vectoring to location 3 or 7
|
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
|
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
|
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
|
instructions honour the current state of the Program Memory Bank Flag and thus
|
switch the Program Memory bank upon execution.
|
switch the Program Memory bank upon execution.
|
|
|
Fixed in:
|
Fixed in:
|
int.vhd 1.2
|
int.vhd 1.2
|
decoder.vhd 1.14
|
decoder.vhd 1.14
|
Updated regression test:
|
Updated regression test:
|
black_box/mb/int
|
black_box/mb/int
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
|
|
|
|
Release 0.1 BETA
|
Release 0.1 BETA
|
----------------
|
----------------
|
|
|
*******************************************************************************
|
*******************************************************************************
|
MSB of Program Counter changed upon PC increment
|
MSB of Program Counter changed upon PC increment
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Wrong clock applied to T0
|
Wrong clock applied to T0
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
RD' and WR' not asserted for INS A, BUS and OUTL BUS, A
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
PSENn Timing
|
PSENn Timing
|
|
|
See above.
|
See above.
|
|
|
*******************************************************************************
|
*******************************************************************************
|
Program Memory bank can be switched during interrupt
|
Program Memory bank can be switched during interrupt
|
|
|
See above.
|
See above.
|
|
|
******************************************************************************
|
******************************************************************************
|
External Program Memory ignored when EA = 0
|
External Program Memory ignored when EA = 0
|
|
|
The external Program Memory is always ignored when EA = 0 with the t8048 system
|
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
|
toplevel. Desired behaviour is to access external Program Memory when code
|
has to be fetched from an address location that is outside the internal
|
has to be fetched from an address location that is outside the internal
|
Program Memory.
|
Program Memory.
|
|
|
Fixed in t8048.vhd 1.3
|
Fixed in t8048.vhd 1.3
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
******************************************************************************
|
******************************************************************************
|
ANL and ORL to P2 read port status instead of port output register
|
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
|
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
|
operation on this value. Instead, they should read the port output register
|
and operate on this value.
|
and operate on this value.
|
|
|
Fixed in p2.vhd 1.5
|
Fixed in p2.vhd 1.5
|
Regression test:
|
Regression test:
|
white_box/p2_port_reg_conflict
|
white_box/p2_port_reg_conflict
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|
******************************************************************************
|
******************************************************************************
|
Counter is not incremented
|
Counter is not incremented
|
|
|
When in counter mode, the timer/counter module does not increment upon a
|
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
|
falling edge of T1. Reason is a typo in the code for the edge detection signal
|
t1_inc_s - it will never become true.
|
t1_inc_s - it will never become true.
|
|
|
Fixed in timer.vhd 1.3
|
Fixed in timer.vhd 1.3
|
Regression tests:
|
Regression tests:
|
black_box/cnt/cnt
|
black_box/cnt/cnt
|
black_box/cnt/int
|
black_box/cnt/int
|
Fix will be included in next release.
|
Fix will be included in next release.
|
|
|