03.01.2015 Views

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MATH COPROCESSING<br />

14.4.1 Clocking the 80C187<br />

The microprocessor and math coprocessor operate asynchronously, and their clock rates may differ.<br />

The 80C187 has a CKM pin that determines whether it uses the input clock directly or divided<br />

by two. Direct clocking works up to 12.5 MHz, which makes it convenient to feed the clock input<br />

from the microprocessor’s CLKOUT pin. Beyond 12.5 MHz, the 80C187 must use a multiplyby-two<br />

clock input up to a maximum of 32 MHz. The microprocessor and the math coprocessor<br />

have correct timing relationships, even with operation at different frequencies.<br />

14.4.2 Processor Bus Cycles Accessing the 80C187<br />

Data transfers between the microprocessor and the 80C187 occur through the dedicated, 16-bit<br />

I/O ports shown in Table 14-7. When the processor encounters a numerics opcode, it first writes<br />

the opcode to the 80C187. The 80C187 decodes the instruction and passes elementary instruction<br />

information (Opcode Status Word) back to the processor. Since the 80C187 is a slave processor,<br />

the Modular Core processor performs all loads and stores to memory. Including the overhead in<br />

the microprocessor’s microcode, each data transfer between memory and the 80C187 (via the microprocessor)<br />

takes at least 17 processor clocks.<br />

Table 14-7. 80C187 I/O Port Assignments<br />

I/O Address Read Definition Write Definition<br />

00F8H Status/Control Opcode<br />

00FAH Data Data<br />

00FCH Reserved CS:IP, DS:EA<br />

00FEH Opcode Status Reserved<br />

The microprocessor cannot process any numerics (ESC) opcodes alone. If the CPU encounters a<br />

numerics opcode when the Escape Trap (ET) bit in the Relocation Register is a zero and the<br />

80C187 is not present, its operation is indeterminate. Even the FINIT/FNINIT initialization instruction<br />

(used in the past to test the presence of a coprocessor) fails without the 80C187. If an<br />

application offers the 80C187 as an option, problems can be prevented in one of three ways:<br />

• Remove all numerics (ESC) instructions, including code that checks for the presence of the<br />

80C187.<br />

• Use a jumper or switch setting to indicate the presence of the 80C187. The program can<br />

interrogate the jumper or switch setting and branch away from numerics instructions when<br />

the 80C187 socket is empty.<br />

• Trick the microprocessor into predictable operation when the 80C187 socket is empty. The<br />

fix is placing pull-up or pull-down resistors on certain data and handshaking lines so the<br />

CPU reads a recognizable Opcode Status Word. This solution requires a detailed knowledge<br />

of the interface.<br />

14-10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!