Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. EC000 Core Processor (SCM68000) User’s Manual Motorola reserves the right to make changes without further notice to any products herein. Motorola makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Motorola assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. "Typical" parameters can and do vary in different applications. All operating parameters, including "Typicals" must be validated for each customer application by customer's technical experts. Motorola does not convey any license under its patent rights nor the rights of others. Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal injury or death may occur. Should Buyer purchase or use Motorola products for any such unintended or unauthorized application, Buyer shall indemnify and hold Motorola and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Motorola was negligent regarding the design or manufacture of the part. Motorola and µ are registered trademarks of Motorola, Inc. Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer. MOTOROLA, 1995 For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. 68K FAX-IT Documentation Comments FAX 512-891-8593—Documentation Comments Only Freescale Semiconductor, Inc... The Motorola High-Performance Embedded Systems Technical Communications Department provides a fax number for you to submit any questions or comments about this document or how to order other documents. We welcome your suggestions for improving our documentation. Please do not fax technical questions. Please provide the part number and revision number (located in upper right-hand corner of the cover) and the title of the document. When referring to items in the manual, please reference by the page number, paragraph number, figure number, table number, and line number if needed. When sending a fax, please provide your name, company, fax number, and phone number including area code. Applications and Technical Information For questions or comments pertaining to technical information, questions, and applications, please contact one of the following sales offices nearest you. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com iii Freescale Semiconductor, Inc. — Sales Offices — Field Applications Engineering Available Through All Sales Offices UNITED STATES Freescale Semiconductor, Inc... ALABAMA, Huntsville (205) 464-6800 ARIZONA, Tempe (602) 897-5056 CALIFORNIA, Agoura Hills (818) 706-1929 CALIFORNIA, Los Angeles (310) 417-8848 CALIFORNIA, Irvine (714) 753-7360 CALIFORNIA, Rosevllle (916) 922-7152 CALIFORNIA, San Diego (619) 541-2163 CALIFORNIA, Sunnyvale (408) 749-0510 COLORADO, Colorado Springs (719) 599-7497 COLORADO, Denver (303) 337-3434 CONNECTICUT, Wallingford (203) 949-4100 FLORIDA, Maitland (407) 628-2636 FLORIDA, Pompano Beach/ Fort Lauderdale (305) 486-9776 FLORIDA, Clearwater (813) 538-7750 GEORGlA, Atlanta (404) 729-7100 IDAHO, Boise (208) 323-9413 ILLINOIS, Chicago/Hoffman Estates (708) 490-9500 INDlANA, Fort Wayne (219) 436-5818 INDIANA, Indianapolis (317) 571-0400 INDIANA, Kokomo (317) 457-6634 IOWA, Cedar Rapids (319) 373-1328 KANSAS, Kansas City/Mission (913) 451-8555 MARYLAND, Columbia (410) 381-1570 MASSACHUSETTS, Marborough (508) 481-8100 MASSACHUSETTS, Woburn (617) 932-9700 MICHIGAN, Detroit (313) 347-6800 MINNESOTA, Minnetonka (612) 932-1500 MISSOURI, St. Louis (314) 275-7380 NEW JERSEY, Fairfield (201) 808-2400 NEW YORK, Fairport (716) 425-4000 NEW YORK, Hauppauge (516) 361-7000 NEW YORK, Poughkeepsie/Fishkill (914) 473-8102 NORTH CAROLINA, Raleigh (919) 870-4355 OHIO, Cleveland (216) 349-3100 OHIO, Columbus/Worthington (614) 431-8492 OHIO, Dayton (513) 495-6800 OKLAHOMA, Tulsa (800) 544-9496 OREGON, Portland (503) 641-3681 PENNSYLVANIA, Colmar (215) 997-1020 Philadelphia/Horsham (215) 957-4100 TENNESSEE, Knoxville (615) 690-5593 TEXAS, Austin (512) 873-2000 TEXAS, Houston (800) 343-2692 TEXAS, Plano (214) 516-5100 VIRGINIA, Richmond (804) 285-2100 WASHINGTON, Bellevue (206) 454-4160 Seattle Access (206) 622-9960 WISCONSIN, Milwaukee/Brookfield (414) 792-0122 CANADA BRITISH COLUMBIA, Vancouver (604) 293-7605 ONTARIO, Toronto (416) 497-8181 ONTARIO, Ottawa (613) 226-3491 QUEBEC, Montreal (514) 731-6881 INTERNATIONAL AUSTRALIA, Melbourne (61-3)887-0711 AUSTRALIA, Sydney (61(2)906-3855 BRAZIL, Sao Paulo 55(11)815-4200 CHINA, Beijing 86 505-2180 FINLAND, Helsinki 358-0-35161191 Car Phone 358(49)211501 FRANCE, Paris/Vanves 33(1)40 955 900 iv GERMANY, Langenhagen/ Hanover 49(511)789911 GERMANY, Munich 49 89 92103-0 GERMANY, Nuremberg 49 911 64-3044 GERMANY, Sindelfingen 49 7031 69 910 GERMANY, Wiesbaden 49 611 761921 HONG KONG, Kwai Fong 852-4808333 Tai Po 852-6668333 INDIA, Bangalore (91-812)627094 ISRAEL, Tel Aviv 972(3)753-8222 ITALY, Milan 39(2)82201 JAPAN, Aizu 81(241)272231 JAPAN, Atsugi 81(0462)23-0761 JAPAN, Kumagaya 81(0485)26-2600 JAPAN, Kyushu 81(092)771-4212 JAPAN, Mito 81(0292)26-2340 JAPAN, Nagoya 81(052)232-1621 JAPAN, Osaka 81(06)305-1801 JAPAN, Sendai 81(22)268-4333 JAPAN, Tachikawa 81(0425)23-6700 JAPAN, Tokyo 81(03)3440-3311 JAPAN, Yokohama 81(045)472-2751 KOREA, Pusan 82(51)4635-035 KOREA, Seoul 82(2)554-5188 MALAYSIA, Penang 60(4)374514 MEXICO, Mexico City 52(5)282-2864 MEXICO, Guadalajara 52(36)21-8977 Marketing 52(36)21-9023 Customer Service 52(36)669-9160 NETHERLANDS, Best (31)49988 612 11 PUERTO RICO, San Juan (809)793-2170 SINGAPORE (65)2945438 SPAIN, Madrid 34(1)457-8204 or 34(1)457-8254 SWEDEN, Solna 46(8)734-8800 SWITZERLAND, Geneva 41(22)7991111 SWITZERLAND, Zurich 41(1)730 4074 TAlWAN, Taipei 886(2)717-7089 THAILAND, Bangkok (66-2)254-4910 UNITED KINGDOM, Aylesbury 44(296)395-252 FULL LINE REPRESENTATIVES COLORADO, Grand Junction Cheryl Lee Whltely (303) 243-9658 KANSAS, Wichita Melinda Shores/Kelly Greiving (316) 838 0190 NEVADA, Reno Galena Technology Group (702) 746 0642 NEW MEXICO, Albuquerque S&S Technologies, lnc. (505) 298-7177 UTAH, Salt Lake City Utah Component Sales, Inc. (801) 561-5099 WASHINGTON, Spokane Doug Kenley (509) 924-2322 ARGENTINA, Buenos Aires Argonics, S.A. (541) 343-1787 HYBRID COMPONENTS RESELLERS Elmo Semiconductor (818) 768-7400 Minco Technology Labs Inc. (512) 834-2022 Semi Dice Inc. (310) 594-4631 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. PREFACE The EC000 Core Processor User's Manual describes the programming, capabilities, and operation of the SCM68000 (EC000 core); the MC68000 Family Programmer’s Reference Manual provides instruction details for the EC000 core; and the FlexCore Product Brief provides a brief description of the FlexCore program. Freescale Semiconductor, Inc... The organization of this manual is as follows: Section 1 Overview Section 2 Signal Description Section 3 Bus Operation Section 4 Exception Processing Section 5 8-Bit Instruction Execution Times Section 6 16-Bit Instruction Execution Times Section 7 Electrical Characteristics TRADEMARKS • Composer, Verilog, Verifault, and Veritime are trademarks of Cadence Design Systems, Inc. • Synopsys is a registered trademark of Synopsys, Inc. • TDS is a registered trademark of Summit Design, Inc. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com v Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. vi EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. TABLE OF CONTENTS Freescale Semiconductor, Inc... Section 1 Overview 1.1 1.1.1 1.1.2 1.2 1.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.6 FlexCore Integrated Processors ................................................................... 1-2 FlexCore Advantages ................................................................................. 1-4 FlexCore Module Types.............................................................................. 1-4 Development Cycle....................................................................................... 1-5 Programming Model...................................................................................... 1-7 Data Types and Addressing Modes.............................................................. 1-9 Data Organization ....................................................................................... 1-10 Data Registers .......................................................................................... 1-10 Address Registers .................................................................................... 1-10 Data Organization In Memory................................................................... 1-10 Instruction Set Summary............................................................................. 1-11 Section 2 Signal Description 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.5.3 2.6 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 MOTOROLA Address Bus (A31–A0) ................................................................................. 2-1 Data Bus (D15–D0)....................................................................................... 2-1 Clock (CLKI, CLKO)...................................................................................... 2-1 Asynchronous Bus Control ........................................................................... 2-3 Address Strobe (ASB) ................................................................................ 2-3 Read/Write (RWB) and Early Read/Write (ERWB)..................................... 2-3 Upper and Lower Data Strobes (UDSB, LDSB), and Data Strobe (DSB) .. 2-4 Data Transfer Acknowledge (DTACKB) ..................................................... 2-4 Data Transfer Size (SIZ1–SIZ0) ................................................................. 2-4 Read-Modify-Write (RMCB) ........................................................................ 2-5 Bus Arbitration Control.................................................................................. 2-5 Bus Request (BRB) .................................................................................... 2-5 Bus Grant (BGB)......................................................................................... 2-5 Bus Grant Acknowledge (BGACKB)—3-Wire Protocol Only ...................... 2-5 Interrupt Control (IPLB2–IPLB0) ................................................................... 2-5 System Control ............................................................................................. 2-6 Bus Error (BERRB)..................................................................................... 2-6 Reset External/Internal (RESETIB, RESETOB) ......................................... 2-6 Halt External/Internal (HALTIB, HALTOB).................................................. 2-6 Mode (MODE)............................................................................................. 2-7 Disable Control (DISB) ............................................................................... 2-7 Test Mode (TEST) ...................................................................................... 2-7 Test Clock (TESTCLK) ............................................................................... 2-7 Autovector (AVECB) ................................................................................... 2-8 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com vii Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Table of Contents 2.8 2.8.1 2.8.2 2.8.3 2.9 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.10 Three-State Control ...................................................................................... 2-8 Address Output Enable (AOEB) ................................................................. 2-8 Control Output Enable (COEB) .................................................................. 2-8 Data Output Enable (DOEB) ...................................................................... 2-8 Processor Status .......................................................................................... 2-8 Function Codes (FC2–FC0) ....................................................................... 2-8 Address Three-State Control (TSCAE) ...................................................... 2-9 Stop Instruction Indicator (STOP)............................................................... 2-9 Interrupt Pending (IPENDB) ....................................................................... 2-9 CPU Pipe Refill (REFILLB)......................................................................... 2-9 Microsequencer Status Indication (STATUSB) .......................................... 2-9 Multiplexing Pins........................................................................................... 2-9 Section 3 Bus Operation 3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.2.2 3.2.3 3.3 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.5 3.6 3.7 Data Transfer Operations ............................................................................. 3-1 Read Cycle ................................................................................................. 3-2 Write Cycle ................................................................................................. 3-8 Read-Modify-Write Cycle.......................................................................... 3-13 Bus Arbitration ............................................................................................ 3-17 Requesting the Bus .................................................................................. 3-18 Receiving the Bus Grant........................................................................... 3-18 Acknowledgment of Mastership (3-Wire Bus Arbitration Only)................. 3-19 Bus Arbitration Control................................................................................ 3-22 Bus Error and Halt Operation ..................................................................... 3-30 Bus Error Operation.................................................................................. 3-30 Retrying the Bus Cycle ............................................................................. 3-32 Halt Operation .......................................................................................... 3-32 Double Bus Fault ...................................................................................... 3-35 Asynchronous Operation ............................................................................ 3-35 Synchronous Operation .............................................................................. 3-38 The Relationship of DTACKB, BERRB, and HALTIB ................................. 3-42 Section 4 Exception Processing 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.5.1 4.1.5.2 4.2 4.2.1 viii Privilege Modes ............................................................................................ 4-1 Supervisor Mode ........................................................................................ 4-2 User Mode .................................................................................................. 4-2 Privilege Mode Changes ............................................................................ 4-2 Reference Classification............................................................................. 4-3 CPU Space Cycle....................................................................................... 4-3 Interrupt Acknowledge Cycle.................................................................... 4-3 Autovectored Interrupt Acknowledge Cycle ............................................. 4-7 Exception Processing Description .............................................................. 4-11 Exception Vectors..................................................................................... 4-11 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Table of Contents 4.2.2 4.2.3 4.2.4 4.2.5 4.3 4.3.1 4.3.1.1 4.3.1.1.1 4.3.1.1.2 4.3.1.1.3 4.3.1.2 4.3.2 4.3.2.1 4.3.2.2 4.3.2.3 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 Kinds of Exceptions .................................................................................. 4-13 Multiple Exceptions................................................................................... 4-13 Exception Stack Frames........................................................................... 4-14 Exception Processing Sequence .............................................................. 4-14 Processing of Specific Exceptions .............................................................. 4-15 Reset ........................................................................................................ 4-15 Reset Operation ..................................................................................... 4-16 Reset Using RESETIB and HALTIB ..................................................... 4-16 Reset Instruction................................................................................... 4-16 Reset Using Only RESETIB ................................................................. 4-17 Initializing the SCM68000 for Simulation ................................................ 4-18 Interrupts................................................................................................... 4-19 Level Seven Interrupts............................................................................ 4-20 Uninitialized Interrupt .............................................................................. 4-20 Spurious Interrupt ................................................................................... 4-20 Instruction Traps ....................................................................................... 4-21 Illegal and Unimplemented Instructions.................................................... 4-21 Privilege Violations ................................................................................... 4-21 Tracing...................................................................................................... 4-22 Bus Error................................................................................................... 4-22 Address Error............................................................................................ 4-23 Section 5 8-Bit Instruction Execution Times 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 Operand Effective Address Calculation Times ............................................. 5-1 MOVE Instruction Execution Times .............................................................. 5-2 Standard Instruction Execution Times .......................................................... 5-3 Immediate Instruction Execution Times ........................................................ 5-4 Single Operand Instruction Execution Times................................................ 5-5 Shift/Rotate Instruction Execution Times ...................................................... 5-6 Bit Manipulation Instruction Execution Timess ............................................. 5-6 Conditional Instruction Execution Times....................................................... 5-6 JMP, JSR, LEA, PEA, and MOVEM Instruction Execution Times ................ 5-7 Multiprecision Instruction Execution Times................................................... 5-7 Miscellaneaous Instruction Execution Times ................................................ 5-8 Exception Processing Execution Times........................................................ 5-9 Section 6 16-Bit Instruction Execution Times 6.1 6.2 6.3 6.4 6.5 6.6 MOTOROLA Operand Effective Address Calculation Times ............................................. 6-1 MOVE Instruction Execution Times .............................................................. 6-2 Standard Instruction Execution Times .......................................................... 6-3 Immediate Instruction Execution Times ........................................................ 6-4 Single Operand Instruction Execution Times................................................ 6-5 Shift/Rotate Instruction Execution Times ...................................................... 6-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com ix Freescale Semiconductor, Inc. Table of Contents 6.7 6.8 6.9 6.10 6.11 6.12 Bit Manipulation Instruction Execution Times ............................................... 6-6 Conditional Instruction Execution Times....................................................... 6-7 JMP, JSR, LEA, PEA, and MOVEM Instruction Execution Times ................ 6-7 Multiprecision Instruction Execution Times................................................... 6-7 Miscellaneous Instruction Execution Times.................................................. 6-8 Exception Processing Execution Times........................................................ 6-9 Freescale Semiconductor, Inc... Section 7 Electrical Characteristics 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 x Maximum Ratings ......................................................................................... 7-1 CMOS Considerations .................................................................................. 7-1 Power Consumption ..................................................................................... 7-1 AC Electrical Specification Definitions .......................................................... 7-1 AC Electrical Specifications—Clock Timing.................................................. 7-2 AC Electrical Specifications—Read and Write Cycles.................................. 7-2 AC Electrical Specifications—SCM68000 to External Peripherals ............... 7-6 AC Electrical Specifications—Bus Arbitration............................................... 7-7 AC Electrical Specifications—Core Applications Signals ........................... 7-11 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... LIST OF ILLUSTRATIONS 1-1 1-2 1-3 1-4 1-5 1-6 2-1 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 3-11 3-12 3-13 3-14 3-15 3-16 3-17 3-18 3-19 3-20 3-21 3-22 3-23 3-24 3-25 3-26 3-27 3-28 3-29 3-30 3-31 3-32 FlexCore Integrated Processor Typical Die Layout............................................ 1-3 Standard Cell Design Flow................................................................................. 1-6 Programming Model ........................................................................................... 1-7 Status Register................................................................................................... 1-8 Word Organization in Memory.......................................................................... 1-10 Data Organization in Memory........................................................................... 1-12 Input/Output Signals........................................................................................... 2-2 Word Read Cycle Flowchart for 16-Bit Mode ..................................................... 3-2 Byte Read Cycle Flowchart for 8-Bit Mode ........................................................ 3-3 Byte Read Cycle Flowchart for 16-Bit Mode ...................................................... 3-3 Read and Write Cycle Timing Diagram for 8-Bit Mode ...................................... 3-4 Read and Write Cycle Timing Diagram for 16-Bit Mode .................................... 3-5 Word and Byte Read Cycle Timing Diagram for 16-Bit Mode ............................ 3-6 Word Write Cycle Flowchart for 16-Bit Mode ..................................................... 3-8 Byte Write Cycle Flowchart for 8-Bit Mode......................................................... 3-9 Byte Write Cycle Flowchart for 16-Bit Mode....................................................... 3-9 Write Cycle Timing Diagram for 8-Bit Mode ..................................................... 3-10 Word and Byte Write Cycle Timing Diagram for 16-Bit Mode .......................... 3-11 Read-Modify-Write Cycle Flowchart................................................................. 3-13 Read-Modify-Write Cycle Timing Diagram ....................................................... 3-14 3-Wire Bus Arbitration Cycle Flowchart............................................................ 3-18 2-Wire Bus Arbitration Cycle Flowchart............................................................ 3-19 3-Wire Bus Arbitration Timing Diagram............................................................ 3-20 2-Wire Bus Arbitration Timing Diagram............................................................ 3-21 Bus Arbitration Unit State Diagrams................................................................. 3-23 3-Wire Bus Arbitration Timing Diagram—SCM68000 Active ........................... 3-24 3-Wire Bus Arbitration Timing Diagram—Bus Inactive..................................... 3-25 3-Wire Bus Arbitration Timing Diagram—Special Case ................................... 3-26 2-Wire Bus Arbitration Timing Diagram—SCM68000 Active ........................... 3-27 2-Wire Bus Arbitration Timing Diagram—Bus Inactive..................................... 3-28 2-Wire Bus Arbitration Timing Diagram—Special Case ................................... 3-29 Bus Error Timing Diagram................................................................................ 3-31 Retry Bus Cycle Timing Diagram ..................................................................... 3-33 Halt Operation Timing Diagram........................................................................ 3-34 External Asynchronous Signal Synchronization............................................... 3-35 Fully Asynchronous Read Cycle ...................................................................... 3-36 Fully Asynchronous Write Cycle....................................................................... 3-36 Pseudo-Asynchronous Read Cycle.................................................................. 3-37 Pseudo-Asynchronous Write Cycle.................................................................. 3-38 MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com xi Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... List of Illustrations 3-33 3-34 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 4-11 4-12 4-13 4-14 7-1 7-2 7-3 7-4 7-5 7-6 7-7 7-8 7-9 xii Synchronous Read Cycle................................................................................. 3-39 Synchronous Write Cycle................................................................................. 3-40 CPU Space Address Encoding .......................................................................... 4-3 Interrupt Acknowledge Cycle Timing Diagram ................................................... 4-4 Autovector Operation Timing Diagram............................................................... 4-8 Autovector Operation Timing Diagram—Best Case........................................... 4-9 Autovector Operation Timing Diagram—Worst Case ...................................... 4-10 Exception Vector Format.................................................................................. 4-11 Address Translated from 8-Bit Vector Number ................................................ 4-11 Interrupt Vector Number Format ...................................................................... 4-13 Groups 1 and 2 Exception Stack Frame .......................................................... 4-15 Reset Circuit..................................................................................................... 4-16 Reset Operation Timing Diagram..................................................................... 4-17 RESETOB Timing Diagram.............................................................................. 4-18 Initialization of the SCM68000 for Simulation Timing Diagram ........................ 4-19 Supervisor Stack Order for Bus or Address Error Exception ........................... 4-23 Clock Input Timing Diagram............................................................................... 7-2 Read Cycle Timing Diagram .............................................................................. 7-4 Write Cycle Timing Diagram .............................................................................. 7-5 SCM68000 to External Peripherals Timing Diagram ......................................... 7-6 Bus Arbitration Timing Diagram ......................................................................... 7-7 Bus Arbitration Timing Diagram—Idle Bus Case ............................................... 7-8 Bus Arbitration Timing Diagram—Active Bus Case ........................................... 7-9 Bus Arbitration Timing Diagram—Multiple Bus Request.................................. 7-10 Core Application Signals Timing Diagram........................................................ 7-12 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... LIST OF TABLES 1-1 1-2 1-3 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 3-1 3-2 4-1 4-2 4-3 5-1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 6-1 6-2 6-3 6-4 6-5 6-6 6-7 6-8 6-9 Data Addressing Modes ..................................................................................... 1-9 Notational Conventions .................................................................................... 1-13 Instruction Set Summary .................................................................................. 1-14 Signal Summary ................................................................................................. 2-2 Upper and Lower Data Strobe Control of Data Bus ........................................... 2-4 Lower Data Strobe Control of Data Bus ............................................................. 2-4 Data Transfer Size ............................................................................................. 2-5 Interrupt Levels and Mask Values ...................................................................... 2-6 Function Code Outputs ...................................................................................... 2-8 Status Indication Exceptions .............................................................................. 2-9 Pin Multiplexing Priority .................................................................................... 2-10 DTACKB, BERRB, and HALTIB Assertion Results.......................................... 3-43 BERRB and HALTIB Negation Results ............................................................ 3-44 Reference Classification..................................................................................... 4-3 Exception Vector Assignment .......................................................................... 4-12 Exception Grouping and Priority....................................................................... 4-14 Effective Address Calculation Times.................................................................. 5-2 Move Byte Instruction Execution Times ............................................................. 5-2 Move Word Instruction Execution Times............................................................ 5-3 Move Long Instruction Execution Times ............................................................ 5-3 Standard Instruction Execution Times................................................................ 5-4 Immediate Instruction Execution Times ............................................................. 5-5 Single Operand Instruction Execution Times ..................................................... 5-5 Shift/Rotate Instruction Execution Times ........................................................... 5-6 Bit Manipulation Instruction Execution Times..................................................... 5-6 Conditional Instruction Execution Times ............................................................ 5-7 JMP, JSR, LEA, PEA, and MOVEM Instruction Execution Times...................... 5-7 Multiprecision Instruction Execution Times ........................................................ 5-8 Miscellaneous Instruction Execution Times ....................................................... 5-8 Move Peripheral Instruction Execution Times .................................................... 5-9 Exception Processing Execution Times ............................................................. 5-9 Effective Address Calculation Times.................................................................. 6-2 Move Byte and Word Instruction Execution Times............................................. 6-2 Move Long Instruction Execution Times ............................................................ 6-3 Standard Instruction Execution Times................................................................ 6-4 Immediate Instruction Execution Times ............................................................. 6-5 Single Operand Instruction Execution Times ..................................................... 6-5 Shift/Rotate Instruction Execution Times ........................................................... 6-6 Bit Manipulation Instruction Execution Times..................................................... 6-6 Conditional Instruction Execution Times ............................................................ 6-7 MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com xiii Freescale Semiconductor, Inc. List of Tables JMP, JSR, LEA, PEA, and MOVEM Instruction Execution Times ..................... 6-7 Multiprecision Instruction Execution Times ........................................................ 6-8 Miscellaneous Instruction Execution Times ....................................................... 6-8 Move Peripheral Instruction Execution Times.................................................... 6-9 Exception Processing Execution Times ............................................................. 6-9 Freescale Semiconductor, Inc... 6-10 6-11 6-12 6-13 6-14 xiv EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... SECTION 1 OVERVIEW This document contains a summary of the use and operation of the SCM68000 microprocessor core (also referred to as the EC000 core)1 and a detailed set of timing and electrical specifications. Refer to the M68000 8-/16-/32-Bit Microprocessor User’s Manual (M68000UM/AD) for detailed information on the operation of the instruction set, addressing modes, and bus architecture for this core. The SCM68000 is a core implementation of the MC68000 32-bit microprocessor and is designed to be used as part of the FlexCore Program. In the FlexCore program, high-volume manufacturers can create their own integrated microprocessor containing a core processor, such as the SCM68000, and their own proprietary technology. A FlexCore integrated processor allows significant reductions in component count, power consumption, board space, and cost while yielding much higher system reliability and performance. The main features of the SCM68000 include: • Low-Power HCMOS Implementation Requires Only 15 mA at 3.3 V • 32-Bit Performance for 16-Bit Applications—2.7 MIPS at 16 MHz • Statically Selectable 8-Bit or 16-Bit Data Bus Operation • 32-Bit Address Bus Directly Addresses up to 4 Gbytes of Address Space • Static Operation Provides Almost Zero Power Consumption During Idle Periods • Sixteen General-Purpose 32-Bit Data and Address Registers • Fifty-Six Powerful Instruction Types That Support High-Level Programming Languages • Fourteen Addressing Modes and Five Main Data Types Allow Compact, Efficient Code • Seven Priority Level Interrupt Control • Special Core Interfacing Signals • Emulation Support Signals Including Pipeline Refill, Processor Status, and Interrupt Pending Signals • Both 3.3-V and 5-V Operation The SCM68000 has a statically selectable 8-bit or 16-bit data bus. The address bus is 32bits wide and may be used as either a 24-bit address bus as on the MC68000 microprocessors, or as a 32-bit address bus to fully support the internal architecture. The 32-bit address 1. The SCM68000 is the name of the Verilog model for the EC000 core. The remainder of this section will refer to the EC000 core as only the SCM68000. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 1-1 Overview Freescale Semiconductor, Inc. bus allows direct addressing of up to 4 Gbytes. Logic can be added to implement dynamic bus sizing. The SCM68000 is upward code compatible with all other members of the M68000 microprocessor family. Any user-mode programs using the SCM68000 instruction set will run unchanged on any MC680x0, MC68EC0x0, or MC683xx processor. This is possible because the user programming model is identical for all processors and the instruction sets, addressing modes, and data types for the SCM68000 are proper subsets of the complete architecture. Freescale Semiconductor, Inc... The SCM68000 also includes some functions not found on the standard MC68000 and MC68EC000 microprocessors such as the processor status, pipeline refill, and interrupt pending signals. These signals permit emulation support and facilitate interfacing between the SCM68000 and on-chip logic. 1.1 FLEXCORE INTEGRATED PROCESSORS FlexCore allows designers of high-volume digital systems and third-party technology providers to place their proprietary circuitry on chip with a Motorola microprocessor. By using FlexCore, a designer can reduce the total system cost, component count, and power consumption while providing higher performance and greater reliability. Up to 100,000 gates or more of custom logic, memory, and peripheral modules can be added to a core processor to produce the most cost-effective solution for a designer's system. The core processors provide special power-management features such as 5 V, 3.3 V, and static operation. The 68000 Family of core processors offers the designer a range of performance from 3 to 12 million instructions per second (MIPS) (to be extended to 100 MIPS) while maintaining complete code compatibility throughout the Family. The 68000 processors have a proven architecture with a broad base of application and system software support, including real-time kernels, operating systems, and compilers, in addition to a wide range of tools to support software development. In the future, additional processing architectures will be included in the FlexCore program, including PowerPC and digital signal processing (DSP). Figure 11 shows a typical die layout for a FlexCore integrated processor. Complete product lines can be created using FlexCore by implementing one base design using a variety of core processors. Designers already familiar with 68000 Family design can easily migrate to FlexCore processors as the core processors use the same bus interfaces found on the standard 68000 Family members. Additionally, many peripheral modules and memory elements are available for integration. Motorola has developed a complete design system to put into the hands of the customer that includes both a broad cell-based library and effective computer-aided design (CAD) tools. By building on Motorola's proven 68000 microprocessor architecture and superior manufacturing capabilities, FlexCore offers designers the best path to higher system integration. 1-2 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CUSTOMER-DESIGNED LOGIC Freescale Semiconductor, Inc... SPECIAL-FUNCTION BLOCK/ MEMORY BLOCK Overview SPECIAL-FUNCTION BLOCK/ MEMORY BLOCK 68000 FAMILY PROCESSOR Figure 1-1. FlexCore Integrated Processor Typical Die Layout FlexCore custom processors are ideal for: • High-volume users of 8-, 16-, and 32-bit integrated solutions requiring higher system performance whose needs are not met by standard 68300 Family devices. • Designers of high-volume applications who need to reduce cost, space, and/or power consumption. • Third-party technology providers who want to deliver their proprietary application-specific technology to a worldwide marketplace. To develop a solution that best suits system requirements in the shortest time frame, integrated processor design is performed by the designer using a methodology created, tested, and documented by Motorola. The resulting netlist is then laid out by Motorola, verified, and fabricated in silicon. This enables FlexCore integrated processors to be produced quickly and cost-effectively, with the resulting device containing all features needed for the system. To implement the application-specific logic, the designer uses Motorola's standard cell library. This library offers an extensive range of design elements, memory configurations, and an expanding array of peripheral modules. Each cell in the library has been designed for optimum size and performance. The added flexibility of high-speed, high-density cells allows the designer to achieve the most cost-effective solution while satisfying critical timing requirements. The standard cell library has been thoroughly characterized and maintained to ensure a smooth transition from a simulated design to working silicon. A custom part may also become a standard product if both Motorola and the customer desire to do so. Standard products are sold on the open market, allowing costs to be spread over additional units, resulting in lower component prices for high-volume users. Third-party technology providers can use the same methodology to combine their application-specific systems expertise with a core processor. The resulting device is manufactured by Motorola and can be delivered to the marketplace through either the technologist’s or Motorola’s marketing and sales channels. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 1-3 Overview Freescale Semiconductor, Inc. 1.1.1 FlexCore Advantages Freescale Semiconductor, Inc... Developers face tough challenges in reducing product cost. By incorporating user-designed logic and Motorola-supplied functions into a single FlexCore processor, a system designer can realize significant savings in cost, power consumption, board space, and pin count. The equivalent functionality can easily require 20 separate components. Each component might have 16–64 pins, totaling over 350 connections. Each connection is a candidate for a bad solder joint or misrouted trace. Each component is another part to qualify, purchase, inventory, and maintain. Each component requires a share of the printed circuit board. Each component draws power—often to drive large buffers and circuit board traces to get signals to another chip. Each component must be individually placed and attached to a printed circuit board. The signals between the core processor unit and a peripheral might not be compatible nor run from the same clock, requiring time delays or other special design considerations. In a FlexCore integrated processor, the major functions and glue logic are all properly connected internally, timed with the same clock, and fully tested. Only essential signals are brought out to pins. The processor is assembled in a surface-mount package for the smallest possible footprint. 1.1.2 FlexCore Module Types The three types of FlexCore modules are: • Hard Module —Not alterable —Laid out —Has a tech file —Has a defined test scheme • Soft Module —Netlist —Not alterable other than by clock tree insertion —Not laid out —Has a defined test scheme —Simulation test fixture • Parameterizable —Alterable via insertion of predefined parameters —Behavioral model —Definition of parameters defines test scheme —Customer selects parameter values and Motorola synthesizes the design The SCM68000 core processor is available as a hard module. 1-4 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Overview 1.2 DEVELOPMENT CYCLE There are several steps that must be followed in order to create a FlexCore integrated microprocessor with an SCM68000. Figure 1-2 illustrates the standard cell design flow and the tools required to complete each step. These steps include: • Convert Design to Standard Cells Design—Begin by implementing the required system functions with an SCM68000, peripherals, memory blocks, and cells from the Motorola standard cell library. • Capture Design on Workstation—Use the engineering workstation to capture the logic schematic of cells and their interconnections. Freescale Semiconductor, Inc... • Logic Synthesis—The structural level description of the design is mapped to a more efficient structural description, which is accomplished by converting the Boolean equations for the design to a two-level sum of products representation and minimized. • Generate Test Patterns—The stimulus and test patterns for the design are generated for the functional simulation. • Functional Simulation—Ensure that the logic of the schematic is functionally sound by using Verilog, the encrypted C models and synthesis models provided by Motorola. No timing information is yet associated with the simulations, and all propagation delays are preset to 1 ns. • Calculate Node Delays— Motorola software (mdaDecal) calculates the estimated propagation delays of each node in the circuit. The design software estimates delays based on the fanout, drive characteristics, and estimated interconnect capacitances of the netlist and reveals potential timing problems. • Path Delay Analysis—With path delay information from the Veritime software, the delays between the clocked elements of the circuit can be determined, and the critical paths that limit the clock rate can be identified. Checking for setup, hold, and pulsewidth violations can also be accomplished. • Perform Real-Time Simulation—The real-time simulation is run to verify full functionality using the estimated propagation delays calculated by the design tools. • Extract Test Vectors—The simulator records the input/output patterns generated during the real-time simulation. The test vectors that Motorola will use to test the prototypes are derived from these patterns. • Automatic Place & Route—The circuit’s physical layout is created from the netlist using automatic place and route software. • Interconnect Analysis—After the cells are placed and routed, the interconnect capacitances are extracted. These capacitances replace those estimated earlier during the calculation of the node delays. • Re-Simulate—The circuit is re-simulated with Verilog to ensure no problems have arisen due to a change in load conditions. If changes have occurred or the simulation is different in any way, the test vectors must also be extracted again. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 1-5 Overview Freescale Semiconductor, Inc. ENCRYPTED C MODULES SYNTHESIS MODULES GENERATE TEST PATTERNS (STL/SYNOPSYS) CONVERT DESIGN TO STANDARD CELLS LOGIC SYNTHESIS (SYNOPSYS) CAPTURE DESIGN ON WORKSTATION (COMPOSER, VERILOG HDL, VHDL) Freescale Semiconductor, Inc... FUNCTIONAL SIMULATION (VERILOG) CALCULATE NODE DELAYS (mdaDECAL) PATH DELAY ANALYSIS (VERITIME) PERFORM FAULT GRADING (VERIFAULT) PERFORM REAL-TIME SIMULATION (VERILOG) EXTRACT TEST VECTORS (Summit Design) AUTOMATIC PLACE & ROUTE INTERCONNECT ANALYSIS (mdaDECAL) NETLIST COMPARISON (LVS) RE-SIMULATE (VERILOG) PATTERN, MASK AND WAFER GENERATION ASSEMBLY / TEST SHIP TESTED PROTOTYPES MOTOROLA FINAL TEST PROGRAM CUSTOMER Figure 1-2. Standard Cell Design Flow 1-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Overview 1.3 PROGRAMMING MODEL The SCM68000 programming model is illustrated in Figure 1-3. It is separated into two modes of access: user and supervisor. The user mode provides the execution environment for the majority of application programs. The supervisor mode, which allows some additional instructions and privileges, is used by the operating system and other system software. Detailed information about the programming model can be found in the M68000 Family Programmer's Reference Manual (M68000PM/AD). 31 16 15 8 7 0 D0 D1 Freescale Semiconductor, Inc... D2 D3 EIGHT DATA REGISTERS D4 D5 D6 D7 31 16 15 0 A0 A1 A2 SEVEN ADDRESS REGISTERS A3 A4 A5 A6 A7 USER STACK (USP) POINTER 31 0 7 PC PROGRAM COUNTER CCR CONDITION CODE REGISTER 0 (a) USER PROGRAMMING MODEL 31 16 15 0 A7' SUPERVISOR STACK (SSP) POINTER 15 8 7 0 CCR SR STATUS REGISTER (b) SUPERVISOR PROGRAMMING MODEL Figure 1-3. Programming Model MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 1-7 Freescale Semiconductor, Inc. Overview Freescale Semiconductor, Inc... The user mode (see Figure 1-3(a)) provides access to 16 32-bit general-purpose registers (D0–D7, A0–A7), a 32-bit program counter, and an 8-bit condition code register. The first eight registers (D0–D7) are used as data registers for byte (8-bit), word (16-bit), and longword (32-bit) operations. The second set of seven registers (A0–A6) and the user stack pointer (A7/USP) can be used as software stack pointers and base address registers. In addition, the address registers can be used for word and long-word operations. All of the 16 registers can be used as index registers. The supervisor mode (see Figure 1-3(b)) provides access to two supplementary registers, the status register (high-order byte) and the supervisor stack pointer (A7'/SSP). The status register (SR) (see Figure 1-4) contains the interrupt mask (eight levels available) and the following condition codes: overflow (V), zero (Z), negative (N), carry (C), and extend (X). Additional status bits indicate whether the SCM68000 is in the trace (T) mode and/or in the supervisor (S) state. Bits 5, 6, 7, 11, 12, and 14 are undefined and reserved for future expansion. SYSTEM BYTE 15 13 T S 10 8 I2 I1 I0 USER BYTE 4 X 0 N Z V TRACE MODE C EXTEND NEGATIVE ZERO OVERFLOW CARRY SUPERVISOR STATE INTERRUPT MASK CONDITION CODES Figure 1-4. Status Register 1-8 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Overview 1.4 DATA TYPES AND ADDRESSING MODES Detailed information about the data types and addressing modes can be found in the M68000 Family Programmer's Reference Manual (M68000PM/AD). The SCM68000 supports the five basic data types of the M68000 family: 1. Bit 2. Binary-Coded-Decimal (BCD) Digit (4 Bits) 3. Byte (8 Bits) 4. Word (16 Bits) 5. Long Word (32 Bits) Freescale Semiconductor, Inc... In addition, the instruction set supports operations on other data formats such as memory addresses, status word, data, etc. The SCM68000 also supports the basic addressing modes of the M68000 family. The register indirect addressing modes support postincrementing, predecrementing, offsetting, and indexing capabilities. The program counter relative mode also supports indexing and offsetting. Table 1-1 lists a summary of the data addressing modes for the SCM68000. Table 1-1. Data Addressing Modes Generation Syntax Addressing Modes Register Direct Addressing Data Register Direct Address Register Direct Absolute Data Addressing Absolute Short Absolute Long EA = Dn EA = An Dn An EA = (Next Word) EA = (Next Two Words) (xxx).W (xxx).L Program Counter Relative Addressing Relative with Offset Relative with Index and Offset EA = (PC) + d16 EA = (PC) + d8 (d16,PC) (d8,PC,Xn) Register Indirect Addressing Register Indirect Postincrement Register Indirect Predecrement Register Indirect Register Indirect with Offset Indexed Register Indirect with Offset EA = (An) EA = (An), An ← An + N An ← An – N, EA = (An) EA = (An) + d16 EA = (An) + (Xn) + d8 (An) (An)+ –(An) (d16,An) (d8,An,Xn) Immediate Data Addressing Immediate DATA = Next Word(s) #<data> Quick Immediate Inherent Data Implied Addressing Implied Register EA = SR, USP, SSP, PC SR, USP, SSP, PC NOTES: EA = Effective Address Dn = Data Register An = Address Register ( ) = Contents of PC = Program Counter d8 = 8-Bit Offset (Displacement) d16 = 16-Bit Offset (Displacement) N = 1 for byte, 2 for word, and 4 for long word. If An is the stack pointer and the operand size is byte, N = 2 to keep the stack pointer on a word boundary. ← = Replaces Xn = Address or Data Register Used as Index Register SR = Status Register USP = User Stack Pointer SSP = Supervisor Stack Pointer (xxx) = Absolute Address MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 1-9 Overview Freescale Semiconductor, Inc. 1.5 DATA ORGANIZATION The eight data registers support data operands of 1, 8, 16, or 32 bits. The seven address registers and the active stack pointer support address operands of 32 bits. 1.5.1 Data Registers Each data register is 32 bits wide. Byte operands occupy the low-order 8 bits, word operands, the low-order 16 bits, and long-word operands, the entire 32 bits. The least significant bit is addressed as bit zero; the most significant bit is addressed as bit 31. Freescale Semiconductor, Inc... When a data register is used as either a source or a destination operand, only the appropriate low-order portion is changed; the remaining high-order portion is neither used nor changed. For example, if 8 bits are to be moved into a data register, bits 0 through 7 will be modified and bits 8 through 31 will not be changed. 1.5.2 Address Registers Each address register (and the stack pointer) is 32 bits wide and holds a full 32-bit address. Address registers do not support byte-sized operands. Therefore, when an address register is used as a source operand, either the low-order word or the entire long-word operand is used, depending upon the operation size. When an address register is used as the destination operand, the entire register is affected, regardless of the operation size. If the operation size is word, operands are sign-extended to 32 bits before the operation is performed. 1.5.3 Data Organization In Memory Bytes are individually addressable. As shown in Figure 1-5, the high-order byte of a word has the same address as the word. The low-order byte has an odd address, one count higher. Instructions and multibyte data are accessed only on word (even byte) boundaries. If a long-word operand is located at address n (n even), then the second word of that operand is located at address n+2. 15 14 13 12 11 10 9 ADDRESS $000000 8 7 6 5 4 3 2 1 0 WORD 0 BYTE 000000 BYTE 000001 WORD 1 $000002 BYTE 000002 BYTE 000003 WORD 7FFFFF $FFFFFE BYTE FFFFFE BYTE FFFFFF Figure 1-5. Word Organization in Memory 1-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Overview The data types supported by the SCM68000 are bit data, integer data of 8, 16, and 32 bits, 32-bit addresses, and binary-coded-decimal data. Each data type is stored in memory as shown in Figure 1-6. 1.6 INSTRUCTION SET SUMMARY Freescale Semiconductor, Inc... Table 1-2 lists the notational conventions used throughout this manual unless otherwise specified. Table 1-3 lists the SCM68000 instruction set by opcode. In the syntax descriptions, the left operand is the source operand, and the right operand is the destination operand. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 1-11 Freescale Semiconductor, Inc. Overview BIT DATA: 7 6 5 6 5 1 BYTE = 8 BITS 4 3 2 1 0 2 1 0 INTEGER DATA: 15 n 14 13 10 9 1 BYTE = 8 BITS 8 7 LSB BYTE 2 15 Freescale Semiconductor, Inc... 11 BYTE 0 MSB n+2 n 12 14 13 12 11 10 9 MSB 1 WORD = 16 BITS 8 7 6 WORD 1 n+4 WORD 2 n 3 BYTE 1 n+1 BYTE 3 n+3 4 3 2 1 14 13 12 11 10 1 LONG WORD = 32 BITS 9 8 7 6 MSB 5 4 3 2 1 HIGH ORDER LONG WORD 0 LOW ORDER n+2 0 LSB WORD 0 n+2 15 5 4 0 LSB n+4 LONG WORD 1 n+6 n+8 LONG WORD 2 n + 10 ADDRESSES: 15 n 14 1 ADDRESS = 32 BITS 13 12 11 10 MSB 9 8 7 6 5 4 3 2 1 HIGH ORDER ADDRESS 0 LOW ORDER n+2 0 LSB n+4 ADDRESS 1 n+6 n+8 ADDRESS 2 n + 10 MSB = MOST SIGNIFICANT BIT LSB = LEAST SIGNIFICANT BIT DECIMAL DATA: 15 MSD 14 13 12 11 2 BINARY CODED DECIMAL DIGITS = 1 BYTE 10 9 8 7 6 5 BCD 0 BCD 1 BCD 4 BCD 5 LSD 4 3 2 1 BCD 2 BCD 3 BCD 6 BCD 7 0 MSD = MOST SIGNIFICANT DIGIT LSD = LEAST SIGNIFICANT DIGIT Figure 1-6. Data Organization in Memory 1-12 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Overview Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Table 1-2. Notational Conventions ≠ + – × ÷ ~ Λ V ⊕ → ↔ < > <operand> <operand> tested <operand> sign-extended <operand> <operand> shifted by <count> <operand> rotated by <count> bit number of <operand> TRAP STOP <operand>10 If <condition> then <operations> else <operations> An Ax, Ay Dn Dx, Dy Rn Rx, Ry Xn <fmt> #<xxx> or #<data> () [] dn CCR PC SR 1-13 Single- and Double-Operand Operations Not equal. Arithmetic addition or postincrement indicator. Arithmetic subtraction or predecrement indicator. Arithmetic multiplication. Arithmetic division or conjunction symbol. Invert; operand is logically complemented. Logical AND Logical OR Logical exclusive OR Source operand is moved to destination operand. Two operands are exchanged. Relational test; true if source operand is less than destination operand. Relational test; true if source operand is greater than destination operand. Data used as an operand. Operand is compared to zero and the condition codes are set appropriately. All bits of the upper portion are made equal to the high-order bit of the lower portion. The source operand is shifted by the number of count. The source operand is rotated by the number of count. Selects a single bit of the operand. Other Operations 1 → S-bit of SR; SSP – 4 → SSP; PC → (SSP); SSP – 2 → SSP; SR → (SSP); Vector Address → PC Enter the stopped state, waiting for interrupts. The operand is BCD; operations are performed in decimal. Test the condition. If true, the operations after “then” are performed. If the condition is false and the optional “else” clause is present, the operations after “else” are performed. If the condition is false and "else" is omitted, the instruction performs no operation. Refer to the Bcc instruction description as an example. Register Specification Any Address Register n (example: A3 is address register 3) Source and destination address registers, respectively. Any Data Register n (example: D5 is data register 5) Source and destination data registers, respectively. Any Address or Data Register Any source and destination registers, respectively. Index Register—An, Dn, or suppressed. Data Format and Type Operand Data Format: Byte (B), Word (W), Long (L) Subfields and Qualifiers Immediate data following the instruction word(s). Identifies an indirect address in a register. Identifies an indirect address in memory. Displacement Value, n Bits Wide (example: d16 is a 16-bit displacement). Register Names Condition Code Register (lower byte of status register) Program Counter Status Register EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Overview Table 1-2. Notational Conventions (Continued) C cc N U V X Z Freescale Semiconductor, Inc... SP SSP USP Í <label> <list> Register Codes Carry Bit in CCR Condition Codes from CCR Negative Bit in CCR Undefined, Reserved for Motorola Use Overflow Bit in CCR Extend Bit in CCR Zero Bit in CCR Stack Pointers Active Stack Pointer Supervisor (Master or Interrupt) Stack Pointer User Stack Pointer Miscellaneous Effective Address Assembly Program Label List of registers, for example D3–D0. Table 1-3. Instruction Set Summary Opcode Operation ABCD Source10 + Destination10 + X → Destination ADD Source + Destination → Destination ADDA ADDI ADDQ Source + Destination → Destination Immediate Data + Destination → Destination Immediate Data + Destination → Destination ADDX Source + Destination + X → Destination AND Source Λ Destination → Destination ANDI Immediate Data Λ Destination → Destination ANDI to CCR Source Λ CCR → CCR If supervisor state ANDI to SR then Source Λ SR → SR else TRAP to Privilege Violation Trap Syntax ABCD Dy,Dx ABCD –(Ay), –(Ax) ADD <ea>,Dn ADD Dn,<ea> ADDA <ea>,An ADDI # <data>,<ea> ADDQ # <data>,<ea> ADDX Dy, Dx ADDX –(Ay), –(Ax) AND <ea>,Dn AND Dn,<ea> ANDI # <data>, <ea> ANDI # <data>, CCR ANDI # <data>, SR ASL, ASR Destination Shifted by <count> → Destination ASd Dx,Dy ASd # <data>,Dy ASd <ea> Bcc If (condition true) then PC + dn → PC Bcc <label> ~ (<bit number> of Destination) → Z; ~ (<bit number> of Destination) → <bit number> of Destination ~ (<bit number> of Destination) → Z; 0 → <bit number> of Destination Run breakpoint acknowledge cycle; TRAP as illegal instruction PC + dn → PC BCHG Dn,<ea> BCHG # <data>,<ea> BCLR Dn,<ea> BCLR # <data>,<ea> BSET Dn,<ea> BSET # <data>,<ea> BSR ~ (<bit number> of Destination) → Z; 1 → <bit number> of Destination SP – 4 → SP; PC → (SP); PC + dn → PC BTST ~ (<bit number> of Destination) → Z; BCHG BCLR BKPT BRA BSET CHK CLR CMP 1-14 BKPT # <data> BRA <label> BSR <label> BTST Dn,<ea> BTST # <data>,<ea> If Dn < 0 or Dn > Source then TRAP to CHK Instruction Vector CHK <ea>,Dn 0 → Destination CLR <ea> Destination – Source → cc CMP <ea>,Dn EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Overview Table 1-3. Instruction Set Summary (Continued) CMPA CMPI CMPM DBcc DIVS DIVU EOR EORI EORI to CCR Freescale Semiconductor, Inc... EORI to SR Destination – Source → cc Destination – Immediate Data → cc Destination – Source → cc If condition false then (Dn – 1 → Dn; If Dn ≠ –1 then PC + dn → PC) CMPA <ea>,An CMPI # <data>,<ea> CMPM (Ay)+, (Ax)+ Destination ÷ Source → Destination Destination ÷ Source → Destination Source ⊕ Destination → Destination Immediate Data ⊕ Destination → Destination Source ⊕ CCR → CCR If supervisor state then Source ⊕SR → SR else TRAP to Privilege Violation Trap DIVS.W <ea>,Dn32/16 → 16r:16q DIVU.W <ea>,Dn32/16 → 16r:16q EOR Dn,<ea> EORI # <data>,<ea> EORI # <data>,CCR EXG Rx ↔ Ry EXT Destination Sign-Extended → Destination ILLEGAL JMP JSR LEA LINK SSP – 4 → SSP; PC → (SSP); SSP – 2 → SSP; SR → (SSP); Illegal Instruction Vector Address → PC Destination Address → PC SP – 4 → SP; PC → (SP) Destination Address → PC <ea> → An SP – 4 → SP; An → (SP) SP → An, SP + dn → SP DBcc Dn,<label> EORI # <data>,SR EXG Dx,Dy EXG Ax,Ay EXG Dx,Ay EXG Ay,Dx EXT.W Dnextend byte to word EXT.L Dnextend word to long word ILLEGAL JMP <ea> JSR <ea> LEA <ea>,An LINK An, # <displacement> LSL,LSR Destination Shifted by <count> → Destination MOVE MOVEA MOVE to CCR MOVE from SR Source → Destination Source → Destination LSd Dx,Dy LSd # <data>,Dy LSd Í MOVE <ea>,<ea> MOVEA <ea>,An Source → CCR MOVE <ea>,CCR SR → Destination MOVE SR,<ea> MOVE to SR MOVE USP MOVEM If supervisor state then Source → SR else TRAP to Privilege Violation Trap If supervisor state then USP → An or An → USP else TRAP to Privilege Violation Trap Registers → Destination; Source → Registers MOVEP Source → Destination MOVEQ MULS MULU NBCD Immediate Data → Destination Source × Destination → Destination Source × Destination → Destination 0 – (Destination10) – X → Destination NEG NEGX NOP NOT 0 – (Destination) → Destination 0 – (Destination) – X → Destination None ~Destination → Destination OR Source V Destination → Destination 1-15 MOVE <ea>,SR MOVE USP,An MOVE An,USP MOVEM <list>,<ea> MOVEM <ea>,<list> MOVEP Dx,(d16,Ay) MOVEP (d16,Ay),Dx MOVEQ # <data>,Dn MULS.W <ea>,Dn16 x 16 → 32 MULU.W <ea>,Dn16 x 16 → 32 NBCD <ea> NEG <ea> NEGX <ea> NOP NOT <ea> OR <ea>,Dn OR Dn,<ea> EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Overview Freescale Semiconductor, Inc. Table 1-3. Instruction Set Summary (Continued) ORI ORI to CCR ORI to SR PEA Freescale Semiconductor, Inc... RESET Immediate Data V Destination → Destination Source V CCR → CCR If supervisor state then Source V SR → SR else TRAP to Privilege Violation Trap Sp – 4 → SP; <ea> → (SP) If supervisor state then Assert RESETOB Line else TRAP to Privilege Violation Trap ROL, ROR Destination Rotated by <count> → Destination ROXL, ROXR Destination Rotated with X by <count> → Destination RTS If supervisor state then (SP) → SR; SP + 2 → SP; (SP) → PC; SP + 4 → SP; restore state and deallocate stack according to (SP) else TRAP to Privilege Violation Trap (SP) → CCR; SP + 2 → SP; (SP) → PC; SP + 4 → SP (SP) → PC; SP + 4 → SP SBCD Destination10 – Source10 – X → Destination RTE RTR Scc STOP If condition true then 1s → Destination else 0s → Destination If supervisor state then Immediate Data → SR; STOP else TRAP to Privilege Violation Trap SUB Destination – Source → Destination SUBA SUBI SUBQ Destination – Source → Destination Destination – Immediate Data → Destination Destination – Immediate Data → Destination SUBX Destination – Source – X → Destination Register [31:16] ↔ Register [15:0] Destination Tested → Condition Codes; 1 → bit 7 of TAS Destination 1 → S-bit of SR; TRAP SSP – 4 → SSP; PC → (SSP); SSP – 2 → SSP; SR → (SSP); Vector Address → PC TRAPV If V then TRAP to TRAPV Instruciton Vector TST Destination Tested → Condition Codes UNLK An → SP; (SP) → An; SP + 4 → SP NOTE: d is direction, L or R. SWAP 1-16 ORI # <data>,<ea> ORI # <data>,CCR ORI # <data>,SR PEA <ea> RESET ROd Dx,Dy ROd # <data>,Dy ROd Í ROXd Dx,Dy ROXd # <data>,Dy ROXd Í RTE RTR RTS SBCD Dx,Dy SBCD –(Ax),–(Ay) Scc <ea> STOP # <data> SUB <ea>,Dn SUB Dn,<ea> SUBA <ea>,An SUBI # <data>,<ea> SUBQ # <data>,<ea> SUBX Dx,Dy SUBX –(Ax),–(Ay) SWAP Dn TAS <ea> TRAP # <vector> TRAPV TST <ea> UNLK An EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... SECTION 2 SIGNAL DESCRIPTION This section contains descriptions of the SCM68000 (EC000 core)1 input and output signals. The input and output signals are shown in Figure 2-1. Table 2-1 lists the pins, signal names, type, and whether they are three-stateable. The following paragraphs provide brief descriptions of the signals and references (where applicable) to other paragraphs that contain more information about the signals. NOTE The terms assertion and negation are used extensively in this manual to avoid confusion when describing a mixture of "activelow" and "active-high" signals. The term assert or assertion is used to indicate that a signal is active or true, independently of whether that level is represented by a high or low voltage. The term negate or negation is used to indicate that a signal is inactive or false. 2.1 ADDRESS BUS (A31–A0) This 32-bit, unidirectional, three-state bus is capable of addressing 4 Gbytes of address space. This bus provides the address for bus operation during all cycles except interrupt acknowledge cycles. During interrupt acknowledge cycles, address lines A1, A2, and A3 provide the level number of the interrupt being acknowledged, and address lines A31–A4 and A0 are driven to a logic high. 2.2 DATA BUS (D15–D0) This 16-bit, bidirectional, three-state bus is the general-purpose data-path. The data bus transfers and accepts data in either word or byte length if the SCM68000 is operating in the 16-bit mode. If the SCM68000 is operating in the 8-bit mode, it drives the entire bus during writes, but only the lower eight bits (D7–D0) contain valid data. In the 8-bit mode, the SCM68000 ignores the data on data lines D15–D8 during read cycles. During an interrupt acknowledge cycle, the external device supplies the vector number on data lines D7–D0. 2.3 CLOCK (CLKI, CLKO) The CLKI input is internally buffered for development of the internal clocks needed by the SCM68000. This clock signal is a constant-frequency square wave that requires no stretching or shaping. The clock signal must conform to minimum and maximum pulse-width times 1. The SCM68000 is the name of the Verilog model for the EC000 core. The remainder of this section will refer to the EC000 core as only the SCM68000. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 2-1 Signal Description Freescale Semiconductor, Inc. RESETIB HALTIB CLKI RESETOB HALTOB CLKO BRB BGACKB BGB ASB UDSB LDSB DSB RMCB COEB DTACKB BERRB MODE Freescale Semiconductor, Inc... RWB ERWB SIZ1–SIZ0 FC2–FC0 SCM68000 A31–A0 AOEB D15–D0 DOEB TESTCLK AVECB IPENDB IPLB2–IPLB0 TSCAE REFILLB STOP STATUSB TEST DISB Figure 2-1. Input/Output Signals Table 2-1. Signal Summary Signal Name Address Bus Address Output Enable Address Strobe Autovector Bus Error Bus Grant Bus Grant Acknowledge Bus Request Clock In Clock Out Control Output Enable Data Bus Disable Control Data Output Enable 2-2 Mnemonic Input/ Output Active State A31–A0 AOEB ASB AVECB BERRB BGB BGACKB BRB CLKI CLKO COEB D15–D0 DISB DOEB Output Output Output Input Input Output Input Input Input Output Output Input/Output Input Output High Low Low Low Low Low Low Low High High Low High Low Low Output Circuit TS STD TS STD STD STD STD STD STD STD STD TS STD STD EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com Hi-Z on HALTIB or STOP Instruction No No No N/A N/A No N/A N/A N/A No No Yes N/A No Hi-Z on Bus Relinquish or RESETIB Yes No Yes N/A N/A No N/A N/A N/A No No Yes N/A No MOTOROLA Freescale Semiconductor, Inc. Signal Description Table 2-1. Signal Summary Freescale Semiconductor, Inc... Signal Name Mnemonic DSB Data Strobe Data Transfer Acknowledge DTACKB Early Read Write ERWB Function Code FC2–FC0 Halt In HALTIB Halt Out HALTOB Interrupt Pending IPENDB Interrupt Control IPLB2–IPLB0 Lower Data Strobe LDSB Mode MODE CPU Pipe Refill REFILLB Reset In RESETIB Reset Out RESETOB Read-Modify-Write RMCB Read/Write RWB Data Transfer Size SIZ1, SIZ0 Microsequencer Status Indication STATUSB Stop STOP Test TEST Test Clock TESTCLK Address Three-State Control TSCAE Upper Data Strobe UDSB NOTE: TS = Three-State Output STD = Standard CMOS Output Input/ Output Active State Output Circuit Output Input Output Output Input Output Output Input Output Input Output Input Output Output Output Output Output Output Input Output Output Output Low Low Low High Low Low Low Low Low High Low Low Low Low Low High Low High High High High Low TS STD TS TS STD STD STD STD TS STD STD STD STD TS TS TS STD STD STD STD STD TS Hi-Z on HALTIB or STOP Instruction No N/A No No N/A No No N/A No N/A No N/A No No No No No No N/A No No No Hi-Z on Bus Relinquish or RESETIB Yes N/A Yes Yes N/A No No N/A Yes N/A No N/A No Yes Yes Yes No No N/A No No Yes listed in the Section 7 Electrical Characteristics. The CLKO output follows CLKI to provide a reference for testing. 2.4 ASYNCHRONOUS BUS CONTROL The following signals control asynchronous data transfers: address strobe, read/write, early read/write, data strobe, upper data strobe, lower data strobe, read-modify-write, data transfer size, and data transfer acknowledge. These signals are described in the following paragraphs. 2.4.1 Address Strobe (ASB) This active low, three-state signal indicates that the information on the address bus is a valid address. 2.4.2 Read/Write (RWB) and Early Read/Write (ERWB) The active-low, three-state RWB output signal defines the data bus transfer as a read or write cycle. The active-low, three-state ERWB output signal indicates a write cycle one-half clock cycle earlier than the read/write signal. Negation times are the same for both signals. These signals relate to the data strobe signals described in the following paragraphs. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 2-3 Freescale Semiconductor, Inc. Signal Description 2.4.3 Upper and Lower Data Strobes (UDSB, LDSB), and Data Strobe (DSB) These active-low, three-state signals and RWB control the flow of data on the data bus. Table 2-2 lists the combinations of these signals and the corresponding data on the bus. When the RWB line is a logic high, the SCM68000 reads from the data bus. When the RWB line is a logic low, the SCM68000 writes to the data bus. In the case of an 8-bit write in 16bit mode, the same data will be on both D7–D0 and D15–D8. Freescale Semiconductor, Inc... Table 2-2. Upper and Lower Data Strobe Control of Data Bus UDSB High Low High Low Low High Low LDSB High Low Low High Low Low High RWB — High High High Low Low Low D15–D8 No Valid Data Valid Data Bits 15–8 No Valid Data Valid Data Bits 15–8 Valid Data Bits 15-8 Valid Data Bits 7–0 Valid Data Bits 15–8 D7–D0 No Valid Data Valid Data Bits 7–0 Valid Data Bits 7–0 No Valid Data Valid Data Bits 7–0 Valid Data Bits 7–0 Valid Data Bits 15–8 In 8-bit mode, UDSB is always forced high and only the LDSB signal and RWB are used to control the flow of data on the data bus. Table 2-3 lists the combinations of these signals and the corresponding data on the bus. When the RWB line is a logic high, the SCM68000 reads from the data bus. When the RWB line is a logic low, the SCM68000 drives the data bus. Table 2-3. Lower Data Strobe Control of Data Bus LDSB High Low Low RWB — High Low Data Bus Operation No Valid Data Read Cycle Write Cycle DSB is an active-low, three-state output signal that is asserted whenever LDSB or UDSB is asserted. 2.4.4 Data Transfer Acknowledge (DTACKB) This active-low input indicates the completion of the data transfer. When the SCM68000 recognizes DTACKB during a read cycle, data is latched and the bus cycle is terminated. When DTACKB is recognized during a write cycle, the data bus enters a high-impedance state and the bus cycle is terminated. 2.4.5 Data Transfer Size (SIZ1–SIZ0) These active-high, three-state output signals provide information on the size of the operand transfer. These outputs indicate the number of bytes to be transferred in the current bus cycle. Table 2-4 indicates the size signal encoding. 2-4 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Signal Description Table 2-4. Data Transfer Size SIZ1 1 0 Size Code Output SIZ0 Size 0 Byte 1 Word 2.4.6 Read-Modify-Write (RMCB) This active-low, three-state output line is logic low during read-modify-write cycles and indicates an indivisible bus sequence. This is described in 3.1.3 Read-Modify-Write Cycle. Freescale Semiconductor, Inc... 2.5 BUS ARBITRATION CONTROL The bus request, bus grant, and bus grant acknowledge signals form the bus arbitration control signals that determine which device will be the bus master device. There are two possible arbitration protocols: 2-wire and 3-wire. In the 2-wire protocol, BGACKB is not used and must be negated. 2.5.1 Bus Request (BRB) This active-low input is the combination of bus request signals from all other devices that could be bus masters. This signal indicates to the SCM68000 that some other device needs to become the bus master. Bus requests can be issued at any time during a cycle or between cycles. 2.5.2 Bus Grant (BGB) This active-low output indicates to all other potential bus master devices that the SCM68000 will relinquish bus control at the end of the current bus cycle. 2.5.3 Bus Grant Acknowledge (BGACKB)—3-Wire Protocol Only This active-low input indicates that some other device has become the bus master. This signal should not be asserted until the following four conditions are met: 1. A bus grant has been received. 2. Address strobe is negated, which indicates that the SCM68000 is not using the bus. 3. Data transfer acknowledge is negated, which indicates that neither memory nor peripherals are using the bus. 4. Bus grant acknowledge is negated, which indicates that no other device is still claiming to be the bus master. 2.6 INTERRUPT CONTROL (IPLB2–IPLB0) These active-low input signals indicate the encoded priority level of the device requesting an interrupt. Level 7, which cannot be masked, has the highest priority; level 0 indicates that no interrupts have been requested. IPLB0 is the least significant bit of the encoded level, and IPLB2 is the most significant bit. For each interrupt request, these signals must maintain the interrupt request level until the SCM68000 acknowledges the interrupt to guarantee that MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 2-5 Freescale Semiconductor, Inc. Signal Description the interrupt is recognized. Table 2-5 lists the interrupt levels, the states of IPLB2–IPLB0 that define each level, and the mask value that allows an interrupt at each level. Table 2-5. Interrupt Levels and Mask Values Requested Interrupt Level Freescale Semiconductor, Inc... 0 1 2 3 4 5 6 7 Control Line Status IPLB2 IPLB1 IPLB0 High High High High High Low High Low High High Low Low Low High High Low High Low Low Low High Low Low Low Interrupt Mask Level Required for Recognition No Interrupt Is Requested 0 1–0 2–0 3–0 4–0 5–0 7–0 2.7 SYSTEM CONTROL The system control inputs are used to reset, halt, disable, and test the SCM68000 as well as signal a bus error to the SCM68000 and choose either the 8-bit or 16-bit mode. The two outputs reset the external devices in the system and signal to those devices when the SCM68000 has stopped executing instructions because of an error. The system control signals are described in the following paragraphs. 2.7.1 Bus Error (BERRB) This input signal indicates a problem in the current bus cycle. The problem may be the following: 1. No response from a device. 2. No interrupt vector number returned. 3. An illegal access request rejected by a memory management unit. 4. Some other application-dependent error. The SCM68000 either retries the bus cycle or performs exception processing, as determined by interaction between the bus error signal and the halt signal. 2.7.2 Reset External/Internal (RESETIB, RESETOB) The assertion of the active-low input, RESETIB can start a system initialization sequence by resetting the SCM68000. The SCM68000 assertion of RESETOB (from executing a RESET instruction) resets all external devices of a system without affecting the internal state of the SCM68000. The interaction of RESETIB, RESETOB, and HALTIB is described in 4.3.1 Reset. 2.7.3 Halt External/Internal (HALTIB, HALTOB) Asserting the active-low input, HALTIB causes the SCM68000 to stop bus activity at the completion of the current bus cycle. This operation places all control signals in the inactive state and places the data bus in a high-impedance state (see Table 2-1). 2-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Signal Description When the SCM68000 has stopped executing instructions (in the case of a double bus fault condition, for example), the active-low output, HALTOB, is asserted by the SCM68000 to indicate the condition to external devices. 2.7.4 Mode (MODE) This input selects between the 8-bit and 16-bit operating modes. If this input is grounded during reset, the SCM68000 comes out of reset in the 8-bit mode. If this input is tied to a logic high during reset, the SCM68000 comes out of reset in the 16-bit mode. Changing this input during normal operation may produce unpredictable results. Freescale Semiconductor, Inc... 2.7.5 Disable Control (DISB) This active-low signal is designed to place the SCM68000 into a quiescent state allowing other sections of the circuit to be tested without interference from the SCM68000. When this signal is asserted, the SCM68000 responds with the following with minimum gate delay if the clock is stopped: • All three-state outputs will be placed into a high-impedance state. • The bus grant (BGB), clock output (CLKO), halt output (HALTOB), reset output (RESETOB), microsequencer status (STATUSB), stop instruction indicator (STOP), and test clock (TESTCLK) signals remain at the state they were in when the clock was stopped. • The remaining outputs are disabled, forcing them into an inactive state. If the clock is running, the SCM68000 responds with the following with minimum gate delay: • All three-state outputs will be placed into a high-impedance state. • The clock output (CLKO) continues to follow the clock input (CLKI). • The microsequencer status (STATUSB) signal is forced to a logic low. • The test clock (TESTCLK) signal is forced to a logic low. • The remaining outputs are disabled, forcing them into their inactive states. When DISB is asserted, it is internally gated with the internal SCM68000 reset and halt signals after the input synchronizer. The user must ensure that the system is reset as discussed in 4.3.1 Reset. 2.7.6 Test Mode (TEST) This active-high input signal allows the SCM68000 to enter the test mode. This permits application of standard M68000 family test mode patterns to the SCM68000. 2.7.7 Test Clock (TESTCLK) If the SCM680000 is properly reset during simulation, the TESTCLK signal will begin to pulse. A single period of the test clock consists of ten SCM68000 clock periods (six clocks low, four clocks high). This signal is generated by an internal ring counter that may come up in any state. (At power-on, it is impossible to guarantee phase relationship of TESTCLK to CLKI.) The TESTCLK signal is a free-running clock that runs regardless of the state of the MPU bus. For more information on resetting the SCM68000 for simulation, see 4.3.1.2 Initializing the SCM68000 for Simulation. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 2-7 Signal Description Freescale Semiconductor, Inc. 2.7.8 Autovector (AVECB) This active-low input signal indicates that the SCM68000 should use automatic vectoring for an interrupt during an interrupt acknowledge cycle. AVECB should be asserted only during an interrupt acknowledge cycle or erratic controller operation may occur. 2.8 THREE-STATE CONTROL The following signals are the enable signals to put SCM68000 signals into a high-impedence state. Freescale Semiconductor, Inc... 2.8.1 Address Output Enable (AOEB) This active-low output signal is negated to put the address lines (A31–A0), function codes (FC2–FC0), size codes (SIZ1–SIZ0), early read/write (ERWB), and read/write (RWB) into a high-impedance state. 2.8.2 Control Output Enable (COEB) This active-low output signal is negated to put the address strobe (ASB), data strobe (DSB), lower data strobe (LDSB), read-modify-write (RMCB), and upper data strobe (UDSB) into a high-impedance state. 2.8.3 Data Output Enable (DOEB) This active-low output signal is negated to put the data lines of the SCM68000 into a highimpedance state. 2.9 PROCESSOR STATUS These signals are used to indicate pending interrupts and when the SCM68000 is between bus cycles or at instruction boundaries. They also show when the instruction pipe is refilling and when the processor has been stopped. The signals are described in the following paragraphs. 2.9.1 Function Codes (FC2–FC0) These active-high, three-state function code outputs indicate the mode (user or supervisor) and the address space currently being accessed as listed in Table 2-6. The function code outputs are valid whenever ASB is active. Table 2-6. Function Code Outputs Function Code Output FC2 FC1 FC0 Low Low Low Low Low High Low High Low Low High High High Low Low High Low High High High Low High High High 2-8 Cycle Time (Undefined, Reserved) User Data User Program (Undefined, Reserved) (Undefined, Reserved) Supervisor Data Supervisor Program Interrupt Acknowledge EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Signal Description 2.9.2 Address Three-State Control (TSCAE) This active-high output signal is asserted between bus cycle accesses of the SCM68000. 2.9.3 Stop Instruction Indicator (STOP) This output line pulses at one fourth the rate of the CLKI signal with an active time of one clock period when the STOP instruction is executed. 2.9.4 Interrupt Pending (IPENDB) This active-low output signal indicates a valid interrupt has been recognized. Freescale Semiconductor, Inc... 2.9.5 CPU Pipe Refill (REFILLB) This active-low output signal is asserted for one clock period to indicate that a refill of the CPU pipe is occurring due to a change in program flow. This is used for emulator support. 2.9.6 Microsequencer Status Indication (STATUSB) This active-low output signal indicates microsequencer status and is used for emulator support. The number of clock cycles for which this signal is asserted indicates the status of the SCM68000. When the SCM68000 approaches an instruction boundary, this signal is normally asserted for one clock cycle. Table 2-7 indicates exceptions that are indicated by the assertion of this signal for more than one cycle. Table 2-7. Status Indication Exceptions Asserted For One Clock Two Clocks Three Clocks Continuously Indicates Sequencer at instruction boundary - will begin execution of next instruction Sequencer at instruction boundary - will not begin the next instruction immediately due to: • Pending Interrupt Exception or • Pending Trace Exception or • Illegal Instruction Exception or • Pending Breakpoint Instruction Exception or • Privileged Instruction Exception Exception processing to begin for: • Bus Error or • Address Error or • A-line Instruction or • Spurious Interrupt or • Illegal Instruction or • Privileged Instruction or • Auto vectored Interrupt or • F-line Instruction Core is: • Halted • Reset 2.10 MULTIPLEXING PINS When a design is implemented, certain pins need to be multiplexed to the pads for testing purposes. Motorola recommends that all the pins on the SCM68000 be multiplexed to offer a means for testing the processor with test vectors provided by Motorola. This will provide maximum fault coverage. Varying degrees of fault coverage can be obtained depending on which pins the user does or does not multiplex. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 2-9 Signal Description Freescale Semiconductor, Inc. All pins must be multiplexed according to the requirements in Table 2-8. However, it is necessary that the proper three-state control signal be used to control the three-state drivers as stated in 2.8 Three-State Control. Table 2-8 shows a list of pins and the priority with which they need to be multiplexed. The priority column has three possible responses: required, required if used, not required, and internal. The “required if used” response means that the pin must be muxed out if the pin is used in the current design. The "internal" response means that the signal may be used internally and must not be muxed out. Table 2-8. Pin Multiplexing Priority Freescale Semiconductor, Inc... Pin Name Input/Output Priority Signal Name Address Bus A31–A24 Output Required If Used Address Bus A23–A0 Output Required Address Output Enable AOEB Output Internal Address Strobe ASB Output Required Bus Error BERRB Input Required Bus Grant BGB Output Required Bus Grant Acknowledge BGACKB Input Required Bus Request BRB Input Required Clock In CLKI Input Required Clock Out CLKO Output Required If Used Control Output Enable COEB Output Internal Data Bus D15–D0 Input/Output Required Disable Control DISB Input Internal Data Output Enable DOEB Output Internal Data Strobe DSB Output Required If Used Data Transfer Acknowledge DTACKB Input Required Test Clock TESTCLK Output Not Required Early Read Write ERWB Output Required If Used Function Code FC2–FC0 Output Required Halt In* HALTIB Input Required Halt Out* HALTOB Output Required Interrupt Pending IPENDB Output Required If Used Interrupt Control IPLB2–IPLB0 Input Required Lower Data Strobe LDSB Output Required Mode MODE Input Required CPU Pipe Refill REFILLB Output Required If Used Reset In* RESETIB Input Required Reset Out* RESETOB Output Required Read-Modify-Write RMCB Output Required If Used Read/Write RWB Output Required Data Transfer Size SIZ1, SIZ0 Output Required If Used Microsequencer Status Indication STATUSB Output Required If Used Stop STOP Output Required If Used Test TEST Input Required Address Three-State Control TSCAE Output Required If Used Upper Data Strobe UDSB Output Required Autovector AVECB Input Required * HALTIB and HALTOB may share a single pin, HALTB, that is functionally equivalent to the circuit in Figure 4-10. RESETIB and RESETOB may share a single pin, RESETB, that is functionally equivalent to the circuit in Figure 4-10. 2-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Signal Description Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... DISB must be negated by the pin multiplexing circuitry. If HALTOB and/or RESETOB are multiplexed to a three-state output, the internal pin multiplexing circuitry must assert the appropriate output enable. 2-11 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Signal Description 2-12 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SECTION 3 BUS OPERATION This section describes control signals and bus operation during data transfer operations, bus arbitration, and bus error and halt conditions. Freescale Semiconductor, Inc... NOTE The terms assertion and negation are used extensively in this manual to avoid confusion when describing a mixture of “activelow” and “active-high” signals. The term assert or assertion is used to indicate that a signal is active or true, independently of whether that level is represented by a high or low voltage. The term negate or negation is used to indicate that a signal is inactive or false. 3.1 DATA TRANSFER OPERATIONS Transfer of data between devices involves the following signals: 1. Address bus (A31–A0) 2. Data bus (D7–D0 and/or D15–D8) 3. Control signals The address and data buses are separate parallel buses used to transfer data using an asynchronous bus protocol. Control signals indicate the beginning and type of a bus cycle as well as the address space and size of the transfer. The selected device then controls the length of the cycle by terminating it using the control signals. In all bus cycles, the bus master assumes responsibility for de-skewing the acknowledge and data signals from the slave device. The SCM68000 (EC000 core)1 operates in either of two modes: 8-bit or 16-bit mode. The 8bit mode is selected by grounding the MODE pin while the 16-bit mode is selected by pulling the MODE pin to a logic high (see 2.7.4 Mode (MODE) for more information on the MODE signal). During operation in the 8-bit mode, all bus cycles use LDSB, and one byte of data is transferred on data bus bits D7 through D0. UDSB is never asserted, and data bus bits D15 through D8 are undefined. For word or long-word operations, data is transferred in two and four bus cycles, respectively. 1. The SCM68000 is the name of the Verilog model for the EC000 core. The remainder of this section will refer to the EC000 core as only the SCM68000. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-1 Freescale Semiconductor, Inc. Bus Operation During operation in the 16-bit mode, byte operations can occur on either D15–D8 or D7–D0, depending on A0. If A0 is zero, the upper byte is used and UDSB is asserted. If A0 is one, the lower byte is used and LDSB is asserted. For word and long-word operations, A0 is always zero, data bits D15 through D0 are used, and both LDSB and UDSB are asserted. For long-word operations, data is transferred in two bus cycles with A1 indicating which half of the long word is being transferred. The actual order of the long-word halves is instruction and address-mode dependent. The following paragraphs describe the read cycle, write cycle, read-modify-write cycle, and CPU space cycle. The indivisible read-modify-write cycle allows interlocked multiprocessor communications. A CPU space cycle is a special cycle used for interrupt acknowledge cycles. Freescale Semiconductor, Inc... 3.1.1 Read Cycle During a read cycle, the SCM68000 receives data from memory or from a peripheral device. When data is received, the SCM68000 correctly positions the byte internally. The word read cycle flowchart is shown in Figure 3-1. The byte read cycle flowcharts for the 8-bit and 16-bit modes are shown in Figure 3-2 and Figure 3-3, respectively. The read cycle and write cycle timing diagrams are shown in Figure 3-4 and Figure 3-5. The word and byte read cycle timing diagram for operation in the 16-bit mode is shown in Figure 3-6. BUS MASTER SLAVE ADDRESS THE DEVICE 1) 2) 3) 4) 5) SET RWB AND ERWB TO READ PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31–A0 ASSERT ADDRESS STROBE (ASB) ASSERT UPPER DATA STROBE (UDSB), LOWER DATA STROBE (LDSB), AND DATA STROBE (DSB) OUTPUT THE DATA 1) DECODE ADDRESS 2) PLACE DATA ON D15–D0 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) ACQUIRE THE DATA 1) LATCH DATA 2) NEGATE UDSB, LDSB, AND DSB 3) NEGATE ASB TERMINATE THE CYCLE 1) REMOVE DATA FROM D15–D0 2) NEGATE DTACKB START NEXT CYCLE Figure 3-1. Word Read Cycle Flowchart for 16-Bit Mode 3-2 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. BUS MASTER ADDRESS THE DEVICE 1) 2) 3) 4) 5) SET RWB AND ERWB TO READ PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31–A0 ASSERT ADDRESS STROBE (ASB) ASSERT LOWER DATA STROBE (LDSB) AND DATA STROBE (DSB) ACQUIRE THE DATA Bus Operation SLAVE OUTPUT THE DATA 1) DECODE ADDRESS 2) PLACE DATA ON D7–D0 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) Freescale Semiconductor, Inc... 1) LATCH DATA 2) NEGATE LDSB AND DSB 3) NEGATE ASB TERMINATE THE CYCLE 1) REMOVE DATA FROM D7–D0 2) NEGATE DTACKB START NEXT CYCLE Figure 3-2. Byte Read Cycle Flowchart for 8-Bit Mode SLAVE BUS MASTER ADDRESS THE DEVICE 1) 2) 3) 4) 5) SET RWB AND ERWB TO READ PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31-A0 ASSERT ADDRESS STROBE (ASB) ASSERT UPPER DATA STROBE (UDSB) OR LOWER DATA STROBE (LDSB) (BASED ON A0), AND DATA STROBE (DSB) ACQUIRE THE DATA OUTPUT THE DATA 1) DECODE ADDRESS 2) PLACE DATA ON D7–D0 OR D15–D8 (BASED ON UDSB OR LDSB) 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) 1) LATCH DATA 2) NEGATE UDSB, LDSB, AND DSB 3) NEGATE ASB TERMINATE THE CYCLE 1) REMOVE DATA FROM D7–D0 OR D15–D8 2) NEGATE DTACKB START NEXT CYCLE Figure 3-3. Byte Read Cycle Flowchart for 16-Bit Mode MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-3 Bus Operation Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 w w w w S5 S6 S7 CLKI FC2–FC0 A31–A0 ASB LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE READ WRITE 2 WAIT STATE READ Figure 3-4. Read and Write Cycle Timing Diagram for 8-Bit Mode 3-4 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 w Bus Operation w w w S5 S6 S7 CLKI FC2–FC0 A31–A0 A0=0 A0=0 A0=0 ASB UDSB LDSB Freescale Semiconductor, Inc... DSB RWB ERWB DTACKB D15–D8 D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE READ WRITE 2 WAIT STATE READ Figure 3-5. Read and Write Cycle Timing Diagram for 16-Bit Mode MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-5 Bus Operation Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 CLKI FC2–FC0 A31–A0 A0=0 A0=1 A0=0 WORD READ ODD BYTE READ EVEN BYTE READ ASB UDSB LDSB Freescale Semiconductor, Inc... DSB RWB ERWB DTACKB D15–D8 D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE Figure 3-6. Word and Byte Read Cycle Timing Diagram for 16-Bit Mode A bus cycle has a minimum of eight states. The various signals are asserted during specific states of a read cycle, as follows: STATE 0 The read cycle starts in state 0 (S0). The SCM68000 places valid function codes on FC2– FC0, and a valid address on the address bus. RWB and ERWB are driven to logic highs to identify a read cycle, and TSCAE is driven to a logic high to indicate that the SCM68000 is between bus cycles. 3-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation STATE 1 Entering state 1 (S1), TSCAE is driven low to indicate the beginning of the bus cycle. STATE 2 On the rising edge of state 2 (S2), the SCM68000 asserts ASB, UDSB, LDSB, and DSB. Freescale Semiconductor, Inc... STATE 3 During state 3 (S3), no bus signals are altered. STATE 4 During state 4 (S4), the SCM68000 waits for a cycle termination signal (DTACKB or BERRB) If neither termination signal is asserted before the falling edge at the end of S4, the SCM68000 inserts wait states (full clock cycles) until either DTACKB or BERRB is asserted. See 3.7 The Relationship of DTACKB, BERRB, and HALTIB for a description of how DTACKB and BERRB interact. CASE 1: DTACKB is received alone or with BERRB (see 3.4 Bus Error and Halt Operation). STATE 5 During state 5 (S5), no bus signals are altered. STATE 6 Sometime between state 2 (S2) and state 6 (S6), data from the device is driven onto the data bus. STATE 7 On the falling edge of the clock entering state 7 (S7), the SCM68000 latches data from the addressed device and negates ASB, UDSB, LDSB, and DSB. The device negates DTACKB or BERRB at this time. CASE 2: BERRB is received without DTACKB (see 3.4 Bus Error and Halt Operation). STATE 5 During state 5 (S5), no bus signals are altered. STATE 6 During state 6 (S6), no bus signals are altered. STATE 7 During state 7 (S7), no bus signals are altered. STATE 8 During state 8 (S8), no bus signals are altered. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-7 Freescale Semiconductor, Inc. Bus Operation STATE 9 During state 9 (S9), ASB, UDSB, LDSB, and DSB are negated. The device negates BERRB at this time. 3.1.2 Write Cycle During a write cycle, the SCM68000 sends data to the memory or to a peripheral device. Freescale Semiconductor, Inc... The word write cycle flowchart is shown in Figure 3-7. The byte write cycle flowcharts for the 8-bit and 16-bit modes are shown in Figure 3-8 and Figure 3-9, respectively. The byte write cycle timing diagram for the 8-bit mode of operation is shown in Figure 3-10. The word and byte write cycle for the 16-bit mode of operation is shown in Figure 3-11. BUS MASTER SLAVE ADDRESS THE DEVICE 1) 2) 3) 4) 5) 6) PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31–A0 ASSERT ADDRESS STROBE (ASB) SET RWB AND ERWB TO WRITE PLACE DATA ON D15–D0 ASSERT UPPER DATA STROBE (UDSB), LOWER DATA STROBE (LDSB), AND DATA STROBE (DSB) INPUT THE DATA 1) DECODE ADDRESS 2) STORE DATA ON D15–D0 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) TERMINATE OUTPUT TRANSFER 1) 2) 3) 4) NEGATE UDSB, LDSB, AND DSB NEGATE ASB REMOVE DATA FROM D15–D0 SET RWB AND ERWB TO READ TERMINATE THE CYCLE 1) NEGATE DTACKB START NEXT CYCLE Figure 3-7. Word Write Cycle Flowchart for 16-Bit Mode 3-8 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. BUS MASTER Bus Operation SLAVE ADDRESS THE DEVICE 1) 2) 3) 4) 5) 6) PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31–A0 ASSERT ADDRESS STROBE (ASB) SET RWB AND ERWB TO WRITE PLACE DATA ON D7–D0 ASSERT LOWER DATA STROBE (LDSB) AND DATA STROBE (DSB) INPUT THE DATA 1) DECODE ADDRESS 2) STORE DATA ON D7–D0 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) Freescale Semiconductor, Inc... TERMINATE OUTPUT TRANSFER 1) 2) 3) 4) NEGATE LDSB AND DSB NEGATE ASB REMOVE DATA FROM D7–D0 SET RWB AND ERWB TO READ TERMINATE THE CYCLE 1) NEGATE DTACKB START NEXT CYCLE Figure 3-8. Byte Write Cycle Flowchart for 8-Bit Mode BUS MASTER SLAVE ADDRESS THE DEVICE 1) 2) 3) 4) 5) PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31–A0 ASSERT ADDRESS STROBE (ASB) SET RWB AND ERWB TO WRITE PLACE DATA ON D7–D0 OR D15–D8 (ACCORDING TO A0) 6) ASSERT UPPER DATA STROBE (UDSB) OR LOWER DATA STROBE (LDSB) AND DATA STROBE (DSB) (BASED ON A0) TERMINATE OUTPUT TRANSFER 1) NEGATE UDSB, LDSB, AND DSB 2) NEGATE ASB 3) REMOVE DATA FROM D7–D0 OR D15–D8 4) SET RWB AND ERWB TO READ INPUT THE DATA 1) DECODE ADDRESS 2) STORE DATA ON D7–D0 IF LDSB IS ASSERTED. STORE DATA ON D15–D8 IF UDSB IS ASSERTED 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) TERMINATE THE CYCLE 1) NEGATE DTACKB START NEXT CYCLE Figure 3-9. Byte Write Cycle Flowchart for 16-Bit Mode MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-9 Bus Operation Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 CLKI FC2–FC0 A31–A0 ASB LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE EVEN BYTE WRITE ODD BYTE WRITE EVEN BYTE WRITE Figure 3-10. Write Cycle Timing Diagram for 8-Bit Mode 3-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 CLKI FC2–FC0 A31–A0 A0=0 A0=0 A0=1 ASB UDSB LDSB Freescale Semiconductor, Inc... DSB RWB ERWB DTACKB D15–D8 D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE WORD WRITE ODD BYTE WRITE EVEN BYTE WRITE Figure 3-11. Word and Byte Write Cycle Timing Diagram for 16-Bit Mode The descriptions of the eight states of a write cycle are as follows: STATE 0 The write cycle starts in state 0 (S0). The SCM68000 places valid function codes on FC2– FC0 and a valid address on the address bus. RWB and ERWB are driven to a logic high. TSCAE is driven to a logic high to indicate that the SCM68000 is between bus cycles. STATE 1 Entering state 1 (S1), the SCM68000 drives TSCAE and ERWB to logic lows. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-11 Bus Operation Freescale Semiconductor, Inc. STATE 2 On the rising edge of state 2 (S2), the SCM68000 asserts ASB and drives RWB to a logic low. Freescale Semiconductor, Inc... STATE 3 During state 3 (S3), the data bus is driven out of the high-impedance state as data is placed on the bus. STATE 4 At the rising edge of state 4 (S4), the SCM68000 asserts DSB, and UDSB and/or LDSB. The SCM68000 waits for a cycle termination signal (DTACKB or BERRB). If neither termination signal is asserted before the falling edge at the end of S4, the SCM68000 inserts wait states (full clock cycles) until either DTACKB or BERRB is asserted. See 3.7 The Relationship of DTACKB, BERRB, and HALTIB for a description of how DTACKB and BERRB interact. CASE 1: DTACKB is received alone or with BERRB (see 3.4 Bus Error and Halt Operation). STATE 5 During state 5 (S5), no bus signals are altered. STATE 6 During state 6 (S6), no bus signals are altered. STATE 7 On the falling edge of the clock entering state 7 (S7), the SCM68000 negates ASB, UDSB, LDSB, and DSB. As the clock rises at the end of S7, the SCM68000 places the data bus in the high-impedance state and drives RWB and ERWB to a logic high. The device negates DTACKB or BERRB at this time. CASE 2: BERRB is received without DTACKB (see 3.4 Bus Error and Halt Operation). STATE 5 During state 5 (S5), no bus signals are altered. STATE 6 During state 6 (S6), no bus signals are altered. STATE 7 During state 7 (S7), no bus signals are altered. STATE 8 During state 8 (S8), no bus signals are altered. 3-12 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation STATE 9 During state 9 (S9), ASB, UDSB, LDSB, and DSB are negated. The device negates BERRB at this time. At the end of S9, the data bus is placed in the high-impedance state, and RWB and ERWB are driven to a logic high. Freescale Semiconductor, Inc... 3.1.3 Read-Modify-Write Cycle The read-modify-write cycle performs a read operation, modifies the data in the arithmetic logic unit, and writes the data back to the same address. The address strobe (ASB) remains asserted throughout the entire cycle, making the cycle indivisible. The test and set (TAS) instruction uses this cycle to provide a signaling capability without deadlock between processors in a multiprocessing environment. The TAS instruction (the only instruction that uses the read-modify-write cycle) only operates on bytes. Thus, all read-modify-write cycles are byte operations. The read-modify-write flowchart is shown in Figure 3-12 and the timing diagram is shown in Figure 3-13. BUS MASTER SLAVE ADDRESS THE DEVICE 1) 2) 3) 4) 5) SET RWB AND ERWB TO READ PLACE FUNCTION CODE ON FC2–FC0 PLACE ADDRESS ON A31–A0 ASSERT ADDRESS STROBE (ASB) ASSERT UPPER DATA STROBE (UDSB) OR LOWER DATA STROBE (LDSB) AND DATA STROBE (DSB) 6) ASSERT RMCB ACQUIRE THE DATA 1) LATCH DATA 1) NEGATE UDSB AND LDSB 2) START DATA MODIFICATION START OUTPUT TRANSFER 1) SET RWB AND ERWB TO WRITE 2) PLACE DATA ON D7–D0 OR D15–D8 3) ASSERT UPPER DATA STROBE (UDSB) OR LOWER DATA STROBE (LDSB) AND DATA STROBE (DSB) TERMINATE OUTPUT TRANSFER 1) NEGATE UDSB AND LDSB 2) NEGATE ASB 3) REMOVE DATA FROM D7–D0 OR D15–D8 4) SET RWB AND ERWB TO READ 5) NEGATE RMCB OUTPUT THE DATA 1) DECODE ADDRESS 2) PLACE DATA ON D7–D0 OR D15–D8 3) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) TERMINATE THE CYCLE 1) REMOVE DATA FROM D7–D0 OR D15–D8 2) NEGATE DTACKB INPUT THE DATA 1) STORE DATA ON D7–D0 OR D15–D8 2) ASSERT DATA TRANSFER ACKNOWLEDGE (DTACKB) TERMINATE THE CYCLE 1) NEGATE DTACKB START NEXT CYCLE Figure 3-12. Read-Modify-Write Cycle Flowchart MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-13 Bus Operation Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 CLKI FC2–FC0 A31–A0 ASB UDSB or LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D15–D8 D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE INDIVISIBLE CYCLE Figure 3-13. Read-Modify-Write Cycle Timing Diagram The descriptions of the read-modify-write cycle states are as follows: STATE 0 The read cycle starts in state 0 (S0). The SCM68000 places valid function codes on FC2– FC0 and a valid address on the address bus. RWB and ERWB are driven to a logic high to identify a read cycle, and TSCAE is driven to a logic high to indicate that the SCM68000 is between bus cycles. STATE 1 Entering state 1 (S1), TSCAE is driven low to indicate the beginning of the bus cycle, and RMCB is driven low to indicate a read-modify-write cycle. 3-14 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation STATE 2 On the rising edge of state 2 (S2), the SCM68000 asserts ASB, UDSB or LDSB, and DSB. STATE 3 During state 3 (S3), no bus signals are altered. Freescale Semiconductor, Inc... STATE 4 During state 4 (S4), the SCM68000 waits for a cycle termination signal (DTACKB or BERRB). If neither termination signal is asserted before the falling edge at the end of S4, the SCM68000 inserts wait states (full clock cycles) until either DTACKB or BERRB is asserted. See 3.7 The Relationship of DTACKB, BERRB, and HALTIB for a description of how DTACKB and BERRB interact. CASE READ 1: Only DTACK is received. STATE 5 During state 5 (S5), no bus signals are altered. STATE 6 During state 6 (S6), data from the device is driven onto the data bus. STATE 7 On the falling edge of the clock entering state 7 (S7), the SCM68000 accepts data from the device and negates UDSB or LDSB, and DSB. The device negates DTACKB at this time. STATES 8–11 The bus signals are unaltered during state 8 (S8)through state 11 (S11), during which the arithmetic logic unit makes appropriate modifications to the data. STATE 12 The write portion of the cycle starts in state 12 (S12). The valid function codes on FC2– FC0, the address bus lines, ASB, RWB, and ERWB remain unaltered. STATE 13 During state 13 (S13), ERWB is driven to a logic low. STATE 14 On the rising edge of state 14 (S14), the SCM68000 drives RWB to a logic low. STATE 15 During state 15 (S15), the data bus is driven out of the high-impedance state as data is placed on the bus. STATE 16 During state 16 (S16), the SCM68000 waits for a cycle termination signal (DTACKB or BERRB). If neither termination signal is asserted before the falling edge at the end of S16, MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-15 Bus Operation Freescale Semiconductor, Inc. the SCM68000 inserts wait states (full clock cycles) until either DTACKB or BERRB is asserted. Also, on the rising edge of S16, the SCM68000 asserts UDSB or LDSB, and DSB. CASE WRITE 1: DTACKB is received alone or with BERRB (see 3.4 Bus Error and Halt Operation). STATE 17 During state 17 (S17), no bus signals are altered. Freescale Semiconductor, Inc... STATE 18 During state 18 (S18), no bus signals are altered. STATE 19 On the falling edge of the clock entering state 19 (S19), the SCM68000 negates ASB, UDSB or LDSB, and DSB. As the clock rises at the end of S19, the SCM68000 places the data bus in the high-impedance state and drives RWB and ERWB to a logic high. The device negates DTACKB or BERRB at this time. CASE READ 2: DTACKB and BERRB are received (see 3.4 Bus Error and Halt Operation). STATE 5 During state 5 (S5), no bus signals are altered. STATE 6 During state 6 (S6), no bus signals are altered and data from the device is ignored. STATE 7 During state 7 (S7), UDSB or LDSB, and DSB are negated. STATES 8–10 The bus signals are unaltered during state 8 (S8) through state 10 (S10). STATE 11 During state 11 (S11), ASB, is negated. The cycle terminates without the write portion of the cycle. CASE READ 3: Only BERRB is received (see 3.4 Bus Error and Halt Operation). STATES 5–8 The bus signals are unaltered during state 5 (S5) through state 8 (S8). STATE 9 During state 9 (S9), UDSB or LDSB, and DSB are negated. STATE 10 During state 10 (S10), no bus signals are altered. 3-16 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation STATE 11 During state 11 (S11), ASB, is negated. The cycle terminates without the write portion of the cycle. CASE WRITE 2: Only BERRB is received (see 3.4 Bus Error and Halt Operation). STATES 17–20 The bus signals are unaltered during state 17 (S17) through state 20 (S20). Freescale Semiconductor, Inc... STATE 21 During state 21 (S21), the SCM68000 negates ASB, UDSB or LDSB, and DSB. RMCB is driven to a logic high after ASB is negated and before the falling edge of S1 of the next bus cycle. However, the value of RMCB is not guaranteed between bus cycles after ASB is negated for the cases described in this section. 3.2 BUS ARBITRATION Bus arbitration is a technique used by bus master devices to request, to be granted, and to acknowledge bus mastership. Bus arbitration consists of the following: 1. Asserting a bus mastership request 2. Receiving a grant indicating that the bus is available at the end of the current bus cycle 3. Acknowledging that mastership has been assumed (3-wire bus arbitration only) There are two ways to arbitrate the SCM68000 bus, 3-wire and 2-wire bus arbitration. Figure 3-14 and Figure 3-16 show 3-wire bus arbitration and Figure 3-15 and Figure 3-17 show 2wire bus arbitration. BGACKB must be negated for 2-wire bus arbitration. The timing diagram in Figure 3-16 shows that the bus request is negated within 1.5 clocks of the time that an acknowledge is asserted. This situation occurs when just one external device is requesting the bus. In systems having several devices that can be bus masters, bus request lines from these devices can be ORed at the SCM68000, and more than one bus request signal could occur. The bus grant signal is negated 1.5 to 3.5 clock cycles after the assertion of the bus grant acknowledge signal. However, if bus request remains asserted (more than one device is requesting the bus), the SCM68000 reasserts bus grant for another request a few clock cycles after bus grant (for the previous request) is negated. In response to this additional assertion of bus grant, external arbitration circuitry selects the next bus master before the current bus master has completed the bus activity. The timing diagram in Figure 3-17 shows just one external device requesting the bus. The 2-wire bus arbitration is best suited to systems with just one device, besides the CPU, capable of being bus master. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-17 Freescale Semiconductor, Inc. Bus Operation PROCESSOR REQUESTING DEVICE REQUEST THE BUS 1) ASSERT BUS REQUEST (BRB) GRANT BUS ARBITRATION 1) ASSERT BUS GRANT (BGB) Freescale Semiconductor, Inc... ACKNOWLEDGE BUS MASTERSHIP TERMINATE ARBITRATION 1) EXTERNAL ARBITRATION DETERMINES NEXT BUS MASTER 2) NEXT BUS MASTER WAITS FOR CURRENT CYCLE TO COMPLETE 3) NEXT BUS MASTER ASSERTS BUS GRANT ACKNOWLEDGE (BGACKB) TO BECOME NEW MASTER 4) BUS MASTER NEGATES BRB 1) NEGATE BGB (AND WAIT FOR BGACKB TO BE NEGATED) OPERATE AS BUS MASTER 1) PERFORM DATA TRANSFERS (READ AND WRITE CYCLES) ACCORDING TO THE SAME RULES THE PROCESSOR USES RELEASE BUS MASTERSHIP REARBITRATE OR RESUME PROCESSOR OPERATION 1) NEGATE BGACKB Figure 3-14. 3-Wire Bus Arbitration Cycle Flowchart 3.2.1 Requesting the Bus External devices capable of becoming bus masters assert BRB to request the bus. This signal can be ORed (not necessarily constructed from open-collector devices) from any of the devices in the system that can become bus master. The SCM68000, which is at a lower bus priority level than the external devices, relinquishes the bus after it completes the current bus cycle. When no acknowledge is received before the bus request signal is negated, the SCM68000 continues to use the bus. Also, BGACKB allows arbitration time for another bus master to be overlapped with bus cycles to lessen bus idle time. 3.2.2 Receiving the Bus Grant After BRB is asserted, the SCM68000 asserts BGB immediately following internal synchronization. The exception to this is when the SCM68000 has made an internal decision to execute the next bus cycle but has not yet asserted ASB for that cycle. In this case, BGB is delayed until ASB is asserted to indicate to external devices that a bus cycle is in progress. 3-18 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. PROCESSOR Bus Operation REQUESTING DEVICE REQUEST THE BUS 1) ASSERT BUS REQUEST (BRB) GRANT BUS ARBITRATION 1) ASSERT BUS GRANT (BGB) OPERATE AS BUS MASTER Freescale Semiconductor, Inc... 1) EXTERNAL ARBITRATION DETERMINES NEXT BUS MASTER 2) NEXT BUS MASTER WAITS FOR CURRENT CYCLE TO COMPLETE 3) PERFORM DATA TRANSFERS (READ AND WRITE CYCLES) ACCORDING TO THE SAME RULES THE PROCESSOR USES ACKNOWLEDGE RELEASE OF BUS MASTERSHIP 1) NEGATE BUS GRANT (BGB) RELEASE BUS MASTERSHIP 1) NEGATE BUS REQUEST (BRB) REARBITRATE OR RESUME PROCESSOR OPERATION Figure 3-15. 2-Wire Bus Arbitration Cycle Flowchart BGB can be routed through a daisy-chained network or through a specific priority-encoded network. Any method of external arbitration that observes the protocol can be used. 3.2.3 Acknowledgment of Mastership (3-Wire Bus Arbitration Only) Upon receiving BGB, the requesting device waits until ASB, DTACKB, and BGACKB are negated before asserting BGACKB. The negation of ASB indicates that the previous bus master has completed its cycle. (No device is allowed to assume bus mastership while ASB is asserted.) The negation of BGACKB indicates that the previous master has released the bus. The negation of DTACKB indicates that the previous slave has terminated the connection to the previous master. (In some applications, DTACKB might not be included in this function; general-purpose devices would be connected using ASB only.) When BGACKB is asserted, the asserting device is bus master until it negates BGACKB. BGACKB should not be negated until after the bus cycle(s) is complete. A device relinquishes control of the bus by negating BGACKB. The bus request from the granted device should be negated after BGACKB is asserted. If another bus request is pending, BGB is reasserted within a few clocks, as described in 3.3 Bus Arbitration Control. The SCM68000 does not perform any external bus cycles before reasserting BGB. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-19 Freescale Semiconductor, Inc. Bus Operation S0 S2 S4 S6 S0 S2 S4 S6 S0 S2 S4 S6 S0 S2 S4 S6 DMA DEVICE PROCESSOR S0 S2 S4 S6 S0 S2 S4 CLKI FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D15–D8 D7–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE BRB BGB BGACKB PROCESSOR DMA DEVICE Figure 3-16. 3-Wire Bus Arbitration Timing Diagram 3-20 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. S0 S2 S4 S6 S0 S2 S4 S6 S0 S2 S4 S6 S0 S2 S4 S6 DMA DEVICE PROCESSOR Bus Operation S0 S2 S4 S6 S0 S2 S4 CLKI FC2–FC0 A31–A0 ASB UDSB and/or LDSB Freescale Semiconductor, Inc... DSB RWB ERWB DTACKB D15–D8 D7–D0 AOEB COEB DOEB RMCB SIZ1–-SIZ0 TSCAE BRB BGB PROCESSOR DMA DEVICE Figure 3-17. 2-Wire Bus Arbitration Timing Diagram MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-21 Bus Operation Freescale Semiconductor, Inc. 3.3 BUS ARBITRATION CONTROL The asynchronous bus arbitration signals are synchronized before being used internally. See 3.5 Asynchronous Operation for more information on the synchronization of these signals. Freescale Semiconductor, Inc... Bus arbitration control is implemented with a finite state machine. State diagram (a) in Figure 3-18 applies for 3-wire bus arbitration and state diagram (b) applies for 2-wire bus arbitration, in which BGACKB is permanently negated internally or externally. The same finite state machine is used, but it is effectively a three-state machine because BGACKB is always negated. In Figure 3-18, input signals R (bus request internal) and A (bus grant acknowledge internal) are the internally synchronized versions of BRB and BGACKB. The BGB output is shown as G (bus grant), and the internal three-state control signal is shown as T (three-state control to bus control logic). If T is true, the address, data, and control buses are placed in the highimpedance state when ASB is negated. All signals are shown in positive logic (active high), regardless of their true active voltage level. State changes (valid outputs) occur on the next rising edge of the clock after the internal signal is valid. A timing diagram of the bus arbitration sequence during an SCM68000 bus cycle is shown in Figure 3-19 and Figure 3-22. The bus arbitration timing while the bus is inactive (e.g., the SCM68000 is performing internal operations for a multiply instruction) is shown in Figure 320 and Figure 3-23. When a bus request is made after the SCM68000 has begun a bus cycle and before ASB has been asserted (S0), the special sequence shown in Figure 3-21 and Figure 3-24 applies. Instead of being asserted on the next rising edge of clock, BGB is delayed until the second rising edge following its internal assertion. Figure 3-19, Figure 3-20, and Figure 3-21 apply for 3-wire bus arbitration. Figure 3-22, Figure 3-23, and Figure 3-24 apply for 2-wire bus arbitration. 3-22 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation RA RA 1 GT XA 1 RA RA GT GT RA RA R+A XX RX GT Freescale Semiconductor, Inc... XA RA GT GT RA RA RA XX GT RA (a) 3-Wire Bus Arbitration R R GT GT X R GT R (b) 2-Wire Bus Arbitration R = Bus Request Internal A = Bus Grant Acknowledge Internal G = Bus Grant T = Three-State Control to Bus Control Logic X = Don't Care NOTES: 1. State machine will not change if the bus is S0 or S1. Refer to 3.3 BUS ARBITRATION CONTROL 2. The address bus will be placed in the high-impedance state if T is asserted and ASB is negated. Figure 3-18. Bus Arbitration Unit State Diagrams MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-23 Freescale Semiconductor, Inc. Bus Operation BUS THREE-STATED BGB ASSERTED BRB VALID INTERNAL BRB SAMPLED BRB ASSERTED BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BGACKB NEGATED INTERNAL BGACKB SAMPLED BGACKB NEGATED CLKI S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 BRB BGB BGACKB Freescale Semiconductor, Inc... FC2–FC0 A31–A0 ASB UDSB and/or LSDB DSB RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE PROCESSOR ALTERNATE BUS MASTER PROCESSOR Figure 3-19. 3-Wire Bus Arbitration Timing Diagram—SCM68000 Active 3-24 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BGACKB NEGATED BGB ASSERTED AND BUS THREE STATED BRB VALID INTERNAL BRB SAMPLED BRB ASSERTED CLKI S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 BRB BGB Freescale Semiconductor, Inc... BGACKB FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE PROCESSOR BUS INACTIVE ALTERNATE BUS MASTER PROCESSOR Figure 3-20. 3-Wire Bus Arbitration Timing Diagram—Bus Inactive MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-25 Freescale Semiconductor, Inc. Bus Operation BUS THREE-STATED BGB ASSERTED BRB VALID INTERNAL BRB SAMPLED BRB ASSERTED BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BGACKB NEGATED INTERNAL BGACKB SAMPLED BGACKB NEGATED CLKI S0 S2 S4 S6 S0 S2 S4 S6 S0 BRB BGB Freescale Semiconductor, Inc... BGACKB FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE PROCESSOR ALTERNATE BUS MASTER PROCESSOR Figure 3-21. 3-Wire Bus Arbitration Timing Diagram—Special Case 3-26 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. BUS THREE-STATED BGB ASSERTED BRB VALID INTERNAL BRB SAMPLED BRB ASSERTED Bus Operation BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BRB NEGATED INTERNAL BRB SAMPLED BRB NEGATED CLKI S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 BRB BGB BGACKB Freescale Semiconductor, Inc... FC2–FC0 A31–A0 ASB UDSB and/or LSDB DSB RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE PROCESSOR ALTERNATE BUS MASTER PROCESSOR Figure 3-22. 2-Wire Bus Arbitration Timing Diagram—SCM68000 Active MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-27 Bus Operation Freescale Semiconductor, Inc. BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BRB NEGATED BGB ASSERTED AND BUS THREE STATED BRB VALID INTERNAL BRB SAMPLED BRB ASSERTED CLKI S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 BRB BGB Freescale Semiconductor, Inc... BGACKB FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE PROCESSOR BUS INACTIVE ALTERNATE BUS MASTER PROCESSOR Figure 3-23. 2-Wire Bus Arbitration Timing Diagram—Bus Inactive 3-28 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. BUS THREE-STATED BGB ASSERTED BRB VALID INTERNAL BRB SAMPLED BRB ASSERTED Bus Operation BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BRB NEGATED INTERNAL BRB SAMPLED BRB NEGATED CLKI S0 S2 S4 S6 S0 S2 S4 S6 S0 BRB BGB Freescale Semiconductor, Inc... BGACKB FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE PROCESSOR ALTERNATE BUS MASTER PROCESSOR Figure 3-24. 2-Wire Bus Arbitration Timing Diagram—Special Case MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-29 Bus Operation Freescale Semiconductor, Inc. 3.4 BUS ERROR AND HALT OPERATION In a bus architecture that requires a handshake from an external device, such as the asynchronous bus used in the SCM68000, the handshake may not always occur. A bus error input is provided to terminate a bus cycle in error when the expected signal is not asserted. Different systems and different devices within the same system require different maximum response times. External circuitry can be provided to assert the bus error signal after the appropriate delay following the assertion of address strobe. 3.4.1 Bus Error Operation Freescale Semiconductor, Inc... A bus error is recognized when HALTIB is negated and BERRB is asserted, either alone or with DTACKB. When the bus error condition is recognized, the current bus cycle is terminated in state 9 (S9) (only BERRB is asserted) or in state 7 (S7) (BERRB and DTACKB are asserted) for a read cycle or a write cycle. The bus cycle is terminated in state 11 (S11) for the read portion of a read-modify-write cycle. For the write portion of a read-modify-write cycle, the bus cycle is terminated in state 21 (S21) (only BERRB is asserted) or in state 19 (S19) (BERRB and DTACKB are asserted). As long as BERRB remains asserted, the data bus is in the highimpedance state. Figure 3-25 shows the timing for the normal bus error. After the aborted bus cycle is terminated and BERRB is negated, the SCM68000 enters exception processing for the bus error exception. During the exception processing sequence, the following information is placed on the supervisor stack: 1. Status register 2. Program counter (two words, which may be up to five words past the instruction being executed) 3. Error information The first two items are identical to the information stacked by any other exception. The SCM68000 stacks bus error information to help determine and to correct the error. After the SCM68000 has placed the required information on the stack, the bus error exception vector is read from vector table entry 2 (offset $08) and placed in the program counter. The SCM68000 resumes execution at the address in the vector, which is the first instruction in the bus error handler routine. 3-30 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. S0 S2 S4 w w w w S6 Bus Operation S8 CLKI FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D15–D0 BERRB HALTIB AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE INITIATE READ RESPONSE FAILURE BUS ERROR DETECTION INITIATE BUS ERROR STACKING Figure 3-25. Bus Error Timing Diagram MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-31 Freescale Semiconductor, Inc. Bus Operation 3.4.2 Retrying the Bus Cycle The assertion of BERRB during a bus cycle in which HALTIB is also asserted by an external device initiates a retry operation. Figure 3-26 is a timing diagram of the retry operation. The SCM68000 terminates the bus cycle, then puts the data bus in the high-impedance state. The SCM68000 remains in this state until HALTIB is negated. Then the SCM68000 retries the preceding cycle using the same function codes, address, and data (for a write operation). BERRB should be negated at least one clock cycle before HALTIB is negated. Freescale Semiconductor, Inc... NOTE To guarantee that the entire read-modify-write cycle runs correctly and that the write portion of the operation is performed without negating the address strobe, the SCM68000 does not retry a read-modify-write cycle. When BERRB is asserted during a read-modify-write operation, a bus error operation is performed whether or not HALTIB is asserted. 3.4.3 Halt Operation HALTIB performs a halt/run/single-step operation similar to the halt operation of an MC68000. When HALTIB is asserted by an external device, the SCM68000 halts and remains halted as long as the signal remains asserted, as shown in Figure 3-27. While the SCM68000 is halted, only the data bus is placed in the high-impedance state as shown in Table 2-1. Bus arbitration is performed as usual. Should a bus error occur while HALTIB is asserted, the SCM68000 performs the retry operation previously described. The single-step mode is derived from correctly timed transitions of HALTIB. HALTIB is negated to allow the SCM68000 to begin a bus cycle, then asserted to enter the halt mode when the cycle completes. The single-step mode proceeds through a program one bus cycle at a time for debugging purposes. The halt operation and the hardware trace capability allow tracing of either bus cycles or instructions one at a time. These capabilities and a software debugging package provide total debugging flexibility. NOTE Execution of the RESET instruction while using the HALTIB signal in the single-step mode can cause the SCM68000 to reset. 4.3.1 Reset has more detailed information about the RESET instruction. 3-32 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. S0 S2 S4 S6 S8 S0 Bus Operation S2 S4 S6 CLKI FC2–FC0 A31–A0 ASB UDSB and/or LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D15–D0 BERRB ≥1 CLOCK PERIOD HALTIB AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE READ HALT RETRY Figure 3-26. Retry Bus Cycle Timing Diagram MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-33 Freescale Semiconductor, Inc. Bus Operation S0 S2 S4 S6 S0 S2 S4 S6 CLKI FC2–FC0 A31–A0 ASB UDSB and/or LDSB Freescale Semiconductor, Inc... DSB RWB ERWB DTACKB D15–D0 HALTIB AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE READ HALT READ Figure 3-27. Halt Operation Timing Diagram 3-34 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation 3.4.4 Double Bus Fault When a bus error exception occurs, the SCM68000 begins exception processing by stacking information on the supervisor stack. If another bus error occurs during exception processing (i.e., before execution of another instruction begins) the SCM68000 halts and asserts HALTOB. This situation is a double bus fault. Only an external reset operation can restart a SCM68000 halted due to a double bus fault. Freescale Semiconductor, Inc... A retry operation does not initiate exception processing; a bus error during a retry operation does not cause a double bus fault. The SCM68000 can continue to retry a bus cycle indefinitely if external hardware requests. A double bus fault occurs during a reset operation when a bus error occurs while the SCM68000 is reading the vector table (before the first instruction is executed). The reset operation is described in 4.3.1 Reset. 3.5 ASYNCHRONOUS OPERATION All asynchronous input signals to the SCM68000 are synchronized before being used internally. As shown in Figure 3-28, synchronization requires a maximum of one cycle of the system clock, assuming that the asynchronous input setup time (spec #47, defined in Section 7 Electrical Characteristics) has been met. The input asynchronous signal is sampled on the falling edge of the clock and is valid internally after the next rising edge. The asynchronous inputs are AVECB, RESETIB, HALTIB, DTACKB, BERRB, IPLB2–IPLB0, BRB, and BGACKB. INTERNAL SIGNAL VALID EXTERNAL SIGNAL SAMPLED CLKI BRB (EXTERNAL) 47 BRB (INTERNAL) Figure 3-28. External Asynchronous Signal Synchronization MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-35 Freescale Semiconductor, Inc. Bus Operation To achieve clock frequency independence at a system level, the bus can be operated in an asynchronous manner. Asynchronous bus operation uses the bus handshake signals to control the transfer of data. The handshake signals are ASB, UDSB, LDSB, DSB, DTACKB, BERRB, HALTIB, and AVECB. ASB indicates the start of the bus cycle, and UDSB, LDSB, and DSB signal valid data for a write cycle. After placing the requested data on the data bus (read cycle) or latching the data (write cycle), the slave device (memory or peripheral) asserts DTACKB to terminate the bus cycle. If no device responds or if the access is invalid, external control logic asserts BERRB, or BERRB and HALTIB, to abort or retry the cycle. Figure 3-29 shows the use of the bus handshake signals in a fully asynchronous read cycle. Figure 3-30 shows a fully asynchronous write cycle. Freescale Semiconductor, Inc... A31–A0 ASB RWB UDSB and/or LDSB and DSB D15–D0 DTACKB Figure 3-29. Fully Asynchronous Read Cycle A31–A0 ASB RWB UDSB and/or LDSB and DSB D15–D0 DTACKB Figure 3-30. Fully Asynchronous Write Cycle In the asynchronous mode, the accessed device operates independently of the frequency and phase of the system clock. For example, the MC68681 dual universal asynchronous receiver/transmitter (DUART) does not require any clock-related information from the bus master during a bus transfer. Asynchronous devices are designed to operate correctly with processors at any clock frequency when relevant timing requirements are observed. 3-36 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation A device can use a clock at the same frequency as the system clock, but without a defined phase relationship to the system clock. This mode of operation is pseudo-asynchronous; it increases performance by observing timing parameters related to the system clock frequency without being completely synchronous with that clock. A common example of a pseudo-asynchronous device is a memory array designed to operate with the SCM68000 at a certain frequency but is not driven by the SCM68000 clock. Freescale Semiconductor, Inc... The designer of a fully asynchronous system can make no assumptions about address setup time, which could be used to improve performance. However, with the system clock frequency known, the slave device can be designed to decode the address bus before recognizing an address strobe. Parameter #11 (refer to Section 7 Electrical Characteristics for all parameters listed in this section) specifies the minimum time before address strobe during which the address is valid. In a pseudo-asynchronous system, timing specifications allow DTACKB to be asserted for a read cycle (see Figure 3-31) before the data from a slave device is valid. The length of time that DTACKB may precede data is specified as parameter #31 in Figure 3-31. This parameter must be met to ensure the validity of the data latched into the SCM68000. No maximum time is specified from the assertion of ASB to the assertion of DTACKB. During this unlimited time, the SCM68000 inserts wait cycles in one-clock-period increments until DTACKB is recognized. Figure 3-31 shows the important timing parameters for a pseudoasynchronous read cycle. A31–A0 11 ASB 13 15 17 RWB UDSB and/or LDSB and DSB 28 29 DATA 31 DTACKB Figure 3-31. Pseudo-Asynchronous Read Cycle During a write cycle (see Figure 3-32), after the SCM68000 asserts ASB but before driving the data bus, the SCM68000 drives RWB to a logic low. Parameter #55 specifies the mini- MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-37 Bus Operation Freescale Semiconductor, Inc. mum time between the transition of RWB and the driving of the data bus, which is effectively the maximum turnoff time for any device driving the data bus. Freescale Semiconductor, Inc... After the SCM68000 places valid data on the bus, it asserts the data strobe signals. A data setup time, similar to the address setup time previously discussed, can be used to improve performance. Parameter #26 is the minimum time a slave device can accept valid data before recognizing a data strobe. The slave device asserts DTACKB after it accepts the data. Parameter #25 is the minimum time after negation of the strobes during which the valid data remains on the address bus. Parameter #28 is the maximum time between the negation of the strobes by the SCM68000 and the negation of DTACKB by the slave device. If DTACKB remains asserted past the time specified by parameter #28, the SCM68000 may recognize it as being asserted early in the next bus cycle and may terminate that cycle prematurely. Figure 3-32 shows the important timing parameters for a pseudo-asynchronous write cycle. A31–A0 13 11 ASB 17 20A RWB 22 UDSB and/or LDSB and DSB 55 26 28 25 D15–D0 DTACKB Figure 3-32. Pseudo-Asynchronous Write Cycle 3.6 SYNCHRONOUS OPERATION In some systems, external devices use the system clock to generate DTACKB and other asynchronous input signals. This synchronous operation provides a closely coupled design with maximum performance, appropriate for frequently accessed parts of the system. For example, memory can operate in the synchronous mode, but peripheral devices operate asynchronously. For a synchronous device, the designer uses explicit timing information shown in Section 7 Electrical Characteristics. These specifications define the state of all bus signals relative to a specific state of the SCM68000 clock. The standard SCM68000 bus cycle consists of four clock periods (eight bus cycle states) and, optionally, an integral number of clock cycles inserted as wait states. Wait states are 3-38 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation inserted as required to allow sufficient response time for the external device. The following state-by-state description of the bus cycle differs from those descriptions in 3.1.1 Read Cycle and 3.1.2 Write Cycle by including information about the important timing parameters that apply in the bus cycle states. Figure 3-33 shows a synchronous read cycle and the important timing parameters that apply. The timing for a synchronous write cycle, including relevant timing parameters, is shown in Figure 3-34. S0 Freescale Semiconductor, Inc... CLKI S1 S2 S3 S4 S5 S6 S7 S0 6A 6 FC2–FC0 A31–A0 9 12 ASB UDSB and/or LDSB and DSB 18 RWB ERWB 47 28 DTACKB 27 29 D15–D0 C6 TSCAE Figure 3-33. Synchronous Read Cycle STATE 0 The bus cycle starts in S0, during which the clock is high. At the rising edge of S0, the function code for the access is driven externally. Parameter #6A defines the delay from this rising edge until the function codes are valid. The address of the accessed device is driven externally with an assertion delay defined by parameter #6. The RWB and ERWB signals are driven to logic high; parameter #18 defines the delay from the same rising edge to the transition of RWB. The minimum value for parameter #18 applies to a read MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-39 Freescale Semiconductor, Inc. Bus Operation S0 CLKI S1 S2 S3 9 9 S4 S5 S6 S7 S0 6A 6 FC2–FC0 A31–A0 12 Freescale Semiconductor, Inc... ASB UDSB and/or LDSB and DSB 20 18 RWB ERWB C3 47 28 DTACKB 23 53 D15–D0 C6 TSCAE Figure 3-34. Synchronous Write Cycle cycle preceded by a write cycle; this value is the maximum hold time for a logic low on RWB beyond the initiation of the read cycle. The TSCAE signal is driven to a logic high. Parameter #C6 defines the delay from the rising edge of the clock to the assertion of TSCAE. STATE 1 Entering S1, a low period of the clock, TSCAE is driven to a logic low. During a write, the ERWB signal is driven to a logic low with an assertion delay defined by parameter #C3. STATE 2 On the rising edge of S2, a high period of the clock, ASB is asserted. During a read cycle, UDSB, LDSB, and DSB are also asserted at this time. Parameter #9 defines the assertion delay for these signals. For a write cycle, the RWB signal is driven to a logic low with a delay defined by parameter #20. 3-40 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation Freescale Semiconductor, Inc... STATE 3 On the falling edge of the clock entering S3 during a write cycle, the data bus is driven out of the high-impedance state with the data being written to the accessed device. Parameter #23 specifies the data assertion delay. In a read cycle, no signal is altered in S3. STATE 4 Entering the high clock period of S4 during a write cycle, UDSB, LDSB, and DSB are asserted on the rising edge of the clock. As in S2 for a read cycle, parameter #9 defines the assertion delay from the rising edge of S4 for UDSB, LDSB, and DSB. In a read cycle, no signal is altered by the SCM68000 during S4. Until the falling edge of the clock at the end of S4 (beginning of S5), no response from any external device except RESETIB is acknowledged by the SCM68000. If either DTACKB or BERRB is asserted before the falling edge of S4 and satisfies the input setup time defined by parameter #47, the SCM68000 enters S5 and the bus cycle continues. If either DTACKB or BERRB is asserted but without meeting the setup time defined by parameter #47, the SCM68000 may recognize the signal and continue the bus cycle; the result is unpredictable. If neither DTACKB nor BERRB is asserted before the next falling edge of the clock, the bus cycle remains in S4, and wait states (complete clock cycles) are inserted until one of the bus cycle termination conditions is met. STATE 5 S5 is a low period of the clock, during which the SCM68000 does not alter any signal. STATE 6 S6 is a high period of the clock, during which data for a read operation is set up relative to the falling edge (entering S7). Parameter #27 defines the minimum period by which the data must precede the falling edge. For a write operation, the SCM68000 changes no signal during S6. STATE 7 On the falling edge of the clock entering S7, the SCM68000 latches data and negates ASB and UDSB, LDSB, and DSB during a read cycle. The hold time for these strobes from this falling edge is specified by parameter #12. The hold time for data relative to the negation of ASB and UDSB, LDSB, and DSB is specified by parameter #29. For a write cycle, only ASB and UDSB, LDSB, and DSB are negated; timing parameter #12 also applies. During a write cycle, on the rising edge of the clock at the end of S7 (which may be the start of S0 for the next bus cycle), the SCM68000 also places the data bus in the highimpedance state and drives RWB and ERWB to a logic high. External logic circuitry should respond to the negation of the ASB and UDSB, LDSB, and DSB by negating DTACKB and/or BERRB. Parameter #28 is the hold time for DTACKB, and parameter #30 is the hold time for BERRB. A key consideration when designing in a synchronous environment is the timing for the assertion of DTACKB and BERRB by an external device. To properly use external inputs, the SCM68000 must synchronize these signals to the internal clock. The SCM68000 must sample the external signal and determine whether to consider it high or low during the suc- MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-41 Bus Operation Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... ceeding clock period. The external signal has no defined phase relationship to the CPU clock and may be changing at sampling time. Successful synchronization requires that the internal machine receives a valid logic level (not a metastable signal), whether the input is high, low, or in transition. Metastable signals propagating through synchronous machines can produce unpredictable operation. Parameter #47 of Section 7 Electrical Characteristics is the asynchronous input setup time. Signals that meet parameter #47 are guaranteed to be recognized at the next falling edge of the system clock. However, signals that do not meet parameter #47 are not guaranteed to be recognized. In addition, if DTACKB is recognized on a falling edge, valid data is latched into the SCM68000 (during a read cycle) on the next falling edge, provided the data meets the setup time required (parameter #27). When parameter #27 has been met, parameter #31 may be ignored. If DTACKB is asserted with the required setup time before the falling edge of S4, no wait states are incurred, and the bus cycle runs at its maximum speed of four clock periods. 3.7 THE RELATIONSHIP OF DTACKB, BERRB, AND HALTIB To properly control termination of a bus cycle for a retry or a bus error condition, DTACKB, BERRB, and HALTIB should meet the setup and hold time to the falling edge of the SCM68000 clock. Specification #48 (see Section 7 Electrical Characteristics), can be ignored when DTACKB, BERRB, and HALTIB are stable at the falling edge of the SCM68000 clock. The possible bus cycle termination can be summarized as follows (case numbers refer to Table 3-1): • Normal Termination—DTACKB is asserted. BERRB and HALTIB remain negated (case 1). • Halt Termination—HALTIB is asserted coincident with or preceding DTACKB, and BERRB remains negated (case 2). • Bus Error Termination—BERRB is asserted in lieu of, coincident with, or preceding DTACKB (case 3). HALTIB remains negated, and BERRB is negated coincident with or after DTACKB. • Retry Termination—HALTIB and BERRB are asserted in lieu of, coincident with, or before DTACKB (cases 4, 5, and 6). BERRB is negated coincident with or after DTACKB. HALTIB must be held at least one cycle after BERRB. Table 3-1 shows the details of the resulting bus cycle termination for various combinations of signal sequences. 3-42 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Bus Operation Table 3-1. DTACKB, BERRB, and HALTIB Assertion Results Asserted on Rising Edge of Control Result State* Signal Input N N+2 DTACKB A S 1 Normal cycle terminate and continue. BERRB NA X HALTIB NA X DTACKB A S Normal cycle terminate and halt. Continue 2 BERRB NA X when HALTIB negated. HALTIB A/S S DTACKB X X 3 Terminate and take bus error trap. BERRB A S HALTIB NA NA DTACKB NA X 4 Terminate and retry when HALTIB negated. BERRB A S HALTIB NA A DTACKB X X 5 Terminate and retry when HALTIB negated. BERRB A S HALTIB A S DTACKB NA X 6 Terminate and retry when HALTIB negated. BERRB NA A HALTIB A S LEGEND: N — The number of the current even bus state (e.g., S4, S6, etc.) A — Signal asserted in this bus state NA — Signal not asserted in this bus state X — Don't care S — Signal asserted in preceding bus state and remains asserted in this state *The DTACKB, BERRB, and HALTIB signals are subject to the setup and hold time (spec #47, defined in Section 7 Electrical Characteristics) before they are sampled on the falling edge of the previous state. “Asserted” in this table refers to the time when the signals are valid internally. See 3.5 Asynchronous Operation for more details on external asynchronous signal synchronization. Freescale Semiconductor, Inc... Case No. The negation of BERRB and HALTIB under several conditions is shown in Table 3-2. DTACKB is assumed to be negated normally in all cases. For reliable operation, both DTACKB and BERRB should be negated when address strobe is negated. Table 3-2 shows when BERRB and HALTIB should be negated with respect to when they were asserted to produce various results. The first column describes which case in Table 31 is being used for asserting the signals. The third column shows the current bus state and the fourth column shows the following bus state. The last column describes what will happen in the next bus cycle given the conditions described in the previous columns. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 3-43 Freescale Semiconductor, Inc. Bus Operation Table 3-2. BERRB and HALTIB Negation Results Freescale Semiconductor, Inc... Conditions of Termination in Table 3-1 Negated on Rising Edge of Control State* Signal Input N N+2 BERRB • HALTIB • BERRB • • HALTIB BERRB • • HALTIB BERRB • HALTIB none BERRB • HALTIB none BERRB • HALTIB • BERRB • • HALTIB BERRB • • HALTIB Results—Next Cycle Normal May lengthen next cycle. (cases 1 and 2) Normal May lengthen next cycle. (cases 1 and 2) Normal If next cycle is started, it will be terminated as a bus error. (cases 1 and 2) Normal If next cycle is started, it will be terminated as a bus error. (cases 1 and 2) Bus Error Takes bus error trap. (case 3) Rerun Illegal sequence; usually traps to vector number 0. (cases 4, 5, and 6) Rerun Illegal sequence; usually traps to vector number 0. (cases 4, 5, and 6) Rerun Reruns the bus cycle. (cases 4, 5, and 6) LEGEND: N — The number of the current even bus state (e.g., S4, S6, etc.) • — Signal is negated in this bus state. none — Signal was not asserted. *The BERRB and HALTIB signals are subject to the setup and hold time (spec #47, defined in Section 7 Electrical Characteristics) before they are sampled on the falling edge of the previous state. “Negated” in this table refers to the time when the signals are valid internally. See 3.5 Asynchronous Operation for more details on the external asynchronous signal synchronization. EXAMPLE A: A system uses a watchdog timer to terminate accesses to unused address space. The timer asserts BERRB after timeout (case 3). EXAMPLE B: A system uses error detection on random-access memory (RAM) contents. The system designer may: 1. Delay DTACKB until the data is verified. If data is invalid, return BERRB and HALTIB simultaneously to retry the error cycle (case 5). 2. Delay DTACKB until the data is verified. If data is invalid, return BERRB at the same time as DTACKB to take a bus error trap (case 3). 3-44 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... SECTION 4 EXCEPTION PROCESSING This section describes operations of the SCM68000 (EC000 core)1 outside the normal processing associated with the execution of instructions. The functions of the bits in the supervisor portion of the status register are described: the supervisor/user bit, the trace enable bit, and the interrupt priority mask. Finally, the sequence of memory references and actions taken by the SCM68000 for exception conditions are described in detail. The SCM68000 is always in one of three processing states: normal, exception, or halted. The normal processing state is associated with instruction execution; the memory references are to fetch instructions and operands and to store results. A special case of the normal state is the stopped state, resulting from the execution of a STOP instruction. In this state, no further memory references are made. The exception processing state is associated with interrupts, trap instructions, tracing, and other exceptional conditions. The exception may be internally generated by an instruction or by an unusual condition arising during the execution of an instruction. Externally, exception processing can be forced by an interrupt, a bus error, or a reset. Exception processing provides an efficient context switch so that the SCM68000 can handle unusual conditions. The halted processing state is an indication of catastrophic hardware failure. For example, if during the exception processing of a bus error another bus error occurs, the SCM68000 assumes the system is unusable and halts. Only an external reset can restart the halted SCM68000. Note that the stopped state is not the same as the halted state. 4.1 PRIVILEGE MODES The SCM68000 operates in one of two levels of privilege: the supervisor mode or the user mode. The privilege mode determines which operations are legal. The mode is optionally used by an external memory management device to control and translate accesses. The mode is also used to choose between the supervisor stack pointer (SSP) and the user stack pointer (USP) in instruction references. The privilege mode is a mechanism for providing security in a computer system. Programs should access only their own code and data areas and should be restricted from accessing information that they do not need and must not modify. The operating system executes in the supervisor mode, allowing it to access all resources required to perform the overhead tasks for the user mode programs. Most programs execute in user mode, in which the accesses are controlled and the effects on other parts of the system are limited. 1. The SCM68000 is the name of the Verilog model for the EC000 Core. The remainder of this section will refer to the part as only the SCM68000 MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-1 Exception Processing Freescale Semiconductor, Inc. 4.1.1 Supervisor Mode The supervisor mode has the higher level of privilege. The mode of the SCM68000 is determined by the S-bit of the status register; if the S-bit is set, the SCM68000 is in the supervisor mode. All instructions can be executed in the supervisor mode. The bus cycles generated by instructions executed in the supervisor mode are classified as supervisor references. While the SCM68000 is in the supervisor mode, those instructions that use either the system stack pointer implicitly or address register seven explicitly access the SSP. 4.1.2 User Mode Freescale Semiconductor, Inc... The user mode has the lower level of privilege. If the S-bit of the status register is clear, the SCM68000 is executing instructions in the user mode. Most instructions execute identically in either mode. However, some instructions having important system effects are designated privileged. For example, user programs are not permitted to execute the STOP instruction or the RESET instruction. To ensure that a user program cannot enter the supervisor mode except in a controlled manner, the instructions that modify the entire status register are privileged. To aid in debugging system software, the move to user stack pointer (MOVE to USP) and move from user stack pointer (MOVE from USP) instructions are privileged. The bus cycles generated by an instruction executed in user mode are classified as user references. Classifying a bus cycle as a user reference allows an external memory management device to control access to protected portions of the address space. While the SCM68000 is in the user mode, those instructions that use either the system stack pointer implicitly or address register seven explicitly access the USP. 4.1.3 Privilege Mode Changes The transition from supervisor to user mode can be accomplished by any of four instructions: return from exception (RTE), move to status register (MOVE to SR), AND immediate to status register (ANDI to SR), and exclusive OR immediate to status register (EORI to SR). The RTE instruction fetches the new status register and program counter from the supervisor stack and loads each into its respective register. Next, it begins the instruction fetch at the new program counter address in the privilege mode determined by the S-bit of the new contents of the status register. Once the SCM68000 is in the user mode and is executing instructions, only exception processing can change the privilege mode. During exception processing, the current state of the S-bit of the status register is saved, and the S-bit is set, putting the SCM68000 in the supervisor mode. Therefore, when instruction execution resumes at the address specified to process the exception, the SCM68000 is in the supervisor privilege mode. The MOVE to SR, ANDI to SR, and EORI to SR instructions fetch all operands in the supervisor mode, perform the appropriate update to the status register, and then fetch the next instruction at the next sequential program counter address in the privilege mode determined by the new S-bit. The instruction following the MOVE/ANDI/EORI SR instruction will be fetched twice, once from the old FC space and again from the new FC space (even if the S- 4-2 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing bit was not modified). External memory management hardware should not treat the access in the old FC space as an error. 4.1.4 Reference Classification When the SCM68000 makes a reference, it classifies the reference according to the encoding of the three function code output lines. This classification allows external translation of addresses, control of access, and differentiation of special SCM68000 states, such as CPU space (used by interrupt acknowledge cycles). Table 4-1 lists the classification of references. Freescale Semiconductor, Inc... Table 4-1. Reference Classification Function Code Output FC2 FC1 FC0 0 0 0 0 1 0 0 1 0 0 1 Address Space (Reserved)* User Data User Program (Undefined)* 1 0 0 1 (Reserved)* 0 1 Supervisor Data 1 1 1 0 Supervisor Program 1 1 1 CPU Space * Address space 3 is reserved for user definition, while 0 and 4 are reserved for future use by Motorola. 4.1.5 CPU Space Cycle A CPU space cycle, indicated when the function codes are all high, is a special cycle. Bits A19–A16 of the address bus identify sixteen types of CPU space cycles. The interrupt acknowledge cycle, in which A19–A16 are high, is currently the only defined CPU space cycle for the SCM68000. Other configurations of A19–A16 are reserved by Motorola to define other types of CPU cycles used in other M68000 Family microprocessors. Figure 41 shows the encoding of CPU space addresses. INTERRUPT ACKNOWLEDGE FUNCTION CODE 2 0 31 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 LEVEL 1 1 ADDRESS BUS 19 16 3 1 0 1 CPU SPACE TYPE FIELD Figure 4-1. CPU Space Address Encoding 4.1.5.1 INTERRUPT ACKNOWLEDGE CYCLE. The interrupt acknowledge cycle places the level of the interrupt being acknowledged on address bits A3–A1 and drives all other address lines high. For a vectored interrupt, the interrupt acknowledge cycle reads a vector number when the interrupting device places a vector number on the data bus and asserts DTACKB to acknowledge the cycle. The timing diagram for a vectored interrupt is shown in Figure 4-2. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-3 Exception Processing Freescale Semiconductor, Inc. IPLB2–IPLB0 VALID INTERNALLY IPLB2–IPLB0 SAMPLED IPLB2–IPLB0 TRANSITION S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 CLKI FC2–FC0 FCx = $5 A31–A4 A3–A1 A0 Freescale Semiconductor, Inc... ASB UDSB LDSB DSB RWB ERWB DTACKB D15–D8 D7–D0 DOEB AOEB COEB RMCB SIZ1–SIZ0 TSCAE IPLB2–IPLB0 LAST BUS CYCLE OF INSTRUCTION (READ OR WRITE) INTERNAL OPERATIONS STACK LOW WORD OF PC ON SSP Figure 4-2. Interrupt Acknowledge Cycle Timing Diagram (Sheet 1 of 3) 4-4 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S7 S0 S1 S2 S3 S4 S5 S6 S7 CLKI FCx = $5 FC2–FC0 FCx = $5 A31–A4 A3–A1 A0 ASB Freescale Semiconductor, Inc... UDSB LDSB DSB RWB ERWB DTACKB D15–D8 D7–D0 DOEB AOEB COEB RMCB SIZ1–SIZ0 TSCAE IPLB2–IPLB0 IACK CYCLE* JUSTIFY VECTOR NUMBER ACQUISITION STACK STATUS REGISTER ON SSP STACK UPPER WORD OF PC ON SSP *During an IACK cycle, although a vector number is one byte, both data strobes are asserted due to the microcode used for exception processing. The processor does not recognize anything on D15–D8 at this time. Figure 4-2. Interrupt Acknowledge Cycle Timing Diagram (Sheet 2 of 3) MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-5 Exception Processing Freescale Semiconductor, Inc. S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 CLKI FC2–FC0 FCx = $5 FCx = $5 FCx = $6 A31–A4 EXCEPTION VECTOR A3–A1 A0 ASB Freescale Semiconductor, Inc... UDSB LDSB DSB RWB ERWB DTACKB D15–D8 D7–D0 DOEB AOEB COEB RMCB SIZ1–SIZ0 TSCAE IPLB2–IPLB0 READ UPPER WORD OF EXCEPTION VECTOR READ LOWER WORD OF EXCEPTION VECTOR RESUME INSTRUCTION EXECUTION IN INTERRUPT HANDLER Figure 4-2. Interrupt Acknowledge Cycle Timing Diagram (Sheet 3 of 3) 4-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing Although the timing diagram in Figure 4-2 is for the 16-bit mode, the following list describes the sequence of events executed by the processor for a vectored and autovectored interrupt in either mode. 1. Make an internal copy of the current status register. 2. In the status register, set the S bit, clear the T bit, and replace the interrupt mask with the level of the interrupt that was recognized. No bus activity occurs during the six clocks required to complete steps 1 and 2. 3. Stack the lower word of the program counter on the supervisor stack. Freescale Semiconductor, Inc... 4. Run an interrupt acknowledge bus cycle for vector number acquisition. This step takes four clock cycles with no wait states. For an autovectored interrupt, this step takes ten to eighteen clock cycles. 5. Justify the vector number for vector acquisition. No bus activity occurs during the four clock periods that are required for this step. 6. Stack the status register that was saved in step 1 on the supervisor stack. 7. Stack the upper word of the program counter on the supervisor stack. 8. Read the upper word of the exception vector. 9. Read the lower word of the exception vector. 10. Fetch the first word of the first instruction of the interrupt handler routine. 11. Continue fetching instructions and executing as normal until the interrupt handling routine is complete. 4.1.5.2 AUTOVECTORED INTERRUPT ACKNOWLEDGE CYCLE. An interrupt acknowledge cycle can be autovectored if AVECB is asserted instead of DTACKB in state 4 (S4). For an autovectored interrupt, the vector number is internally generated to be $18 plus the interrupt level. The autovector capability provides vectors for each of the six maskable interrupt levels and for the nonmaskable interrupt level. The timing diagram for an autovectored interrupt acknowledge cycle is shown in Figure 4-3. After recognizing AVECB, the processor waits until the test clock (TESTCLK) signal is low. Figure 4-4 shows the best-case timing of an autovectored interrupt acknowledge cycle, while Figure 4-5 shows the worst-case timing. The cycle length is entirely dependent on the relationship of the assertion of AVECB to the test clock. When AVECB is recognized on the falling edge of S4 no extra wait states are inserted. The only wait states inserted are those required to synchronize AVECB with the test clock. The synchronization delay is an integral number of system clock cycles within the following extremes: 1. Best Case—the assertion of AVECB is recognized on the falling edge of the system clock that occurs three clock cycles before TESTCLK rises (or three clock cycles after TESTCLK falls). 2. Worst Case—the assertion of AVECB is recognized on the falling edge of the system clock that occurs two clock cycles before TESTCLK rises (or four clock cycles after TESTCLK falls). MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-7 Exception Processing Freescale Semiconductor, Inc. S0 S2 S4 S6 S0 S2 S4 S6 S6 S8 S12 S16 S20 CLKI FC2–FC0 A3–A1 A31–A4 A0 ASB UDSB Freescale Semiconductor, Inc... LDSB DSB RWB ERWB DTACKB D15–D8 D7–D0 IPLB2–IPLB0 DOEB AOEB COEB RMCB SIZ1–SIZ0 TSCAE AVECB STACK LOW WORD OF PC ON SSP AUTOVECTOR * OPERATION NOTE: Although both UDSB and LDSB are asserted, no data is read from the bus during the autovector cycle. The vector number is generated internally. * An autovector operation will take between 10 and 18 clock cycles. See the best and worst case examples on the following pages. Figure 4-3. Autovector Operation Timing Diagram The bus cycle ends in S7 when the SCM68000 negates the address and data strobes, and the test clock goes low. The AVECB signal must be removed within one clock cycle after the negation of address strobe. Data transfer acknowledge (DTACKB) must not be asserted while AVECB is asserted. The state machine in the processor looks for DTACKB to identify an asynchronous bus cycle and 4-8 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. S0 S2 S4 S6 S8 S10 S12 S14 S16 Exception Processing S18 CLKI FC2–FC0 A3–A1 A31–A4 A0 ASB LDSB Freescale Semiconductor, Inc... UDSB DSB RWB ERWB DTACKB DATA OUT DATA IN AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE TESTCLK AVECB NOTE: Although both UDSB and LDSB are asserted, no data is read from the bus during the autovector cycle. The vector number is generated internally. Figure 4-4. Autovector Operation Timing Diagram—Best Case for AVECB to identify an autovectored interrupt acknowledge cycle. If both signals are asserted, the operation of the state machine is unpredictable. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-9 Freescale Semiconductor, Inc. Exception Processing S0 S2 S4 S6 S8 S12 S16 S20 S24 S28 S32 S36 CLKI FC2–FC0 A3–A1 A31–A4 A0 ASB LDSB Freescale Semiconductor, Inc... UDSB DSB RWB ERWB DTACKB DATA OUT DATA IN AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE TESTCLK AVECB NOTE: Although both UDSB and LDSB are asserted, no data is read from the bus during the autovector cycle. The vector number is generated internally. Figure 4-5. Autovector Operation Timing Diagram—Worst Case 4-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing 4.2 EXCEPTION PROCESSING DESCRIPTION The processing of an exception occurs in four steps, with variations for different exception causes: 1. Make a temporary copy of the status register and set the status register for exception processing. 2. Obtain the exception vector. 3. Save the current SCM68000 context. 4. Obtain a new context and resume instruction processing. Freescale Semiconductor, Inc... 4.2.1 Exception Vectors An exception vector is a memory location from which the SCM68000 fetches the address of a routine to handle an exception. Each exception type requires a handler routine and a unique vector. All exception vectors are two words in length (see Figure 4-6) and reside in the supervisor data space, except for the reset vector, which is four words long and resides in the supervisor program space. EVEN BYTE (A0 = 0) ODD BYTE (A0 = 1) WORD 0 NEW PROGRAM COUNTER (HIGH) A1 = 0 WORD 1 NEW PROGRAM COUNTER (LOW) A1 = 1 Figure 4-6. Exception Vector Format A vector number is an 8-bit number that is multiplied by four to obtain the address of an exception vector. The SCM68000 forms the vector address by left-shifting the vector number two bit positions and zero-filling the upper-order bits to obtain a 32-bit long-word vector address (see Figure 4-7). A31 A10 ALL ZEROES A9 V7 A8 V6 A7 V5 A6 V4 A5 V3 A4 V2 A3 V1 A2 V0 A1 0 A0 0 Figure 4-7. Address Translated from 8-Bit Vector Number The vector numbers can be found in the vector table (see Table 4-2) which is 512 words long (1024 bytes), starting at address 0 and proceeding through address 1023 (decimal). The vector table provides 255 unique vectors, some of which are reserved for trap and other system function vectors. Of the 255 vectors, 192 are reserved for user interrupt vectors. However, the first 64 entries are not protected, so user interrupt vectors may overlap at the discretion of the system designer. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-11 Exception Processing Freescale Semiconductor, Inc. Table 4-2. Exception Vector Assignment Freescale Semiconductor, Inc... Vectors Numbers Hex Decimal Address Dec Hex Space5 Assignment 0 0 0 000 SP Reset: Initial SSP2 1 1 4 004 SP 2 3 4 5 6 7 8 9 A B 2 3 4 5 6 7 8 9 10 11 8 12 16 20 24 28 32 36 40 44 008 00C 010 014 018 01C 020 024 028 02C SD SD SD SD SD SD SD SD SD SD Reset: Initial PC2 Bus Error Address Error Illegal Instruction Divide-by-Zero CHK Instruction TRAPV Instruction Privilege Violation Trace Line 1010 Emulator Line 1111 Emulator C 121 48 030 SD (Unassigned, Reserved) D 131 52 034 SD (Unassigned, Reserved) E 141 56 038 SD (Unassigned, Reserved) F 15 Uninitialized Interrupt Vector 16–231 03C 040 05C SD 10–17 60 64 92 SD (Unassigned, Reserved) 18 24 96 060 SD 19 1A 1B 1C 1D 1E 1F 25 26 27 28 29 30 31 32–47 SD TRAP Instruction Vectors4 30–3F 48–631 SD (Unassigned, Reserved) 40–FF 64–255 064 068 06C 070 074 078 07C 080 0BC 0C0 0FF 100 3FC SD SD SD SD SD SD SD 20–2F 100 104 108 112 116 120 124 128 188 192 255 256 1020 Spurious Interrupt3 Level 1 Interrupt Autovector Level 2 Interrupt Autovector Level 3 Interrupt Autovector Level 4 Interrupt Autovector Level 5 Interrupt Autovector Level 6 Interrupt Autovector Level 7 Interrupt Autovector SD User Interrupt Vectors NOTES: 1.Vector numbers 12–14, 16–23, and 48–63 are reserved for future enhancements by Motorola. No user peripheral devices should be assigned these numbers. 2.Reset vector (0) requires four words, unlike the other vectors which only require two words, and is located in the supervisor program space. 3.The spurious interrupt vector is taken when there is a bus error indication during interrupt processing. 4.TRAP #n uses vector number 32+ n (decimal). 5.SP denotes supervisor program space, and SD denotes supervisor data space. 4-12 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing 4.2.2 Kinds of Exceptions Exceptions are generated internally or externally, depending on the reason for the exception. The external exceptions are generated by interrupts, bus errors, and a reset. The interrupts are requests from peripheral devices for SCM68000 action. For interrupt requests, the peripheral must provide an 8-bit vector number on data bus lines D7-D0 (see Figure 4-8). The bus error and reset inputs are used for access control and SCM68000 restart. D15 D8 IGNORED D7 V7 D6 V6 D5 V5 D4 V4 D3 V3 D2 V2 D1 V1 D0 V0 Where V7 is the MSB of the vector number and v0 is the LSB of the vector number. Freescale Semiconductor, Inc... Figure 4-8. Interrupt Vector Number Format The internal exceptions are generated by instructions, address errors, or tracing. The trap (TRAP), trap on overflow (TRAPV), check register against bounds (CHK), and divide (DIV) instructions can generate exceptions as part of their instruction execution. In addition, illegal instructions, word access to odd addresses, and privilege violations initiate exceptions. Tracing is similar to a very high priority interrupt which is internally generated following each instruction. 4.2.3 Multiple Exceptions These paragraphs describe the processing that occurs when multiple exceptions arise simultaneously. Exceptions can be grouped by their occurrence and priority. Group 0 exceptions are reset, bus error, and address error. These exceptions cause the instruction currently being executed to abort and the exception processing to commence within two clock cycles. Group 1 exceptions are trace and interrupt, privilege violations, and illegal instructions. Trace and interrupt exceptions allow the current instruction to execute to completion, but pre-empt the execution of the next instruction by forcing exception processing to occur. A privilege-violating instruction or an illegal instruction is detected when it is the next instruction to be executed. Group 2 exceptions occur as part of the normal processing of instructions. TRAP, TRAPV, CHK, and divide-by-zero exceptions are in this group. For these exceptions, normal execution of an instruction may lead to exception processing. Group 0 exceptions have the highest priority and group 2 exceptions have the lowest priority. Within group 0, reset has the highest priority, followed by address error and then bus error. Within group 1, trace has priority over external interrupts, which in turn takes priority over illegal instruction and privilege violation. Since only one instruction can be executed at a time, no priority relationship applies within group 2. The priority relationship between two exceptions determines which is taken, or taken first, if the conditions for both arise simultaneously. Therefore, if a bus error occurs during a TRAP instruction, the bus error takes precedence, and TRAP instruction processing is aborted. In another example, if an interrupt request occurs during the execution of an instruction while the T-bit is asserted, the trace exception has priority and is processed first. Before instruction execution resumes, however, the interrupt exception is also processed, and instruction MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-13 Exception Processing Freescale Semiconductor, Inc. processing finally commences in the interrupt handler routine. A summary of exception grouping and priority is given in Table 4-3. Table 4-3. Exception Grouping and Priority Group 0 1 Freescale Semiconductor, Inc... 2 Exception Reset Address Error Bus Error Trace Interrupt Illegal Privilege TRAP, TRAPV CHK Divide-by-Zero Processing Exception Processing Begins as Soon as the Bus Cycle Is Terminated Exception Processing Begins Before the Next Instruction Exception Processing Is Started by Normal Instruction Execution As an example, consider trap, trace, and interrupt exceptions that occurred simultaneously and are pending. The exception processing for the trap occurs first, followed immediately by exception processing for the trace, and then for the interrupt. When the SCM68000 resumes normal instruction execution, it is in the interrupt handler, which returns to the trace handler, which returns to the trap execution handler. The reset exception handler is always executed first because it clears all other exceptions. 4.2.4 Exception Stack Frames Exception processing saves the most volatile portion of the current SCM68000 context on the top of the supervisor stack. This context is organized in a format called the exception stack frame. Although this information varies with type of exception, it always includes the status register and program counter of the SCM68000 when the exception occurred. The amount and type of information saved on the stack are determined by the exception type. Exceptions are grouped by type according to priority of the exception. Of the group 0 exceptions, the reset exception does not stack any information. The information stacked by a bus error or address error exception is described in 4.3.7 Bus Error and is shown in Figure 4-14. The groups 1 and 2 exception stack frame is shown in Figure 4-9. Only the program counter and status register are saved. The program counter points to the next instruction to be executed after exception processing. 4.2.5 Exception Processing Sequence In the first step of exception processing, an internal copy is made of the status register. After the copy is made, the S-bit of the status register is set, putting the SCM68000 into the supervisor mode. Also, the T-bit is cleared, which allows the exception handler to execute unhindered by tracing. For the reset and interrupt exceptions, the interrupt priority mask is also updated appropriately. In the second step, the vector number of the exception is determined. For interrupts, the vector number is obtained by an SCM68000 bus cycle classified as an interrupt acknowledge 4-14 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. EVEN BYTE 7 15 SSP Exception Processing ODD BYTE 0 7 STATUS REGISTER 0 0 HIGHER ADDRESS PROGRAM COUNTER HIGH PROGRAM COUNTER LOW Freescale Semiconductor, Inc... Figure 4-9. Groups 1 and 2 Exception Stack Frame cycle. For all other exceptions, internal logic provides the vector number. This vector number is then used to calculate the address of the exception vector. The third step, except for the reset exception, is to save the current SCM68000 status. (The reset exception does not save the context and skips this step.) The current program counter value and the saved copy of the status register are stacked using the SSP. The stacked program counter value usually points to the next unexecuted instruction. However, for bus error and address error, the value stacked for the program counter is unpredictable and may be incremented from the address of the instruction that caused the error. Group 1 and 2 exceptions use a short format exception stack frame. Additional information defining the current context is stacked for the bus error and address error exceptions. The last step is the same for all exceptions. The new program counter value is fetched from the exception vector. The SCM68000 then resumes instruction execution at the address provided by the exception vector, and normal instruction decoding and execution is started. 4.3 PROCESSING OF SPECIFIC EXCEPTIONS The exceptions are classified according to their sources, and each type is processed differently. The following paragraphs describe in detail the types of exceptions and the processing of each type. 4.3.1 Reset The reset exception corresponds to the highest exception level. The processing of the reset exception is performed for system initiation and recovery from catastrophic failure. If the SCM68000 is currently executing a bus cycle, it will start processing at state 5 (S5) immediately after the internal reset signal is valid. The bus cycle will end at state 7 (S7) and the current instruction being executed will be canceled. The SCM68000 is forced into the supervisor state, and the trace state is forced off. The interrupt priority mask is set to level seven. The vector number is internally generated to reference the reset exception vector at location zero in the supervisor program space. Because no assumptions can be made about the validity of register contents, in particular the SSP, neither the program counter nor the status register is saved. The address in the first two words of the reset exception vector is fetched as the initial SSP, and the address in the last two words of the reset exception vector is MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-15 Exception Processing Freescale Semiconductor, Inc. fetched as the initial program counter. Finally, instruction execution is started at the address in the program counter. The initial program counter should point to the power-up/restart code. Freescale Semiconductor, Inc... The RESET instruction does not cause a reset exception; it asserts the RESETOB signal to reset external devices, which allows the software to reset the system to a known state and continue processing with the next instruction. 4.3.1.1 RESET OPERATION. The SCM68000 has an input reset signal (RESETIB) and an output reset signal (RESETOB). In many cases, these two signals are connected to form just one bi-directional RESETB signal. One way of combining these signals using cells from the Motorola standard cell library is illustrated in Figure 4-10. The SCM68000 and it’s external circuitry can be reset in three ways: asserting RESETIB and HALTIB simultaneously, asserting only RESETIB, and using the RESET instruction. The methods to reset the SCM68000 and it’s external devices are described in the following paragraphs. INBUF RESETIB IOBUF IOPD RESETB RESETOB Figure 4-10. Reset Circuit 4.3.1.1.1 Reset Using RESETIB and HALTIB. For the initial reset, RESETIB and HALTIB must be asserted by an external device for at least 132 clock periods. Resetting the SCM68000 initializes the internal state. The SCM68000 reads the reset vector table entry (address $00000) and loads the contents into the SSP. Next, the SCM68000 loads the contents of address $00004 (vector table entry 1) into the program counter. Then the SCM68000 initializes the status registers by setting the supervisor state, clearing the trace mode bit, and setting the interrupt mask level to seven. No other register is affected by the reset sequence. The internal circuitry may cause the SCM68000 to take up to four clock periods to recognize that a reset is taking place. The timings for the intial reset operation are shown in Figure 4-11. Subsequent resets can be accomplished by asserting RESETIB and HALTIB simultaneously for ten or more clock periods. 4.3.1.1.2 Reset Instruction. The RESET instruction causes the SCM68000 to assert RESETOB for 124 clock periods to reset the external devices of the system. The internal state of the SCM68000 is not affected. Neither the status register nor any of the internal 4-16 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing CLKI VDD VCC T ≥ 132 CLOCK PERIODS RESETIB HALTIB T < 4 CLOCKS Note1 Freescale Semiconductor, Inc... BUS CYCLES Note 2 NOTES FOR 16-BIT MODE: 1. Internal start-up time 2. SSP high read in here 3. SSP low read in here 4. PC High read in here 5. PC Low read in here 6. First instruction fetched here Note 3 Note 4 Note 5 Note 6 Bus State Unknown: All Control Signals Inactive. All Three-State Signals in the High-Impedance State. Figure 4-11. Reset Operation Timing Diagram registers are affected by a RESET instruction. Figure 4-12 shows a timing diagram for RESETOB. NOTE The user must ensure that all external devices are reset at the completion of the RESET instruction. The RESETOB signal is negated on the rising edge of S0 of the next bus cycle. If the RESETIB and RESETOB signals are connected as shown in Figure 4-10, the HALTIB signal should not be asserted during the RESET instruction. When the SCM68000 recognizes that both the HALTIB and RESETIB signals are asserted, it will begin the reset exception and negate RESETOB which will cause RESETIB to be negated. Since RESETIB would not be asserted for at least ten clock periods with HALTIB, a partial reset will occur and may drive the SCM68000 into an unknown state. 4.3.1.1.3 Reset Using Only RESETIB. The SCM68000 must initially be reset using the RESETIB and HALTIB signals as previously described. However, subsequent resets can also be accomplished by asserting only the RESETIB signal for a minimum of 132 clock periods. Because an assertion of the RESETIB signal is ignored while the RESETOB signal is asserted, the two signals can be connected as shown in Figure 4-10. Since the core may be executing a RESET instruction at the time it is being reset using only the RESETIB signal, the RESETIB signal should be asserted for a minimum of 132 clock periods. This will ensure that the RESETOB signal has been negated and the RESETIB signal will be recognized. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-17 Exception Processing Freescale Semiconductor, Inc. S4 S5 S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 CLKI FC2–FC0 A31–A0 ASB UDSB/LDSB DSB Freescale Semiconductor, Inc... RWB ERWB DTACKB D15–D0 AOEB COEB DOEB RMCB SIZ1–SIZ0 TSCAE RESETOB 124 CLOCK CYCLES RESET INSTRUCTION (132 CLOCK CYCLES) Figure 4-12. RESETOB Timing Diagram 4.3.1.2 INITIALIZING THE SCM68000 FOR SIMULATION. To simulate the SCM68000 properly, the initialization procedure differs slightly from the actual part. This difference is necessary to correctly start the test clock (TESTCLK). Both HALTIB and RESETIB must be asserted for at least 10 clock cycles. The TEST signal must be asserted for at least two clock cycles while HALTIB and RESETIB are asserted and must be negated at least two clock cycles before HALTIB and RESETIB are negated. Figure 4-13 shows the timing for initializing the SCM68000 for simulation. If the SCM68000 has been properly reset during simulation, the TESTCLK signal will pulse with a period equal to ten SCM68000 clock periods. The period will consist of six SCM68000 clock periods in the low position and four SCM68000 clock periods in the high position. 4-18 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. 47 4747 Exception Processing 47 CLKI T > 10 CLOCK PERIODS HALTIB RESETIB TEST Freescale Semiconductor, Inc... T > 0 CLOCK PERIODS T > 2 CLOCK PERIODS T > 2 CLOCK PERIODS Figure 4-13. Initialization of the SCM68000 for Simulation Timing Diagram 4.3.2 Interrupts Seven levels of interrupt priorities are provided, numbered 1–7. Devices can be chained externally within interrupt priority levels, allowing an unlimited number of peripheral devices to interrupt the SCM68000. The status register contains a 3-bit mask indicating the current interrupt priority, and interrupts are inhibited for all priority levels less than or equal to the current priority. An interrupt request is made to the SCM68000 by encoding the interrupt request levels 1– 7 on the three interrupt request lines (IPLB2–IPLB0); all negated lines indicate no interrupt request. Interrupt requests arriving at the SCM68000 do not force immediate exception processing, but the requests are made pending. Pending interrupts are detected between instruction executions. If the priority of the pending interrupt is lower than or equal to the current SCM68000 priority, execution continues with the next instruction, and the requesting interrupt is postponed until the priority of the pending interrupt becomes greater than the current SCM68000 priority. If the priority of the pending interrupt is greater than the current SCM68000 priority, the exception processing sequence for the requesting interrupt is started. A copy of the status register is saved; the privilege mode is set to supervisor mode; tracing is suppressed; and the SCM68000 priority level is set to the level of the interrupt being acknowledged. The SCM68000 fetches the vector number from the interrupting device by executing an interrupt acknowledge cycle, which displays the level number of the interrupt being acknowledged on the address bus. If external logic requests an automatic vector, the SCM68000 internally generates a vector number corresponding to the interrupt level number. If external logic indicates a bus error, the interrupt is considered spurious, and the generated vector number references the spurious interrupt vector. The SCM68000 then proceeds with the usual exception processing, saving the program counter and status register on the supervisor stack. The saved value of the program counter is the address of the instruction that would have been executed had the interrupt not been taken. The appropriate interrupt vector is fetched and loaded into the program counter, and normal instruction execution commences in the interrupt handling routine. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-19 Exception Processing Freescale Semiconductor, Inc. Interrupt requests should be maintained on the interrupt control signals IPLB2–IPLB0 until the interrupt acknowledge bus cycle is initiated to guarantee that the interrupt will be recognized. 4.3.2.1 LEVEL SEVEN INTERRUPTS. Level seven interrupts are handled differently than interrupt levels one through six. A level seven interrupt is a nonmaskable interrupt; therefore, a seven in the interrupt mask does not disable a level seven interrupt. Freescale Semiconductor, Inc... Level seven interrupts are edge triggered by a transition from a lower priority request to the level seven request, as opposed to interrupt levels one through six, which are level sensitive. Therefore, if IPLB2-IPLB0 remain at level seven, the SCM68000 will only recognize one level seven interrupt since only one transition from a lower level request to a level seven request occurred. For the processor to recognize a level seven interrupt followed by another level seven interrupt, one of the two following sequences must occur: 1. The interrupt request level on the interrupt control pins changes from a lower request level to level seven and remains at level seven until the interrupt acknowledge bus cycle begins. Later, the interrupt request level returns to a lower interrupt request level and then back to level seven, causing a second transition on the interrupt control lines. 2. The interrupt request level on the interrupt control pins changes from a lower request level to level seven and remains at level seven. If the interrupt handling routine for the level seven interrupt lowers the interrupt mask level, a second level seven interrupt will be recognized even though no transition has occurred on the interrupt control pins. After the level seven interrupt handling routine completes, the SCM68000 will compare the interrupt mask level to the interrupt request level on IPLB2-IPLB0. Since the interrupt mask level will be lower than the requested level, the interrupt mask will be set back to level seven. The level seven request on IPLB2-IPLB0 must be held until the second interrupt acknowledge bus cycle has begun to insure that the interrupt is recognized. For more information on SCM68000 interrupts, see the application note A Discussion of Interrupts for the MC68000 (AN1012). 4.3.2.2 UNINITIALIZED INTERRUPT. Under normal conditions, an interrupting device provides the SCM68000 with an interrupt vector number and asserts data transfer acknowledge (DTACKB), or asserts autovector (AVECB), or bus error (BERRB) during an interrupt acknowledge cycle by the SCM68000. If the interrupting M68000 Family peripheral has not been initialized, it will provide the uninitialized interrupt vector number ($0F). This response conforms to a uniform way to recover from a programming error. 4.3.2.3 SPURIOUS INTERRUPT. During the interrupt acknowledge cycle, if no device responds by asserting DTACKB or AVECB, BERRB should be asserted to terminate the vector acquisition. The SCM68000 separates the processing of this error from bus error by forming a short format exception stack and fetching the spurious interrupt vector instead of the bus error vector. The SCM68000 then proceeds with the usual exception processing. 4-20 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Exception Processing 4.3.3 Instruction Traps Traps are exceptions caused by instructions. Traps occur when the SCM68000 recognizes an abnormal condition during instruction execution or when an instruction that normally causes exception processing is executed. Freescale Semiconductor, Inc... Exception processing for traps is straightforward. The status register is copied; the supervisor mode is entered; and tracing is turned off. The vector number is internally generated; for the TRAP instruction, part of the vector number comes from the instruction itself. The program counter and the copy of the status register are saved on the supervisor stack. The saved value of the program counter is the address of the instruction following the instruction that generated the trap. Finally, instruction execution commences at the address in the exception vector. Some instructions are used specifically to generate traps. The TRAP instruction always forces an exception and is useful for implementing system calls for user programs. The TRAPV and CHK instructions force an exception if the user program detects a run-time error, which may be an arithmetic overflow or a subscript out of bounds. A signed divide (DIVS) or unsigned divide (DIVU) instruction forces an exception if a division operation is attempted with a divisor of zero. 4.3.4 Illegal and Unimplemented Instructions Illegal instruction is the term used to refer to any of the word bit patterns that do not match a legal SCM68000 instruction. If such an instruction is fetched, an illegal instruction exception occurs. Motorola reserves the right to define instructions using the opcodes of any of the illegal instructions. Three bit patterns always force an illegal instruction trap: $4AFA, $4AFB, and $4AFC. Two of the patterns, $4AFA and $4AFB, are reserved for Motorola system products. The third pattern, $4AFC, is reserved for customer use (as the take illegal instruction trap (ILLEGAL ) instruction). Word patterns with bits 15–12 equaling 1010 or 1111 are distinguished as unimplemented instructions, and separate exception vectors are assigned to these patterns to permit efficient emulation. These vectors allow the operating system to emulate unimplemented instructions in software. Exception processing for illegal instructions is similar to that of traps. After the instruction is fetched and decoding is attempted, the SCM68000 determines that execution of an illegal instruction is being attempted and starts exception processing. The exception stack frame for group 2 (see Table 4-3 for more information on exception groups) is then pushed on the supervisor stack, and the illegal instruction vector is fetched. 4.3.5 Privilege Violations To provide system security, various instructions are privileged. An attempt to execute one of the privileged instructions while in the user mode causes an exception. The privileged instructions can be found in Chapter 6 of the M68000 Family Programmer’s Reference Manual (M68000PM/AD). MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-21 Exception Processing Freescale Semiconductor, Inc. Exception processing for privilege violations is similar to that of illegal instructions. After the instruction is fetched and decoded and the SCM68000 determines that a privilege violation is being attempted, the SCM68000 starts exception processing. The status register is copied; the supervisor mode is entered; and tracing is turned off. The vector number is generated to reference the privilege violation vector, and the current program counter and the copy of the status register are saved on the supervisor stack. Finally, instruction execution commences at the address in the privilege violation exception vector. 4.3.6 Tracing Freescale Semiconductor, Inc... To aid in program development, the M68000 Family includes a facility to allow tracing following each instruction. When tracing is enabled, an exception is forced after each instruction is executed. Thus, a debugging program can monitor the execution of the program under test. The trace function is controlled by the T-bit in the supervisor portion of the status register. If the T-bit is cleared (off), tracing is disabled and instruction execution proceeds normally. If the T-bit is set (on) at the beginning of the execution of an instruction, a trace exception is generated after the instruction is completed. If the instruction is not executed because an interrupt is taken or because the instruction is illegal or privileged, the trace exception does not occur. The trace exception also does not occur if the instruction is aborted by the reset, bus error, or address error exceptions. If the instruction is executed and an interrupt is pending upon completion, the trace exception is processed before the interrupt exception. During the execution of the instruction, if an exception is forced by that instruction, the exception processing for the instruction exception occurs before that of the trace exception. As an extreme illustration of these rules, consider the arrival of an interrupt during the execution of a TRAP instruction while tracing is enabled. First, the trap exception is processed, then the trace exception, and finally, the interrupt exception. Instruction execution resumes in the interrupt handler routine. After the execution of the instruction is complete and before the start of the next instruction, exception processing for a trace begins. A copy is made of the status register. The transition to supervisor mode is made, and the T-bit of the status register is turned off, disabling further tracing. The vector number is generated to reference the trace exception vector, and the current program counter and the copy of the status register are saved on the supervisor stack. The saved value of the program counter is the address of the next instruction. Instruction execution commences at the address contained in the trace exception vector. 4.3.7 Bus Error A bus error exception is requested by external logic. The current bus cycle is terminated. The current SCM68000 activity, whether instruction or exception processing, is terminated, and the SCM68000 immediately begins exception processing. Exception processing for a bus error follows the usual sequence of steps. The status register is copied, the supervisor mode is entered, and tracing is turned off. The vector number is generated to refer to the bus error vector. Since the SCM68000 is fetching the instruction or an operand when the error occurs, the context of the SCM68000 is more detailed. To save 4-22 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Exception Processing more of this context, additional information is saved on the supervisor stack. The program counter and the copy of the status register are saved. The value saved for the program counter is advanced 2–10 bytes beyond the address of the first word of the instruction that made the reference causing the bus error. If the bus error occurred during the fetch of the next instruction, the saved program counter has a value in the vicinity of the current instruction, even if the current instruction is a branch, a jump, or a return instruction. In addition to the usual information, the SCM68000 saves its internal copy of the first word of the instruction being processed and the address being accessed by the aborted bus cycle. Specific information about the access is also saved: type of access (read or write), SCM68000 activity (processing an instruction), and function code outputs when the bus error occurred. The SCM68000 is processing an instruction if it is in the normal state or processing a group 2 exception; the SCM68000 is not processing an instruction if it is processing a group 0 or a group 1 exception (see Table 4-3 for more information on exception groups). Figure 4-14 illustrates how this information is organized on the supervisor stack. If a bus error occurs during the last step of exception processing, while either reading the exception vector or fetching the instruction, the value of the program counter is the address of the exception vector. Although this information is not generally sufficient to fully recover from the bus error, it does allow software diagnosis. Finally, the SCM68000 commences instruction processing at the address in the vector. It is the responsibility of the error handler routine to clean up the stack and determine where to continue execution. 15 14 13 12 11 10 9 8 7 6 5 LOWER ADDRESS 4 3 2 1 0 R/W I/N FUNCTION CODE HIGH ACCESS ADDRESS LOW INSTRUCTION REGISTER STATUS REGISTER HIGH PROGRAM COUNTER LOW R/W (Read/Write): Write = 0, Read = 1. I/N (Instruction/Not): Instruction = 0, Not = 1 Figure 4-14. Supervisor Stack Order for Bus or Address Error Exception If a bus error or address error occurs during the exception processing for a bus error, an address error, or a reset, the SCM68000 halts and all processing ceases. This halt simplifies the detection of a catastrophic system failure, since the SCM68000 removes itself from the system to protect memory contents from erroneous accesses. Only an external reset operation can restart a halted SCM68000. 4.3.8 Address Error An address error exception occurs when the SCM68000 attempts to access a word or longword operand or an instruction at an odd address. An address error is similar to an internally generated bus error. The bus cycle is aborted, and the SCM68000 ceases current process- MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 4-23 Exception Processing Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... ing and begins exception processing. The exception processing sequence is the same as that of a bus error, including the information to be stacked, except the vector number refers to the address error vector. Likewise, if an address error occurs during the exception processing for a bus error, address error, or reset, the SCM68000 is halted. 4-24 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SECTION 5 8-BIT INSTRUCTION EXECUTION TIMES Freescale Semiconductor, Inc... This section contains listings of the instruction execution times in terms of external clock (CLKI) periods for the SCM68000 (EC000 core)1 in 8-bit mode. In this data, it is assumed that both memory read and write cycles consist of four clock periods. A longer memory cycle causes the generation of wait states that must be added to the total instruction times. The number of bus read and write cycles for each instruction is also included with the timing data. This data is shown as n(r/w) where: n is the total number of clock periods r is the number of read cycles w is the number of write cycles For example, a timing number shown as 18(3/1) means that 18 clock periods are required to execute the instruction. Of the 18 clock periods, 12 are used for the three read cycles (four periods per cycle). Four additional clock periods are used for the single write cycle, for a total of 16 clock periods. The bus is idle for two clock periods during which the processor completes the internal operations required for the instruction. NOTE The total number of clock periods (n) includes instruction fetch and all applicable operand fetches and stores. 5.1 OPERAND EFFECTIVE ADDRESS CALCULATION TIMES Table 5-1 lists the numbers of clock periods required to compute the effective addresses for instructions. The totals include fetching any extension words, computing the address, and fetching the memory operand. The total number of clock periods, the number of read cycles, and the number of write cycles (zero for all effective address calculations) are shown in the previously described format. 1. The SCM68000 is the name of the Verilog model for the EC000 core. The remainder of this section will refer to the part as only the SCM68000. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 5-1 Freescale 8-Bit Instruction Execution Times Semiconductor, Inc. Table 5-1. Effective Address Calculation Times Byte Word Long Data Register Direct Address Register Direct 0(0/0) 0(0/0) 0(0/0) 0(0/0) 0(0/0) 0(0/0) Memory Address Register Indirect Address Register Indirect with Postincrement 4(1/0) 4(1/0) 8(2/0) 8(2/0) 16(4/0) 16(4/0) Address Register Indirect with Predecrement Address Register Indirect with Displacement 6(1/0) 12(3/0) 10(2/0) 16(4/0) 18(4/0) 24(6/0) Address Register Indirect with Index Absolute Short 14(3/0) 12(3/0) 18(4/0) 16(4/0) 26(6/0) 24(6/0) Absolute Long Program Counter Indirect with Displacement 20(5/0) 12(3/0) 24(6/0) 16(3/0) 32(8/0) 24(6/0) 14(3/0) 8(2/0) 18(4/0) 8(2/0) 26(6/0) 16(4/0) Addressing Mode Register Dn An Freescale Semiconductor, Inc... (An) (An)+ –(An) (d16, An) (d8, An, Xn)* (xxx).W (xxx).L (d16, PC) (d8, PC, Xn)* Program Counter Indirect with Index Immediate #<data> *The size of the index register (Xn) does not affect execution time. 5.2 MOVE INSTRUCTION EXECUTION TIMES Table 5-2, Table 5-3, and Table 5-4 list the numbers of clock periods required for the move instructions. The totals include instruction fetch, operand reads, and operand writes. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. Table 5-2. Move Byte Instruction Execution Times Source Dn (An) (An)+ –(An) (d16, An) Dn 8(2/0) 12(3/0) An 8(2/0) 12(3/0) (An) 12(2/1) 16(3/1) (An)+ 12(2/1) 16(3/1) Destination –(An) (d16, An) 12(2/1) 20(4/1) 16(3/1) 24(5/1) 12(3/0) 14(3/0) 20(5/0) 12(3/0) 14(3/0) 20(5/0) 16(3/1) 18(3/1) 24(5/1) 16(3/1) 18(3/1) 24(5/1) 16(3/1) 18(3/1) 24(5/1) (d8, An, Xn)* 22(5/0) 22(5/0) 26(5/1) 26(5/1) 26(5/1) 20(5/0) 20(5/0) 24(5/1) 24(5/1) 24(5/1) (xxx).W 28(7/0) 28(7/0) 32(7/1) 32(7/1) 32(7/1) (xxx).L (d16, PC) 20(5/0) 20(5/0) 24(5/1) 24(5/1) 24(5/1) (d8, PC, Xn)* 22(5/0) 22(5/0) 26(5/1) 26(5/1) 26(5/1) 16(4/0) 16(4/0) 20(4/1) 20(4/1) 20(4/1) #<data> *The size of the index register (Xn) does not affect execution time. 5-2 (d8, An, Xn)* 22(4/1) 26(5/1) (xxx).W 20(4/1) 24(5/1) (xxx).L 28(6/1) 32(7/1) 24(5/1) 26(5/1) 32(7/1) 26(5/1) 28(5/1) 34(7/1) 24(5/1) 26(5/1) 32(7/1) 32(7/1) 34(7/1) 40(9/1) 34(7/1) 32(7/1) 40(9/1) 36(7/1) 34(7/1) 42(9/1) 34(7/1) 32(7/1) 40(9/1) 42(9/1) 40(9/1) 48(11/1) 32(7/1) 34(7/1) 28(6/1) 34(7/1) 36(7/1) 30(6/1) 32(7/1) 34(7/1) 28(6/1) 40(9/1) 42(9/1) 36(8/1) EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor,8-Bit Inc. Instruction Execution Times Table 5-3. Move Word Instruction Execution Times Dn 8(2/0) 8(2/0) 16(4/0) An 8(2/0) 8(2/0) 16(4/0) (An) 16(2/2) 16(2/2) 24(4/2) (An)+ 16(2/2) 16(2/2) 24(4/2) Destination –(An) (d16, An) 16(2/2) 24(4/2) 16(2/2) 24(4/2) 24(4/2) 32(6/2) 16(4/0) 18(4/0) 24(6/0) 16(4/0) 18(4/0) 24(6/0) 24(4/2) 26(4/2) 32(6/2) 24(4/2) 26(4/2) 32(6/2) 24(4/2) 26(4/2) 32(6/2) (d8, An, Xn)* 26(6/0) 26(6/0) 34(6/2) 34(6/2) 34(6/2) 24(6/0) 24(6/0) 32(6/2) 32(6/2) 32(6/2) (xxx).W 32(8/0) 32(8/0) 40(8/2) 40(8/2) 40(8/2) (xxx).L (d16, PC) 24(6/0) 24(6/0) 32(6/2) 32(6/2) 32(6/2) (d8, PC, Xn)* 26(6/0) 26(6/0) 34(6/2) 34(6/2) 34(6/2) 16(4/0) 16(4/0) 24(4/2) 24(4/2) 24(4/2) #<data> *The size of the index register (Xn) does not affect execution time. Source Freescale Semiconductor, Inc... Dn An (An) (An)+ –(An) (d16, An) (d8, An, Xn)* 26(4/2) 26(4/2) 34(6/2) (xxx).W 24(4/2) 24(4/2) 32(6/2) (xxx).L 32(6/2) 32(6/2) 40(8/2) 32(6/2) 34(6/2) 40(8/2) 34(6/2) 32(6/2) 42(8/2) 32(6/2) 34(6/2) 40(8/2) 40(8/2) 42(8/2) 48(10/2) 42(8/2) 40(8/2) 48(10/2) 44(8/2) 42(8/2) 50(10/2) 42(8/2) 40(8/2) 48(10/2) 50(10/2) 48(10/2) 56(12/2) 40(8/2) 42(8/2) 32(6/2) 42(8/2) 44(8/2) 34(6/2) 40(8/2) 42(8/2) 32(6/2) 48(10/2) 50(10/2) 40(8/2) (d8, An, Xn)* 34(4/4) 34(4/4) 50(8/4) (xxx).W 32(4/4) 32(4/4) 48(8/4) (xxx).L 40(6/4) 40(6/4) 56(10/4) 48(8/4) 50(8/4) 56(10/4) 50(8/4) 52(8/4) 58(10/4) 48(8/4) 50(8/4) 56(10/4) 56(10/4) 58(10/4) 64(12/4) 58(10/4) 56(10/4) 64(12/4) 60(10/4) 58(10/4) 66(12/4) 58(10/4) 56(10/4) 64(12/4) 66(12/4) 64(12/4) 72(14/4) 56(10/4) 58(10/4) 48(8/4) 58(10/4) 60(10/4) 50(8/4) 56(10/4) 58(10/4) 48(8/4) 64(12/4) 66(12/4) 56(10/4) Table 5-4. Move Long Instruction Execution Times Destination –(An) (d16, An) 24(2/4) 32(4/4) 24(2/4) 32(4/4) 40(6/4) 48(8/4) Source Dn An (An) (An)+ Dn 8(2/0) 8(2/0) 24(2/4) 24(2/4) An 8(2/0) 8(2/0) 24(2/4) 24(2/4) (An) 24(6/0) 24(6/0) 40(6/4) 40(6/4) (An)+ 24(6/0) 24(6/0) 40(6/4) 40(6/4) 40(6/4) –(An) 26(6/0) 26(6/0) 42(6/4) 42(6/4) 42(6/4) (d16, An) 32(8/0) 32(8/0) 48(8/4) 48(8/4) 48(8/4) (d8, An, Xn)* 34(8/0) 34(8/0) 50(8/4) 50(8/4) 50(8/4) 32(8/0) 32(8/0) 48(8/4) 48(8/4) 48(8/4) (xxx).W 40(10/0) 40(10/0) 56(10/4) 56(10/4) 56(10/4) (xxx).L (d16, PC) 32(8/0) 32(8/0) 48(8/4) 48(8/4) 48(8/4) (d8, PC, Xn)* 34(8/0) 34(8/0) 50(8/4) 50(8/4) 50(8/4) 24(6/0) 24(6/0) 40(6/4) 40(6/4) 40(6/4) #<data> *The size of the index register (Xn) does not affect execution time. 5.3 STANDARD INSTRUCTION EXECUTION TIMES The numbers of clock periods listed in Table 5-5 indicate the times required to perform the operations, store the results, and read the next instruction. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). In Table 5-5, the following notation applies: An Dn ea M — — — — MOTOROLA Address register operand Data register operand An operand specified by an effective address Memory effective address operand EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 5-3 Freescale 8-Bit Instruction Execution Times Semiconductor, Inc. Table 5-5. Standard Instruction Execution Times Freescale Semiconductor, Inc... Instruction Size op<ea>, An op<ea>, Dn op Dn, <M> Byte — 8(2/0)+ 12(2/1)+ ADD/ADDA Word 12(2/0)+ 8(2/0)+ 16(2/2)+ Long 10(2/0)+** 10(2/0)+** 24(2/4)+ Byte — 8(2/0)+ 12(2/1)+ AND Word — 8(2/0)+ 16(2/2)+ Long — 10(2/0)+** 24(2/4)+ Byte — 8(2/0)+ — CMP/CMPA Word 10(2/0)+ 8(2/0)+ — Long 10(2/0)+ 10(2/0)+ — DIVS Word — 162(2/0)+* — DIVU Word — 144(2/0)+* — Byte — 8(2/0)+*** 12(2/1)+ EOR Word — 8(2/0)+*** 16(2/2)+ Long — 12(2/0)+*** 24(2/4)+ MULS Word — 74(2/0)+* — MULU Word — 74(2/0)+* — Byte — 8(2/0)+ 12(2/1)+ OR Word — 8(2/0)+ 16(2/2)+ Long — 10(2/0)+** 24(2/4)+ Byte 8(2/0)+ 12(2/1)+ SUB 12(2/0)+ Word 8(2/0)+ 16(2/2)+ 10(2/0)+** Long 10(2/0)+** 24(2/4)+ +Add effective address calculation time. *Indicates maximum base value added to word effective address time. **The base time of 10 clock periods is increased to 12 if the effective address mode is register direct or immediate (effective address time should also be added). ***Only available effective address mode is data register direct. MULS, MULU—The multiply algorithm requires 42+2n clocks where n is defined as: MULS: n = tag the <ea> with a zero as the MSB; n is the resultant number of 10 or 01 patterns in the 17-bit source; i.e., worst case happens when the source is $5555. MULU: n = the number of ones in the <ea> 5.4 IMMEDIATE INSTRUCTION EXECUTION TIMES The numbers of clock periods listed in Table 5-6 include the times to fetch immediate operands, perform the operations, store the results, and read the next operation. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). In Table 5-6, the following notation applies: # Dn An M 5-4 — — — — Immediate operand Data register operand Address register operand Memory operand EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor,8-Bit Inc. Instruction Execution Times Table 5-6. Immediate Instruction Execution Times Instruction ADDI Size op #, Dn Byte Word Long 16(4/0) 16(4/0) 28(6/0) Byte Word Long Byte ANDI Word Long Byte CMPI Word Long Byte EORI Word Long MOVEQ Long Byte ORI Word Long Byte SUBI Word Long Byte SUBQ Word Long + Add effective address calculation time. Freescale Semiconductor, Inc... ADDQ 8(2/0) 8(2/0) 12(2/0) 16(4/0) 16(4/0) 28(6/0) 16(4/0) 16(4/0) 26(6/0) 16(4/0) 16(4/0) 28(6/0) 8(2/0) 16(4/0) 16(4/0) 28(6/0) 16(4/0) 16(4/0) 28(6/0) 8(2/0) 8(2/0) 12(2/0) op #, An — — — — 12(2/0) 12(2/0) — — — — — — — — — — — — — — — — — 12(2/0) 12(2/0) op #, M 20(4/1)+ 24(4/2)+ 40(6/4)+ 12(2/1)+ 16(2/2)+ 24(2/4)+ 20(4/1)+ 24(4/2)+ 40(6/4)+ 16(4/0) 16(4/0) 24(6/0) 20(4/1)+ 24(4/2)+ 40(6/4)+ — 20(4/1)+ 24(4/2)+ 40(6/4)+ 12(2/1)+ 16(2/2)+ 24(2/4)+ 20(4/1)+ 24(4/2)+ 40(6/4)+ 5.5 SINGLE OPERAND INSTRUCTION EXECUTION TIMES Table 5-7 lists the timing data for the single operand instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 5-7. Single Operand Instruction Execution Times Instruction Size Register Byte 8(2/0) CLR Word 8(2/0) Long 10(2/0) NBCD Byte 10(2/0) Byte 8(2/0) NEG Word 8(2/0) Long 10(2/0) Byte 8(2/0) NEGX Word 8(2/0) Long 10(2/0) Byte 8(2/0) NOT Word 8(2/0) Long 10(2/0) Byte, False 8(2/0) Scc Byte, True 10(2/0) TAS Byte 8(2/0) Byte 8(2/0) TST Word 8(2/0) Long 8(2/0) + Add effective address calculation time. MOTOROLA Memory 12(2/1)+ 16(2/2)+ 24(2/4)+ 12(2/1)+ 12(2/1)+ 16(2/2)+ 24(2/4)+ 12(2/1)+ 16(2/2)+ 24(2/4)+ 12(2/1)+ 16(2/2)+ 24(2/4)+ 12(2/1)+ 12(2/1)+ 14(2/1)+ 8(2/0)+ 8(2/0)+ 8(2/0)+ EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 5-5 Freescale 8-Bit Instruction Execution Times Semiconductor, Inc. 5.6 SHIFT/ROTATE INSTRUCTION EXECUTION TIMES Table 5-8 lists the timing data for the shift and rotate instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 5-8. Shift/Rotate Instruction Execution Times Freescale Semiconductor, Inc... Instruction Size Register Memory Byte 10+2n(2/0) — ASR, ASL Word 10+2n(2/0) 16(2/2)+ Long 12+n2(2/0) — Byte 10+2n(2/0) — LSR, LSL Word 10+2n(2/0) 16(2/2)+ Long 12+n2(2/0) — Byte 10+2n(2/0) — ROR, ROL Word 10+2n(2/0) 16(2/2)+ Long 12+n2(2/0) — Byte 10+2n(2/0) — ROXR, ROXL Word 10+2n(2/0) 16(2/2)+ Long 12+n2(2/0) — + Add effective address calculation time for word operands. n is the shift count. 5.7 BIT MANIPULATION INSTRUCTION EXECUTION TIMESS Table 5-9 lists the timing data for the bit manipulation instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 5-9. Bit Manipulation Instruction Execution Times Dynamic Register Memory Byte — 12(2/1)+ BCHG Long 12(2/0)* — Byte — 12(2/1)+ BCLR Long 14(2/0)* — Byte — 12(2/1)+ BSET Long 12(2/0)* — Byte — BTST 8(2/0)+ Long 10(2/0) + Add effective address calculation time. * Indicates maximum value; data addressing mode only. Instruction Size Static Register — 20(4/0)* — 22(4/0)* — 20(4/0)* — 18(4/0) Memory 20(4/1)+ — 20(4/1)+ — 20(4/1)+ — 16(4/0)+ — 5.8 CONDITIONAL INSTRUCTION EXECUTION TIMES Table 5-10 lists the timing data for the conditional instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). 5-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor,8-Bit Inc. Instruction Execution Times Table 5-10. Conditional Instruction Execution Times Trap or Branch Taken Byte 18(4/0) Bcc Word 18(4/0) Byte 18(4/0) BRA Word 18(4/0) Byte 34(4/4) BSR Word 34(4/4) cc True — DBcc cc False 18(4/0) CHK — 68(8/6)+* TRAPV — 66(10/6) + Add effective address calculation time for word operand. * Indicates maximum base value. Freescale Semiconductor, Inc... Instruction Displacement Trap or Branch Not Taken 12(2/0) 20(4/0) — — — — 20(4/0) 26(6/0) 14(2/0)+ 8(2/0) 5.9 JMP, JSR, LEA, PEA, AND MOVEM INSTRUCTION EXECUTION TIMES Table 5-11 lists the timing data for the jump (JMP), jump to subroutine (JSR), load effective address (LEA), push effective address (PEA), and move multiple registers (MOVEM) instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. Table 5-11. JMP, JSR, LEA, PEA, and MOVEM Instruction Execution Times Instruction Size JMP JSR LEA PEA (An) (An)+ –(An) (d16,An) (d8,An,Xn)+ (xxx).W (xxx).L — — — — (d16 PC) 16(4/0) — — 18(4/0) 22(4/0) 18(4/0) 24(6/0) 18(4/0) 32(4/4) — — 34(4/4) 38(4/4) 34(4/4) 40(6/4) 34(4/4) 8(2/0) — — 16(4/0) 20(4/0) 16(4/0) 24(6/0) 16(4/0) 24(2/4) — — 32(4/4) 36(4/4) 32(4/4) 40(6/4) 32(4/4) 24+8n 24+8n 32+8n 34+8n 32+8n 40+8n 32+8n — Word (6+2n/0) (6+2n/0) (8+2n/0) (8+2n/0) (10+n/0) (10+2n/0) (8+2n/0) MOVEM M→R 32+16n 34+16n 32+16n 40+16n 32+16n Long 24+16n 24+16n — (6+4n/0) (6+4n/0) (8+4n/0) (8+4n/0) (8+4n/0) (8+4n/0) (8+4n/0) 16+8n 16+8n 24+8n 26+8n 24+8n 32+8n — — Word (4/2n) (4/2n) (6/2n) (6/2n) (6/2n) (8/2n) MOVEM R→M 16+16n 24+16n 24+16n 32+16n Long 16+16n — — 26+16n (4/4n) (4/4n) (6/4n) (8/4n) (6/4n) *The size of the index register (Xn) does not affect the instruction's execution time. n is the number of registers to move. (d8, PC, Xn)* 22(4/0) 32(4/4) 20(4/0) 36(4/4) 34+8n (8+2n/0) 34+16n (8+4n/0) — — 5.10 MULTIPRECISION INSTRUCTION EXECUTION TIMES Table 5-12 lists the timing data for multiprecision instructions. The numbers of clock periods include the times to fetch both operands, perform the operations, store the results, and read the next instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 5-7 Freescale 8-Bit Instruction Execution Times Semiconductor, Inc. The following notation applies in Table 5-12: Dn — Data register operand M — Memory operand Table 5-12. Multiprecision Instruction Execution Times Instruction ADDX CMPM Freescale Semiconductor, Inc... SUBX ABCD SBCD Size Byte Word Long Byte Word Long Byte Word Long Byte Byte op Dn, Dn 8(2/0) 8(2/0) 12(2/0) — — — 8(2/0) 8(2/0) 12(2/0) 10(2/0) 10(2/0) op M, M 22(4/1) 50(6/2) 58(10/4) 16(4/0) 24(6/0) 40(10/0) 22(4/1) 50(6/2) 58(10/4) 20(4/1) 20(4/1) 5.11 MISCELLANEAOUS INSTRUCTION EXECUTION TIMES Table 5-13 and Table 5-14 list the timing data for miscellaneous instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 5-13. Miscellaneous Instruction Execution Times Instruction Register ANDI to CCR 32(6/0) ANDI to SR 32(6/0) EORI to CCR 32(6/0) EORI to SR 32(6/0) EXG 10(2/0) EXT 8(2/0) LINK 32(4/4) MOVE to CCR 18(4/0) MOVE to SR 18(4/0) MOVE from SR 10(2/0) MOVE to USP 8(2/0) MOVE from USP 8(2/0) NOP 8(2/0) ORI to CCR 32(6/0) ORI to SR 32(6/0) RESET 136(2/0) RTE 40(10/0) RTR 40(10/0) RTS 32(8/0) STOP 4(0/0) SWAP 8(2/0) UNLK 24(6/0) + Add effective address calculation time for word operand. 5-8 Memory — — — — — — — 18(4/0)+ 18(4/0)+ 16(2/2)+ — — — — — — — — — — — — EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor,8-Bit Inc. Instruction Execution Times Table 5-14. Move Peripheral Instruction Execution Times Instruction MOVEP Size Register → Memory Memory → Register Word Long 24(4/2) 32(4/4) 24(6/0) 32(8/0) + Add effective address calculation time. 5.12 EXCEPTION PROCESSING EXECUTION TIMES Freescale Semiconductor, Inc... Table 5-15 lists the timing data for exception processing. The numbers of clock periods include the times for all stacking, the vector fetch, and the fetch of the first instruction of the handler routine. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 5-15. Exception Processing Execution Times Exception Periods Address Error 94(8/14) Bus Error 94(8/14) CHK Instruction 68(8/6)+ Divide-by-Zero 66(8/6)+ Interrupt 72(9/6)* Illegal Instruction 62(8/6) Privilege Violation 62(8/6) RESET** 64(12/0) Trace 62(8/6) TRAP Instruction 62(8/6) TRAPV Instruction 66(10/6) +Add effective address calculation time. *The interrupt acknowledge cycle is assumed to take four clock periods. **Indicates the time from when RESET and HALT are first sampled as negated to when instruction execution starts. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 5-9 Semiconductor, Inc. Freescale Semiconductor, Inc... Freescale 8-Bit Instruction Execution Times 5-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SECTION 6 16-BIT INSTRUCTION EXECUTION TIMES Freescale Semiconductor, Inc... This section contains listings of the instruction execution times in terms of external clock (CLKI) periods for the SCM68000 (EC000 core)1 in 16-bit mode. In this data, it is assumed that both memory read and write cycles consist of four clock periods. A longer memory cycle causes the generation of wait states that must be added to the total instruction times. The number of bus read and write cycles for each instruction is also included with the timing data. This data is shown as n(r/w) where: n is the total number of clock periods r is the number of read cycles w is the number of write cycles For example, a timing number shown as 18(3/1) means that the total number of clock periods is 18. Of the 18 clock periods, 12 are used for the three read cycles (four periods per cycle). Four additional clock periods are used for the single write cycle, for a total of 16 clock periods. The bus is idle for two clock periods during which the processor completes the internal operations required for the instruction. NOTE The total number of clock periods (n) includes instruction fetch and all applicable operand fetches and stores. 6.1 OPERAND EFFECTIVE ADDRESS CALCULATION TIMES Table 6-1 lists the numbers of clock periods required to compute the effective addresses for instructions. The totals include fetching any extension words, computing the address, and fetching the memory operand. The total number of clock periods, the number of read cycles, and the number of write cycles (zero for all effective address calculations) are shown in the previously described format. 1. The SCM68000 is the name of the Verilog model for the EC000 core. The remainder of this section will refer to the part as only the SCM68000. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 6-1 16-Bit Instruction ExecutionFreescale Times Semiconductor, Inc. Table 6-1. Effective Address Calculation Times Byte, Word Long Data Register Direct Address Register Direct 0(0/0) 0(0/0) 0(0/0) 0(0/0) Memory Address Register Indirect Address Register Indirect with Postincrement 4(1/0) 4(1/0) 8(2/0) 8(2/0) Address Register Indirect with Predecrement Address Register Indirect with Displacement 6(1/0) 8(2/0) 10(2/0) 12(3/0) Address Register Indirect with Index Absolute Short 10(2/0) 8(2/0) 14(3/0) 12(3/0) Absolute Long Program Counter Indirect with Displacement 12(3/0) 8(2/0) 16(4/0) 12(3/0) 10(2/0) 4(1/0) 14(3/0) 8(2/0) Addressing Mode Register Dn An Freescale Semiconductor, Inc... (An) (An)+ –(An) (d16, An) (d8, An, Xn)* (xxx).W (xxx).L (d8, PC) (d16, PC, Xn)* Program Counter Indirect with Index Immediate #<data> *The size of the index register (Xn) does not affect execution time. 6.2 MOVE INSTRUCTION EXECUTION TIMES Table 6-2 and Table 6-3 list the numbers of clock periods required for the move instructions. The totals include instruction fetch, operand reads, and operand writes. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. Table 6-2. Move Byte and Word Instruction Execution Times Source Dn An** (An) (An)+ –(An) (d16, An) Dn 4(1/0) 4(1/0) 8(2/0) An 4(1/0) 4(1/0) 8(2/0) (An) 8(1/1) 8(1/1) 12(2/1) (An)+ 8(1/1) 8(1/1) 12(2/1) Destination –(An) (d16, An) 8(1/1) 12(2/1) 8(1/1) 12(2/1) 12(2/1) 16(3/1) 8(2/0) 10(2/0) 12(3/0) 8(2/0) 10(2/0) 12(3/0) 12(2/1) 14(2/1) 16(3/1) 12(2/1) 14(2/1) 16(3/1) 12(2/1) 14(2/1) 16(3/1) (d8, An, Xn)* 14(3/0) 14(3/0) 18(3/1) 18(3/1) 18(3/1) 12(3/0) 12(3/0) 16(3/1) 16(3/1) 16(3/1) (xxx).W 16(4/0) 16(4/0) 20(4/1) 20(4/1) 20(4/1) (xxx).L (d16, PC) 12(3/0) 12(3/0) 16(3/1) 16(3/1) 16(3/1) (d8, PC, Xn)* 14(3/0) 14(3/0) 18(3/1) 18(3/1) 18(3/1) 8(2/0) 8(2/0) 12(2/1) 12(2/1) 12(2/1) #<data> *The size of the index register (Xn) does not affect execution time. **Only word operands; byte operands not allowed. 6-2 (d8, An, Xn)* 14(2/1) 14(2/1) 18(3/1) (xxx).W 12(2/1) 12(2/1) 16(3/1) (xxx).L 16(3/1) 16(3/1) 20(4/1) 16(3/1) 18(3/1) 20(4/1) 18(3/1) 20(3/1) 22(4/1) 16(3/1) 18(3/1) 20(4/1) 20(4/1) 22(4/1) 24(5/1) 22(4/1) 20(4/1) 24(5/1) 24(4/1) 22(4/1) 26(5/1) 22(4/1) 20(4/1) 24(5/1) 26(5/1) 24(5/1) 28(6/1) 20(4/1) 22(4/1) 16(3/1) 22(4/1) 24(4/1) 18(3/1) 20(4/1) 22(4/1) 16(3/1) 24(5/1) 26(5/1) 20(4/1) EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. 16-Bit Instruction Execution Times Table 6-3. Move Long Instruction Execution Times Source Dn An (An) (An)+ –(An) (d16, An) Dn 4(1/0) 4(1/0) 12(3/0) An 4(1/0) 4(1/0) 12(3/0) (An) 12(1/2) 12(1/2) 20(3/2) (An)+ 12(1/2) 12(1/2) 20(3/2) Destination –(An) (d16, An) 12(1/2) 16(2/2) 12(1/2) 16(2/2) 20(3/2) 24(4/2) 12(3/0) 14(3/0) 16(4/0) 12(3/0) 14(3/0) 16(4/0) 20(3/2) 22(3/2) 24(4/2) 20(3/2) 22(3/2) 24(4/2) 20(3/2) 22(3/2) 24(4/2) Freescale Semiconductor, Inc... (d8, An, Xn)* 18(4/0) 18(4/0) 26(4/2) 26(4/2) 26(4/2) 16(4/0) 16(4/0) 24(4/2) 24(4/2) 24(4/2) (xxx).W 20(5/0) 20(5/0) 28(5/2) 28(5/2) 28(5/2) (xxx).L (d, PC) 16(4/0) 16(4/0) 24(4/2) 24(4/2) 24(4/2) (d, PC, Xn)* 18(4/0) 18(4/0) 26(4/2) 26(4/2) 26(4/2) #<data> 12(3/0) 12(3/0) 20(3/2) 20(3/2) 20(3/2) *The size of the index register (Xn) does not affect execution time. (d8, An, Xn)* 18(2/2) 18(2/2) 26(4/2) (xxx).W 16(2/2) 16(2/2) 24(4/2) (xxx).L 20(3/2) 20(3/2) 28(5/2) 24(4/2) 26(4/2) 28(5/2) 26(4/2) 28(4/2) 30(5/2) 24(4/2) 26(4/2) 28(5/2) 28(5/2) 30(5/2) 32(6/2) 30(5/2) 28(5/2) 32(6/2) 32(5/2) 30(5/2) 34(6/2) 30(5/2) 28(5/2) 32(6/2) 34(6/2) 32(6/2) 36(7/2) 28(5/2) 30(5/2) 24(4/2) 30(5/2) 32(5/2) 26(4/2) 28(5/2) 30(5/2) 24(4/2) 32(5/2) 34(6/2) 28(5/2) 6.3 STANDARD INSTRUCTION EXECUTION TIMES The numbers of clock periods listed in Table 6-4 indicate the times required to perform the operations, store the results, and read the next instruction. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). In Table 6-4, the following notation applies: An Dn ea M — — — — MOTOROLA Address register operand Data register operand An operand specified by an effective address Memory effective address operand EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 6-3 16-Bit Instruction ExecutionFreescale Times Semiconductor, Inc. Table 6-4. Standard Instruction Execution Times Instruction Size op<ea>, An† op<ea>, Dn op Dn, <M> ADD/ADDA Byte, Word Long 8(1/0)+ 6(1/0)+** 4(1/0)+ 6(1/0)+** 8(1/1)+ 12(1/2)+ AND Byte, Word Long — — 4(1/0)+ 6(1/0)+** 8(1/1)+ 12(1/2)+ CMP/CMPA Byte, Word Long 6(1/0)+ 6(1/0)+ 4(1/0)+ 6(1/0)+ — — DIVS DIVU Word Word — — 158(1/0)+* 140(1/0)+* — — EOR Byte, Word Long — — 4(1/0)*** 8(1/0)*** 8(1/1)+ 12(1/2)+ Word Word — — 70(1/0)+* 70(1/0)+* — — OR Byte, Word Long — — 4(1/0)+ 6(1/0)+** 8(1/1)+ 12(1/2)+ SUB Byte, Word Long 8(1/0)+ 6(1/0)+** 4(1/0)+ 6(1/0)+** 8(1/1)+ 12(1/2)+ Freescale Semiconductor, Inc... MULS MULU +Add effective address calculation time. †Word or long only. *Indicates maximum basic value added to word effective address time. **The base time of six clock periods is increased to eight if the effective address mode is register direct or immediate (effective address time should also be added). ***Only available effective address mode is data register direct. MULS, MULU—The multiply algorithm requires 38+2n clocks where n is defined as: MULU: n = the number of ones in the <ea> MULS: n=concatenate the <ea> with a zero as the LSB; n is the resultant number of 10 or 01 patterns in the 17-bit source; i.e., worst case happens when the source is $5555. 6.4 IMMEDIATE INSTRUCTION EXECUTION TIMES The numbers of clock periods listed in Table 6-5 include the times to fetch immediate operands, perform the operations, store the results, and read the next operation. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). In Table 6-5, the following notation applies: # Dn An M 6-4 — — — — Immediate operand Data register operand Address register operand Memory operand EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. 16-Bit Instruction Execution Times Table 6-5. Immediate Instruction Execution Times Instruction Size op #, Dn op #, An op #, M ADDI Byte, Word Long 8(2/0) 16(3/0) — — 12(2/1)+ 20(3/2)+ ADDQ Byte, Word Long 4(1/0) 8(1/0) 4(1/0)* 8(1/0) 8(1/1)+ 12(1/2)+ ANDI Byte, Word Long 8(2/0) 14(3/0) — — 12(2/1)+ 20(3/2)+ CMPI Byte, Word Long 8(2/0) 14(3/0) — — 8(2/0)+ 12(3/0)+ EORI Byte, Word Long 8(2/0) 16(3/0) — — 12(2/1)+ 20(3/2)+ Long 4(1/0) — — ORI Byte, Word Long 8(2/0) 16(3/0) — — 12(2/1)+ 20(3/2)+ SUBI Byte, Word Long 8(2/0) 16(3/0) — — 12(2/1)+ 20(3/2)+ SUBQ Byte, Word Long 4(1/0) 8(1/0) 8(1/0)* 8(1/0) 8(1/1)+ 12(1/2)+ Freescale Semiconductor, Inc... MOVEQ 6.5 SINGLE OPERAND INSTRUCTION EXECUTION TIMES Table 6-6 lists the timing data for the single operand instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 6-6. Single Operand Instruction Execution Times Instruction CLR NBCD Size Register Memory Byte, Word Long 4(1/0) 6(1/0) 8(1/1)+ 12(1/2)+ Byte 6(1/0) 8(1/1)+ NEG Byte, Word Long 4(1/0) 6(1/0) 8(1/1)+ 12(1/2)+ NEGX Byte, Word Long 4(1/0) 6(1/0) 8(1/1)+ 12(1/2)+ NOT Byte, Word Long 4(1/0) 6(1/0) 8(1/1)+ 12(1/2)+ Scc Byte, False Byte, True 4(1/0) 6(1/0) 8(1/1)+ 8(1/1)+ TAS Byte 4(1/0) 14(2/1)+ TST Byte, Word Long 4(1/0) 4(1/0) 4(1/0)+ 4(1/0)+ + Add effective address calculation time. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 6-5 16-Bit Instruction ExecutionFreescale Times Semiconductor, Inc. 6.6 SHIFT/ROTATE INSTRUCTION EXECUTION TIMES Table 6-7 lists the timing data for the shift and rotate instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 6-7. Shift/Rotate Instruction Execution Times Freescale Semiconductor, Inc... Instruction Size Register Memory ASR, ASL Byte, Word Long 6+2n(1/0) 8+2n(1/0) 8(1/1)+ — LSR, LSL Byte, Word Long 6+2n(1/0) 8+2n(1/0) 8(1/1)+ — ROR, ROL Byte, Word Long 6+2n(1/0) 8+2n(1/0) 8(1/1)+ — ROXR, ROXL Byte, Word Long 6+2n(1/0) 8+2n(1/0) 8(1/1)+ — + Add effective address calculation time for word operands. n is the shift count. 6.7 BIT MANIPULATION INSTRUCTION EXECUTION TIMES Table 6-8 lists the timing data for the bit manipulation instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 6-8. Bit Manipulation Instruction Execution Times Instruction Size Dynamic Register Memory Static Register Memory BCHG Byte Long — 8(1/0)* 8(1/1)+ — — 12(2/0)* 12(2/1)+ — BCLR Byte Long — 10(1/0)* 8(1/1)+ — — 14(2/0)* 12(2/1)+ — BSET Byte Long — 8(1/0)* 8(1/1)+ — — 12(2/0)* 12(2/1)+ — BTST Byte Long — 6(1/0) 4(1/0)+ — — 10(2/0) 8(2/0)+ — + Add effective address calculation time. * Indicates maximum value—data addressing mode only. 6-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. 16-Bit Instruction Execution Times 6.8 CONDITIONAL INSTRUCTION EXECUTION TIMES Table 6-9 lists the timing data for the conditional instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. Table 6-9. Conditional Instruction Execution Times Instruction Displacement Branch Taken Branch Not Taken Bcc Byte Word 10(2/0) 10(2/0) 8(1/0) 12(2/0) BRA Byte Word 10(2/0) 10(2/0) — — BSR Byte Word 18(2/2) 18(2/2) — — Freescale Semiconductor, Inc... CHK (No Trap) DBcc TRAPV — 10(1/0)+ — cc true cc false — 10(2/0) 12(2/0) 14(3/0) — 4(1/0) — 6.9 JMP, JSR, LEA, PEA, AND MOVEM INSTRUCTION EXECUTION TIMES Table 6-10 lists the timing data for the jump (JMP), jump to subroutine (JSR), load effective address (LEA), push effective address (PEA), and move multiple registers (MOVEM) instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. Table 6-10. JMP, JSR, LEA, PEA, and MOVEM Instruction Execution Times Instruction Size (An) (An)+ –(An) (d16,An) (d8,An,Xn)+ (xxx).W (xxx).L (d16 PC) (d8, PC, Xn)* JMP — 8(2/0) — — 10(2/0) 14(3/0) 10(2/0) 12(3/0) 10(2/0) 14(3/0) JSR — 16(2/2) — — 18(2/2) 22(2/2) 18(2/2) 20(3/2) 18(2/2) 22(2/2) LEA — 4(1/0) — — 8(2/0) 12(2/0) 8(2/0) 12(3/0) 8(2/0) 12(2/0) PEA — 12(1/2) — — 16(2/2) 20(2/2) 16(2/2) 20(3/2) 16(2/2) 20(2/2) 12+4n 12+4n 16+4n 18+4n 16+4n 20+4n (4+n/0) (4+n/0) (4+n/0) (5+n/0) 16+4n (4n/0) 18+4n (4+n/0) Word (3+n/0) (3+n/0) — MOVEM 12+8n M→R 16+8n 18+8n 16+8n 20+8n 16+8n Long (3+2n/ 12+8n — 18+8n (4+2n/0) (3+n/0) (4+2n/0) (4+2n/0) (4+2n/0) (5+2n/0) (4+2n/0) 0) 8+4n 12+4n 14+4n 12+4n 16+4n Word 8+4n — — — (2/n) (2/n) (3/n) (3/n) (3/n) (4/n) MOVEM R→M 8+8n 12+8n 14+8n 12+8n 16+8n — — Long 8+8n — (2/2n) (2/2n) (3/2n) (3/2n) (3/2n) (4/2n) n is the number of registers to move. *The size of the index register (Xn) does not affect the instruction's execution time. 6.10 MULTIPRECISION INSTRUCTION EXECUTION TIMES Table 6-11 lists the timing data for multiprecision instructions. The number of clock periods includes the time to fetch both operands, perform the operations, store the results, and read the next instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 6-7 16-Bit Instruction ExecutionFreescale Times Semiconductor, Inc. The following notation applies in Table 6-11: Dn — Data register operand M — Memory operand Table 6-11. Multiprecision Instruction Execution Times Freescale Semiconductor, Inc... Instruction Size op Dn, Dn op M, M ADDX Byte, Word Long 4(1/0) 8(1/0) 18(3/1) 30(5/2) CMPM Byte, Word Long — — 12(3/0) 20(5/0) SUBX Byte, Word Long 4(1/0) 8(1/0) 18(3/1) 30(5/2) ABCD SBCD Byte Byte 6(1/0) 6(1/0) 18(3/1) 18(3/1) 6.11 MISCELLANEOUS INSTRUCTION EXECUTION TIMES Table 6-12 and Table 6-13 list the timing data for miscellaneous instructions. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 6-12. Miscellaneous Instruction Execution Times Instruction 6-8 Size Register Memory ANDI to CCR Byte 20(3/0) — ANDI to SR Word 20(3/0) — EORI to CCR Byte 20(3/0) — EORI to SR Word 20(3/0) — ORI to CCR Byte 20(3/0) — ORI to SR Word 20(3/0) — MOVE from SR Word 6(1/0) 8(1/1)+ MOVE to CCR Word 12(1/0) 12(1/0)+ MOVE to SR Word 12(2/0) 12(2/0)+ EXG Long 6(1/0) — EXT Word, Long 4(1/0) — LINK Word 16(2/2) — MOVE from USP Long 4(1/0) — MOVE to USP Long 4(1/0) — NOP — 4(1/0) — RESET — 132(1/0) — RTE — 20(5/0) — RTR — 20(2/0) — RTS — 16(4/0) — STOP — 4(0/0) — SWAP — 4(1/0) — UNLK — 12(3/0) — EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. 16-Bit Instruction Execution Times Table 6-12. Miscellaneous Instruction Execution Times + Add effective address calculation time. Table 6-13. Move Peripheral Instruction Execution Times Instruction MOVEP Size Register → Memory Memory → Register Word Long 16(2/2) 24(2/4) 16(4/0) 24(6/0) Freescale Semiconductor, Inc... 6.12 EXCEPTION PROCESSING EXECUTION TIMES Table 6-14 lists the timing data for exception processing. The numbers of clock periods include the times for all stacking, the vector fetch, and the fetch of the first instruction of the handler routine. The total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. The number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). Table 6-14. Exception Processing Execution Times Exception Address Error Periods 50(4/7) Bus Error 50(4/7) CHK Instruction 40(4/3)+ Divide-by-Zero 38(4/3)+ Illegal Instruction 34(4/3) Interrupt 44(5/3)* Privilege Violation 34(4/3) RESET** 40(6/0) Trace 34(4/3) TRAP Instruction 34(4/3) TRAPV Instruction 34(5/3) +Add effective address calculation time. *The interrupt acknowledge cycle is assumed to take four clock periods. **Indicates the time from when RESET and HALT are first sampled as negated to when instruction execution starts. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 6-9 Semiconductor, Inc. Freescale Semiconductor, Inc... 16-Bit Instruction ExecutionFreescale Times 6-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SECTION 7 ELECTRICAL CHARACTERISTICS This section provides information on the maximum ratings for the SCM68000 (EC000 core)1. Freescale Semiconductor, Inc... 7.1 MAXIMUM RATINGS Rating Supply Voltage Input Voltage Maximum Operating Temperature Range Storage Temperature Symbol VCC Value Unit –0.3 to 7.0 V Vin –0.3 to 7.0 V TA TL to TH –40 to100 °C Tstg –55 to 150 °C 7.2 CMOS CONSIDERATIONS Because the basic CMOS cell is composed of two complementary transistors, a virtual semiconductor controlled rectifier (SCR) may be formed when an input exceeds the supply voltage. The SCR that is formed by this high input causes the device to become latched in a mode that may result in excessive current drain and eventual destruction of the device. Although the SCM68000 is implemented with input protection diodes, care should be exercised to ensure that the maximum input voltage specification is not exceeded. Some systems may require that the CMOS circuitry be isolated from voltage transients; other may require additional circuitry. 7.3 POWER CONSUMPTION Characteristic Operating Current @16 MHz Standby Current 3.3 V Typical Max 15 TBD 5V Typical Max 25 TBD 50 TBD 30 TBD Unit mA mA 7.4 AC ELECTRICAL SPECIFICATION DEFINITIONS The AC specifications presented consist of output delays, input setup and hold times, and signal skew times. All signals are specified relative to an appropriate edge of the clock and possibly to one or more other signals. 1. The SCM68000 is the name of the Verilog model for the EC000 core. The remainder of this section will refer to the part as only the SCM68000. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 7-1 Electrical Characteristics Freescale Semiconductor, Inc. 7.5 AC ELECTRICAL SPECIFICATIONS—CLOCK TIMING Num Characteristic Min — 50 25 — Frequency of Operation Cycle Time Clock Pulse Width Clock Rise and Fall Times 1 2,3 4,5 (see Figure 7-1) 3.3 V 5.0 V Max 20.0 — — 4 Min — 50 25 — Max 20.0 — — 4 Unit MHz ns ns ns 1 2 3 Freescale Semiconductor, Inc... 0.8 VDD 0.2 VDD 4 5 NOTE: Timing measurements are referenced to and from a low voltage of 0.2 VDD and a high voltage of 0.8 VDD, unless otherwise noted. The voltage swing through this range should start outside and pass through the range such that the rise or fall will be linear between 0.2 VDD and 0.8 VDD. Figure 7-1. Clock Input Timing Diagram 7.6 AC ELECTRICAL SPECIFICATIONS—READ AND WRITE CYCLES (Frequency = 0 to 20 MHz; GND = 0 V; TA = TL to TH; see Figure 7-2 and Figure 7-3) Num Characteristic 6 6A Clock High to Address Valid Clock High to FC Valid Clock High to Address, Data Bus High Impedance (Maximum) (Write) Clock High to Address, FC Invalid (Minimum) Clock High to ASB, DSB Asserted Address Valid to ASB, DSB Asserted (Read)/ASB Asserted (Write) 7 8 9 111 11A1 FC Valid to ASB, DSB Asserted (Read)/ASB Asserted (Write) 12 Clock Low to ASB, DSB Negated 3.3 V 5.0 V Unit Min — 0 Max 20 20 Min — 0 Max 18 18 — 25 — 20 ns 0 1 — 20 0 1 — 18 ns ns 40 — 40 — ns 40 — 40 — ns ns ns 1 20 1 18 ns 10 — 10 — ns ASB and DSB Width Asserted (Read)/ASB Width Asserted 141,5 (Write) 100 — 100 — ns 14A6 DSB Width Asserted (Write) 50 — 50 — ns ASB, DSB Width Negated (Read)/ASB Width Negated (Write) 50 — 50 — ns ASB, DSB Negated to RWB Invalid 5 — 5 — ns Clock High to RWB High (Read) Clock High to RWB Low (Write) ASB Asserted to RWB Low (Write) 0 0 — 20 20 10 0 0 — 18 18 10 ns ns ns 131 151 171,7 18 20 20A 211 21A1 221 23 7-2 ASB, DSB Negated to Address, FC Invalid Address Valid to RWB Low (Write) 0 — 0 — ns FC Valid to RWB Low (Write) 25 — 25 — ns RWB Low to DSB Asserted (Write) 10 — 10 — ns Clock Low to Data-Out Valid (Write) — 20 — 18 ns EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc.Electrical Characteristics Num 251 Characteristic 5.0 V Max Min Max Unit ASB, DSB Negated to Data-Out Invalid (Write) 10 — 10 — ns 261 Data-Out Valid to DSB Asserted (Write) 10 — 10 — ns 274 Data-In Valid to Clock Low (Setup Time on Read) 5 — 5 — ns 281 ASB, DSB Negated to DTACKB Negated (Asynchronous Hold) 0 95 0 95 ns Clock High to DTACKB Negated — 95 — 95 ns ASB, DSB Negated to Data-In Invalid (Hold Time on Read) ASB, DSB Negated to Data-In High Impedance (Read) ASB, DSB Negated to BERRB Negated 0 — 0 — 75 — 0 — 0 — 75 — ns ns ns — 42 — 42 ns 0 100 0 100 ns Asynchronous Input Setup Time 5 — 5 — ns BERRB Asserted to DTACKB Asserted 10 — 10 — ns Data-Out Hold from Clock High (Write) RWB Asserted to Data Bus Impedance Change (Write) 0 0 — — 0 0 — — ns ns 28A1 29 29A 30 311,4 DTACKB Asserted to Data-In Valid (Setup Time on Read) 32 HALTIB and RESETIB Input Transition Time 474 Freescale Semiconductor, Inc... 3.3 V Min 481,2 53 55 10 — 10 — clks 563 HALTIB, RESETIB Pulse Width NOTES: 1.Actual value depends on clock period. 2.If #47 is satisfied for both DTACKB and BERRB, #48 may be ignored. In the absence of DTACKB, BERRB is an asynchronous input using the asynchronous input setup time (#47). 3.For power-up, the MC68000 must be held in the reset state for 132 clock cycles to allow stablization of on-chip circuitry. After the system is powered up, #56 refers to the minimum pulse width required to reset the processor. 4.If the asynchronous input setup time (#47) requirement is satisfied for DTACKB, the DTACKB asserted to data setup time (#31) requirement can be ignored. The data must only satisfy the data-in to clock low setup time (#27) for the following clock cycle. 5.ASB and DSB will be asserted from the rising edge of state 2 (S2) until the falling edge of state 7 (S7). 6.During a write, DSB will be asserted in state 4 (S4) and negated in S7. 7.With consecutive bus cycles, ASB and DSB are negated from the falling edge of S7 to the rising edge of S2. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 7-3 Electrical Characteristics Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 CLKI 6A FC2–FC0 8 6 A31–A0 Freescale Semiconductor, Inc... 12 15 ASB 14 11 13 11A DSB/LDSB/UDSB 17 9 18 28A RWB 28 47 DTACKB 27 29A 48 29 31 DATA IN 47 30 BERRB/BRB (NOTE 2) 47 47 32 HALTIB/RESETIB 32 56 47 ASYNCHRONOUS INPUTS (NOTE 1) NOTES: 1. Setup time for the asynchronous inputs IPLB2–IPLB0 (spec #47) guarantees their recognition at the next falling edge of the clock. 2. BRB need fall at this time only to ensure being recognized at the end of the bus cycle. 3. Timing measurements are referenced to and from a low voltage of 0.2 VDD and a high voltage of 0.8 VDD, unless otherwise noted. The voltage swing through this range should start outside and pass through the range such that the rise or fall is linear between 0.2 VDD and 0.8 VDD. Figure 7-2. Read Cycle Timing Diagram 7-4 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc.Electrical Characteristics S0 S1 S2 S3 S4 S5 S6 S7 CLKI 6A FC2–FC0 8 6 A31–A0 12 15 Freescale Semiconductor, Inc... ASB 14 9 13 9 11 11A 20A DSB/LDSB/UDSB 14A 20 17 18 22 28A RWB 21 21A 28 47 55 DTACKB 26 23 7 53 48 25 DATA OUT 47 30 BERRB/BRB (NOTE 2) 47 47 32 HALTIB/RESETIB 32 56 47 ASYNCHRONOUS INPUTS (NOTE 1) NOTES: 1. Timing measurements are referenced to and from a low voltage of 0.2 VDD and a high voltage of 0.8 VDD, unless otherwise noted. The voltage swing through this range should start outside and pass through the range such that the rise or fall is linear between 0.2 V DD and 0.8 VDD. 2. Because of loading variations, RWB may be valid after ASB even though both are initiated by the rising edge of S2 (specification #20A). Figure 7-3. Write Cycle Timing Diagram MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 7-5 Freescale Semiconductor, Inc. Electrical Characteristics 7.7 AC ELECTRICAL SPECIFICATIONS—SCM68000 TO EXTERNAL PERIPHERALS Freescale Semiconductor, Inc... (Frequency = 0 to 20 MHz; GND = 0 Vdc; TA = TL to TH; refer to Figure 7-4) 3.3 V Num Characteristic 12 18 20 23 27 29 41 42 44 47 Clock Low to ASB, DSB Negated Clock High to RWB High (Read) Clock High to RWB Low (Write) Clock Low to Data-Out Valid (Write) Data-In Valid to Clock Low (Setup Time on Read) ASB, DSB Negated to Data-In Invalid (Hold Time on Read) Clock Low to TESTCLK Transition TESTCLK Output Rise and Fall Time ASB, DSB Negated to AVECB Negated TESTCLK Low to Control, Address Bus Invalid (Address Hold Time) Asynchronous Input Setup Time 491 ASB, DSB Negated to TESTCLK Low 45 5.0 V Unit Min 1 0 0 — 5 0 — — 0 Max 20 20 20 20 — — 20 12 42 Min 1 0 0 — 5 0 — — 0 Max 18 18 20 18 — — 18 12 42 10 — 10 — ns 5 — 5 — ns –30 30 –30 30 ns ns ns ns ns ns ns ns ns ns 50 TESTCLK Width High 190 — 190 — ns 51 TESTCLK Width Low 290 — 290 — ns 54 TESTCLK Low to Data-Out Invalid 5 — 5 — ns NOTE: 1.The falling edge of S6 triggers both the negation of the strobes (ASB and DSB) and the falling edge of TESTCLK. Either of these events can occur first, depending upon the loading on each signal. Specificaton #49 indicates the absolute maximum skew that will occur between the rising edge of the strobes and the falling edge of TESTCLK. S0 S1 S2 S3 S4 w w w w w w w w w w w w S5 S6 S7 S0 CLKI 45 A31–A0 12 41 ASB 41 49 RWB 18 18 20 51 TESTCLK 50 42 44 47 42 AVECB 45 41 54 DATA OUT 23 27 29 DATA IN Figure 7-4. SCM68000 to External Peripherals Timing Diagram 7-6 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc.Electrical Characteristics 7.8 AC ELECTRICAL SPECIFICATIONS—BUS ARBITRATION Freescale Semiconductor, Inc... (Frequency = 0 to 20 MHz; GND = 0 Vdc, TA = TL to TH; see Figure 7-5 through Figure 7-8) Num Characteristic 7 33 34 35 361 37 3.3 V Unit Clock High to Address, Data Bus High Impedance (Maximum) Clock High to BGB Asserted Clock High to BGB Negated BRB Asserted to BGB Asserted Max 25 25 25 3.5 Min — 0 0 1.5 Max 20 25 25 3.5 ns ns ns Clks BRB Negated to BGB Negated 1.5 3.5 1.5 3.5 Clks BGACKB Asserted to BGB Negated 1.5 3.5 1.5 3.5 Clks 10 ns 1.5 Clks 10 ns 1.5 Clks — — 42 — 42 ns 1.5 1.5 5 1.5 1 — — — — — 1.5 1.5 5 1.5 1 — — — — — Clks Clks ns Clks Clks 1.5 — 1.5 — Clks 37A2,4 BGACKB Asserted to BRB Negated BGB Asserted to Control, Address, Data Bus High Impedance 38 (ASB Negated) 39 BGB Width Negated 46 BGACKB Width Low 47 Asynchronous Input Setup Time 57 BGACKB Negated to ASB, DSB, RWB Driven 57A BGACKB Negated to FC Driven 583 5.0 V Min — 0 0 1.5 BRB Negated to ASB, DSB, RWB Driven 1 — 1 — Clks 58A3 BRB Negated to FC Driven NOTES: 1.Setup time for the synchronous inputs BGACKB, IPLB2–IPLB0, and AVECB guarantees their recognition at the next falling edge of the clock. 2.BRB need fall at this time only in order to insure being recognized at the end of the bus cycle. 3.The processor will negate BG and begin driving the bus again if external arbitration logic negates BR before asserting BGACKB. 4.The minimum value must be met to guarantee proper operation. If the maximum value is exceeded, BG may be reasserted. STROBES AND RWB 36 37A BRB 37 46 BGACKB 35 34 39 BGB 33 38 CLKI NOTE: Setup time to the clock (#47) for the asynchronous inputs BERRB, BGACKB, BRB, DTACKB, IPLB2–IPLB0, and AVECB guarantees their recognition at the next falling edge of the clock. Figure 7-5. Bus Arbitration Timing Diagram MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 7-7 Electrical Characteristics Freescale Semiconductor, Inc. CLKI 47 33 36 BRB 35 34 47 37A BGB 47 37 46 BGACKB Freescale Semiconductor, Inc... 38 57 ASB DSB 57A RWB 58A FC2–FC0 58 A31–A0 7 D15–D0 NOTE: Waveform measurements for all inputs and outputs are specified at: logic high = 0.8 VDD, logic low = 0.2 VDD. Figure 7-6. Bus Arbitration Timing Diagram—Idle Bus Case 7-8 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc.Electrical Characteristics CLKI 47 36 33 BRB 35 34 47 37A BGB 47 37 46 BGACKB Freescale Semiconductor, Inc... 16 57 ASB DSB 57A RWB 58A FC2–FC0 7 58 A31–A0 38 D15–D0 NOTE: Waveform measurements for all inputs and outputs are specified at: logic high = 0.8 VDD, logic low = 0.2 VDD. Figure 7-7. Bus Arbitration Timing Diagram—Active Bus Case MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 7-9 Electrical Characteristics Freescale Semiconductor, Inc. CLKI 47 33 BRB 35 39 39 37 37 36 BGB 46 BGACKB Freescale Semiconductor, Inc... 38 46 37A 58 ASB 57 DSB 57A RWB 58A FC2–FC0 A31–A0 D15–D0 NOTE: Waveform measurements for all inputs and outputs are specified at: logic high = 0.8 VDD, logic low = 0.2 VDD. Figure 7-8. Bus Arbitration Timing Diagram—Multiple Bus Request 7-10 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc.Electrical Characteristics 7.9 AC ELECTRICAL SPECIFICATIONS—CORE APPLICATIONS SIGNALS (Frequency = 0 to 20 MHz; GND = 0 Vdc; TA = TL to TH; refer to Figure 7-9) Freescale Semiconductor, Inc... Num Characteristic 3.3 V 5.0 V 6 Clock Low to SIZ1–SIZ0 Asserted Min — Max 20 Min — Max 18 17 ASB, DSB Negated to ERWB High 15 — 15 — Unit ns ns 18 Clock High to ERWB High 0 20 0 18 ns C3 Clock Low to ERWB Low — 20 — 18 Clks C4 Clock Low to RMCB Asserted — 20 — 18 Clks C5 Clock Low to RMCB Negated — 20 — 18 ns C7 Clock Low to TSCAE Asserted — 20 — 18 ns C8 Clock High to STOP Asserted — 20 — 18 ns C9 Clock Low to IPENDB Asserted — 20 — 18 ns C10 Clock Low to REFILLB Asserted — 20 — 18 ns C11 Clock Low to STATUSB Asserted — 20 — 18 ns C12 STOP Pulse Width — 2 — 2 Clks C14 REFILLB Pulse Width — 1 — 1 Clks C15 C16 STATUSB Pulse Width CLKI to CLKO 1 — 3 5 1 — 3 5 Clks ns — 20 — 18 ns C171 Clock to AOEB, COEB, and DOEB Asserted NOTE: 1.AOEB, COEB, and DOEB will be a logic high only to put the appropriate signals into a high-impedance state. See Section 2 Signal Description for more information about these signals. MOTOROLA EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com 7-11 Electrical Characteristics Freescale Semiconductor, Inc. S0 S1 S2 S3 S4 S5 S6 S7 CLKI CLKO C16 6 SIZ1–SIZ0 A31–A0 Freescale Semiconductor, Inc... ASB LDSB/UDSB 18 RWB 17 ERWB C4 C3 C5 RMCB C7 TSCAE C8 STOP C12 C9 IPENDB C10 C14 REFILLB C11 C15 STATUSB AOEB C17 COEB DOEB Figure 7-9. Core Application Signals Timing Diagram 7-12 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. INDEX Numerics Freescale Semiconductor, Inc... 16-bit mode 3-1, 3-2 2-wire bus arbitration 3-22 3-wire bus arbitration 3-22 8-bit mode 3-1 A address error exception 4-13, 4-14, 4-22, 4-23 address error vector 4-24 address registers 1-8, 1-10 assertion 2-1, 3-1 asynchronous signals 3-35 automatic vector 4-19 autovectored interrupt 4-7 autovectored interrupt acknowledge cycle 47 data types 1-11 debugging 4-22 design flow 1-5 double bus fault 3-35 E EC000 core 1-1, 2-1, 3-1, 4-1, 7-1 exception 4-13, 4-15, 4-21 exception handler 4-14 exception processing 3-30, 4-2, 4-13, 4-14, 419, 4-21, 4-22, 4-24 exception processing state 4-1 exception stack frame 4-14, 4-15, 4-21 exception type 4-11 exception vector 4-11, 4-15, 4-21, 4-23 external exception 4-13 F B base address registers 1-8 bus arbitration timing diagram—multiple bus request 7-10 bus cycle 4-14 bus cycle termination 3-42 bus error 3-32, 3-35, 4-20, 4-23 bus error exception 3-30, 3-35, 4-13, 4-14, 422 bus error exception vector 3-30 bus error termination 3-42 bus error vector 4-22 C condition code register 1-8 condition codes 1-8 core application signals timing diagram 7-12 D data bus 3-15 data registers 1-8, 1-10 MOTOROLA features of the SCM68000 1-1 FlexCore program 1-1 G general-purpose registers 1-8 H halt operation 3-32 halt termination 3-42 halt/run/single-step operation 3-32 halted processing state 4-1 handler routine 4-11, 4-14, 4-23 I illegal instruction exception 4-21 illegal instruction trap 4-21 illegal instruction vector 4-21 instructions ANDI to SR 4-2 CHK 4-13, 4-21 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com INDEX-1 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Index DIV 4-13 DIVS 4-21 DIVU 4-21 EORI to SR 4-2 ILLEGAL 4-21, 4-22 JMP 5-7, 6-7 JSR 5-7, 6-7 LEA 5-7, 6-7 MOVE to SR 4-2 MOVEM 5-7, 6-7 PEA 5-7, 6-7 RESET 4-2, 4-16 RTE 4-2 STOP 4-1, 4-2 TAS 3-13 TRAP 4-13, 4-21, 4-22 TRAPV 4-13, 4-21 internal exception 4-13 interrupt 4-13 interrupt acknowledge cycle 2-8, 3-2, 4-3, 414, 4-19 interrupt exception 4-13, 4-14, 4-22 interrupt mask 1-8 interrupt mask level 4-16 interrupt priority 4-19 interrupt priority mask 4-1, 4-15 interrupt request 4-19 interrupt vector number 4-20 M mdaDecal 1-5 N negation 2-1, 3-1 nonmaskable interrupt 4-20 normal processing state 4-1 normal termination 3-42 notational conventions 1-11 P pending interrupt 4-19 privilege mode 4-19 privilege violation vector 4-22 program counter 1-8, 3-30, 4-14, 4-15, 4-16, 419, 4-22, 4-23 pseudo-asynchronous 3-37 INDEX-2 R read and write bus cycle states 3-39 read cycle 3-37, 5-1, 6-1 read cycle states 3-6 read-modify-write cycle 3-30, 3-32 read-modify-write cycle states 3-14 reset 4-23 reset exception 4-13, 4-14, 4-16, 4-22 reset exception vector 4-15 reset operation 3-35 reset vector table entry 4-16 retry operation 3-32, 3-35 retry termination 3-42 S S-bit 4-2, 4-14 SCM68000 1-1, 2-1, 3-1, 4-1, 7-1 signal names address bus 2-1, 3-6, 3-11, 3-14, 3-15 address output enable 2-8 address strobe 2-3, 3-30, 3-32, 3-43 address three-state control 2-9 autovector 2-8 bus error 2-6, 3-30 bus grant 2-5, 3-17 bus grant acknowledge 2-5, 3-17 bus request 2-5, 3-17, 3-19 clock 2-1 control output enable 2-8 CPU pipe refill 2-9 data bus 2-1, 3-7, 3-12, 3-32 data output enable 2-8 data strobe 2-4 data transfer acknowledge 2-4 data transfer size 2-4 disable control 2-7 early read/write 2-3 function codes 2-8, 3-32 halt 2-6 interrupt control 2-5 interrupt pending 2-9 lower data strobe 2-4 microsequencer status indication 2-9 mode 2-7 read/write 2-3 read-modify-write 2-5 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. reset 2-6 stop instruction indicator 2-9 test clock 2-7 test mode 2-7 upper data strobe 2-4 signals A0 3-2 A1 3-2 A31–A0 2-1 AOEB 2-8 ASB 2-3, 3-7, 3-12, 3-13, 3-15, 3-16, 3-17, 3-18, 3-19, 3-36, 3-37, 3-40, 3-41 AVECB 2-8, 3-35, 3-36, 4-7, 4-20 BERRB 2-6, 3-7, 3-12, 3-15, 3-16, 3-30, 332, 3-35, 3-36, 3-41, 3-42, 3-43, 4-20 BGACKB 2-5, 3-17, 3-18, 3-19, 3-35 BGB 2-5, 3-18, 3-19 BRB 2-5, 3-18, 3-35 CLKI 2-1, 5-1, 6-1 CLKO 2-1 COEB 2-8 D15–D0 2-1 DISB 2-7 DOEB 2-8 DSB 2-4, 3-7, 3-12, 3-15, 3-16, 3-17, 3-36, 3-40, 3-41 DTACKB 2-4, 3-7, 3-12, 3-15, 3-16, 3-19, 330, 3-35, 3-36, 3-37, 3-38, 3-41, 342, 3-43, 4-3, 4-7, 4-20 ERWB 2-3, 3-11, 3-13, 3-14, 3-15, 3-16, 339, 3-41 FC2–FC0 2-8, 3-6, 3-11, 3-14, 3-15 HALTIB 2-6, 3-30, 3-32, 3-35, 3-36, 3-42, 343, 4-18 HALTOB 2-6, 3-35 IPENDB 2-9 IPLB2–IPLB0 2-5, 3-35, 4-19, 4-20 LDSB 2-4, 3-1, 3-2, 3-7, 3-12, 3-15, 3-16, 317, 3-36, 3-40, 3-41 MODE 2-7, 3-1 REFILLB 2-9 RESETIB 2-6, 3-35, 3-41, 4-16 RESETOB 2-6, 4-16 RMCB 2-5 RWB 2-3, 3-6, 3-11, 3-12, 3-14, 3-15, 3-16, 3-37, 3-39, 3-41 SIZ1–SIZ0 2-4 MOTOROLA Index STATUSB 2-9 STOP 2-9 TEST 2-7, 4-18 TESTCLK 2-7, 4-7 TSCAE 2-9, 3-6, 3-7, 3-11, 3-14, 3-40 UDSB 2-4, 3-1, 3-2, 3-7, 3-12, 3-15, 3-16, 317, 3-36, 3-40, 3-41 single-step mode 3-32 software stack pointers 1-8 spurious interrupt vector 4-19 SR 1-8 SSP 1-8, 4-2, 4-15, 4-16 stack pointer 1-10 standard cell 1-5 status register 1-8, 3-30, 4-2, 4-11, 4-14, 4-16, 4-19, 4-21, 4-22 stopped state 4-1 supervisor data space 4-11 supervisor mode 1-7, 1-8, 4-1, 4-2, 4-14, 4-19, 4-22 supervisor program space 4-15 supervisor references 4-2 supervisor stack 4-14 supervisor stack pointer 1-8, 4-1 supervisor state 4-15, 4-16 supervisor/user bit 4-1 synchronization 3-42 T T-bit 4-14, 4-22 termination of a bus cycle 3-42 test and set instruction 3-13 trace enable bit 4-1 trace exception 4-22 trace exception vector 4-22 trace state 4-15 tracing 4-14, 4-16, 4-19, 4-22 trap 4-21 trap exception 4-22 U unimplemented instruction 4-21 uninitialized interrupt vector number 4-20 user interrupt vectors 4-11 user mode 1-7, 1-8, 4-1, 4-2, 4-21 user references 4-2 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com INDEX-3 Freescale Semiconductor, Inc. Index user stack pointer 1-8, 4-1 USP 1-8, 4-2 V vector address 4-11 vector number 4-11, 4-14, 4-15, 4-19, 4-21, 422, 4-24 vector table 4-11 Verilog 1-5 Veritime 1-5 Freescale Semiconductor, Inc... W write cycle 3-37, 5-1, 6-1 write cycle states 3-11 INDEX-4 EC000 CORE PROCESSOR USER’S MANUAL For More Information On This Product, Go to: www.freescale.com MOTOROLA