HT46R068B/HT46R069B
Enhanced A/D Type 8-bit OTP MCU
System Architecture
A key factor in the high-performance features of the Holtek range of microcontrollers is attributed
to the internal system architecture. The range of devices take advantage of the usual features found
within RISC microcontrollers providing increased speed of operation and enhanced performance.
The pipelining scheme is implemented in such a way that instruction fetching and instruction
execution are overlapped, hence instructions are effectively executed in one cycle, with the
exception of branch or call instructions. An 8-bit wide ALU is used in practically all operations
of the instruction set. It carries out arithmetic operations, logic operations, rotation, increment,
decrement, branch decisions, etc. The internal data path is simplified by moving data through the
Accumulator and the ALU. Certain internal registers are implemented in the Data Memory and
can be directly or indirectly addressed. The simple addressing methods of these registers along
with additional architectural features ensure that a minimum of external components is required to
provide a functional I/O and A/D control system with maximum reliability and flexibility.
Clocking and Pipelining
The main system clock, derived from either a Crystal/Resonator or RC oscillator is subdivided into
four internally generated non-overlapping clocks, T1~T4. The Program Counter is incremented
at the beginning of the T1 clock during which time a new instruction is fetched. The remaining
T2~T4 clocks carry out the decoding and execution functions. In this way, one T1~T4 clock
cycle forms one instruction cycle. Although the fetching and execution of instructions takes place
in consecutive instruction cycles, the pipelining structure of the microcontroller ensures that
instructions are effectively executed in one instruction cycle. The exception to this are instructions
where the contents of the Program Counter are changed, such as subroutine calls or jumps, in
which case the instruction will take one more instruction cycle to execute.
For instructions involving branches, such as jump or call instructions, two instruction cycles are
required to complete instruction execution. An extra cycle is required as the program takes one
cycle to first obtain the actual jump or call address and then another cycle to actually execute
the branch. The requirement for this extra cycle should be taken into account by programmers in
timing sensitive applications.
O
s
l
c
a
l
o
i
t
r
C
l
c
o
k
(
y
S
e
s
t
m
C
l
c
o
k
)
P
h
a
e
C
s
o
c
l
T
k
1
P
h
a
e
C
s
o
c
l
T
k
2
P
h
a
e
C
s
o
c
l
T
k
3
P
h
a
e
C
s
o
c
l
T
k
4
P
o
r
r
g
m
a
C
o
u
t
r
n
e
P
C
P
+
C
1
P
+
C
2
F
t
e
h
c
I
s
n
.
t
P
(
)
C
P
p
i
l
e
i
i
g
n
n
E
e
x
u
c
e
t
I
s
n
.
t
(
C
P
1
-
)
F
t
e
h
c
I
s
n
.
t
(
C
P
1
+
)
E
e
x
u
c
e
t
I
s
n
.
t
(
C
P
)
F
t
e
h
c
I
s
n
.
t
(
C
P
2
+
)
E
e
x
u
c
e
t
I
s
n
.
t
(
C
P
1
+
)
System Clocking and Pipelining
Rev. 1.00
11
�anꢀaꢁꢂ ꢃꢄꢅ ꢃ011