design of a risc processor compatible with arm instructionscc.ee.ntu.edu.tw/~ric/teaching/eda...

43
Design of a RISC Processor Compatible with ARM Instructions Ahmet Gürhanlı Advisor: 陳中平 教授 Lab: BL405

Upload: others

Post on 15-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Design of a RISC Processor Compatible with ARM Instructions

Ahmet GürhanlıAdvisor: 陳中平 教授

Lab: BL405

Page 2: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

OUTLINE

Motivation Development of the chipArchitectureSynthesis & OptimizationPlace & RouteSimulation ResultsConclusion

Page 3: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

MOTIVATION

ARM processors are frequently used in application specific integrated circuits (ASICs).Major applications:TelecommunicationData communicationPortable ComputingAutomotiveInformation SystemsImaging

Page 4: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

DEVELOPMENT OF THE CHIP

Research on ARM processorsCoding the architecture (Verilog)Synthesis with scan chain (Synopsys DC)Test pattern generation (Tetramax)Place & Route (Astro)Post layout verification (Verilog)DRC & LVS verification (Calibre)

Page 5: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

ARCHITECTURE

Page 6: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

IO Signals

Page 7: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

INSTRUCTION SETInstruction Set is consisted of 34 instructions which can be divided into 12 groups:

1. Data processing 2. PSR (Program Status Register) transfer 3. Multiply 4. Single data swap 5. Single data transfer 6. Undefined Instruction 7. Block data transfer 8. Branch 9. Coprocessor data transfer 10. Coprocessor data operation 11. Coprocessor register transfer 12. Software interrupt

Page 8: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Conditional Execution

Page 9: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Components of the Processor

Read registersWrite registerAddress registerIncrementer Register bankMultiplierShifterALUController

Page 10: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Read Registers

Page 11: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Register Bank

Page 12: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Multiplier

Page 13: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Shifter

Shifter

Clock

Input data[31:0]

Shift_amount_controller[7:0]

Sfhift_amount_multiplier[7:0]

Shift_source[1:0]

Shift_type[1:0]

Latch_enableCarry_in

Result[31:0]

Carry_out

Page 14: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

ALU

Page 15: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Architecture of the ALU

Page 16: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Controller

Instruction decodingFSMInterrupt handlerPipeline Registers

Page 17: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

FSM - Data Processing

Page 18: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

FSM - Multiply

mul = 000; Rd = Rm x Rsmul = 001; Rd = Rm x Rs + Rn

Page 19: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

FSM – Single Load

Page 20: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

FSM – Multiple Transfer

Page 21: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Coprocessor Register Transfer

Page 22: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Interrupt Handler

Next State

Interrupt Handler

abort

nFIQ

nIRQ

prefetch abort

reset

IF

Interrupted Next State

Page 23: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

SYNTHESIS

Page 24: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Optimization

Page 25: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Optimization

Page 26: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Optimization

Page 27: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Optimization

Page 28: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

ALU before being modified

inverterinverter inverter

Page 29: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

ALU after being modified

Adder-SubtracterORAND EOR MOV NOT NAND

Logical Functions

b-bus-registera-bus-register

multiplexer multiplexer

router

multiplexer

Result[31:0]

a_bus[31:0] b_bus[31:0]

Page 30: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

PLACE & ROUTE

DRC has 0 error count.LVS check has passed.Post layout simulation has no timing violations.

Page 31: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Layout with Bonding Diagram

Page 32: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

SIMULATION RESULTS

Load InstructionMultiply Instruction

Page 33: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Load – Instruction decoding

Page 34: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Load – Cycle 1

Page 35: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Load – Cycle 2

Page 36: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Load – Cycle 3

Page 37: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Multiply – Decoding, Multiplier, Multiplicand

Page 38: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Multiply – Multiplicand is shifted left in each cycle according to Booth’s algorithm

Page 39: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Multiply – Multiplier is shifted right 2 bits in each cycle

Page 40: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Multiply – The instruction completes when the shifted multiplier becomes zero

Page 41: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

Multiply – The result is on ALU bus

Page 42: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

CONCLUSION(Max frequency before optimizations: 70Mhz)

Page 43: Design of a RISC Processor Compatible with ARM Instructionscc.ee.ntu.edu.tw/~ric/teaching/EDA Seminar/doc/110507 CCChen student ARM.pdfProcessor Compatible with ARM Instructions Ahmet

THANK YOU