
ARM9E-S Coprocessor Interface
ARM DDI 0165B
Copyright 2000 ARM Limited. All rights reserved.
6-5
At the rising edge of CLK, if CLKEN is HIGH, and InMREQ is LOW, an instruction
fetch is taking place, and INSTR[31:0] contains the fetched instruction on the next
rising edge of the clock, when CLKEN is HIGH. This means that:
the last instruction fetched must enter the Decode stage of the coprocessor
pipeline
the instruction in the Decode stage of the coprocessor pipeline must enter its
Execute stage
the fetched instruction must be sampled.
In all other cases, the ARM9E-S pipeline is stalled, and the coprocessor pipeline must
not advance.
Figure 6-2 shows the timing for these signals, and indicates when the coprocessor
pipeline must advance its state. In this timing diagram, Coproc clock shows the
effective clock applied to the pipeline follower in the coprocessor. It is derived such that
the coprocessor state must only advance on rising CLK edges when CLKEN is HIGH.
The method of implementing this is dependent on the design style used, such as clock
gating or register recirculating.
For efficient coprocessor design, an unmodified version of CLK must be applied to the
Execution stage of the coprocessor. This allows the coprocessor to continue executing
an instruction even when the ARM9E-S pipeline is stalled.
Figure 6-2 ARM9E-S coprocessor clocking
During the Execute stage, the condition codes are compared with the flags to determine
whether the instruction really executes or not. The output PASS is asserted (HIGH) if
the instruction in the Execute stage of the coprocessor pipeline:
is a coprocessor instruction
has passed its condition codes.
CLK
CLKEN
Coproc
clock