On Chip Bus National Taiwan University

Slides:



Advertisements
Similar presentations
1 IP-Based System-on-Chip Design 2002 IP Reuse Hardening via Embedded Sugar Assertions Erich Marschner 1, Bernard Deadman 2, Grant Martin 1 1 Cadence Design.
Advertisements

DATE 2003, Munich, Germany Formal Verification of a System-on-Chip Bus Protocol Abhik Roychoudhury Tulika Mitra S.R. Karri National University of Singapore.
Bus Specification Embedded Systems Design and Implementation Witawas Srisa-an.
Chapter 7: System Buses Dr Mohamed Menacer Taibah University
Computer Architecture
Creating and Adding Custom IP
Computer Science & Engineering
Avalon Switch Fabric. 2 Proprietary interconnect specification used with Nios II Principal design goals – Low resource utilization for bus logic – Simplicity.
S&IP Consortium Course Material On-Chip Bus Speaker: Tian-Sheuan Chang July, 2004.
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 5: Memory and Peripheral Busses September 21, 2010.
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 6: AHB-Lite, Interrupts (1) September 18, 2014 Slides developed.
Configurable System-on-Chip: Xilinx EDK
TECH CH03 System Buses Computer Components Computer Function
Performance Analysis of Different Arbitration Algorithms of the AMBA AHB Bus Massimo Conti, Marco Caldari, Giovanni B. Vece, Simone Orcioni, Claudio Turchetti.
An Automatic AMBA Wrapper Generation Tool for Embedded Cores Laboratory for Reliable Computing (LaRC) Electrical Engineering Department National Tsing.
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
CS-334: Computer Architecture
Computer Architecture Lecture 08 Fasih ur Rehman.
Meier208/MAPLD DMA Controller for a Credit-Card Size Satellite Onboard Computer Michael Meier, Tanya Vladimirova*, Tim Plant and Alex da Silva Curiel.
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 5: Memory and Peripheral Busses September 20, 2011.
SOC Consortium Course Material ASIC Logic National Taiwan University Adopted from National Chiao-Tung University IP Core Design.
NS Training Hardware.
THE COMPUTER SYSTEM. Lecture Objectives Computer functions – Instruction fetch & execute – Interrupt Handling – I/O functions Interconnections Computer.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
SOC Consortium Course Material ASIC Logic Speaker: Lung-Hao Chang 張龍豪 Advisor: Prof. Andy Wu 吳安宇教授 May 21, 2003 National Taiwan University Adopted from.
Top Level View of Computer Function and Interconnection.
Chapter 14 Introduction to Microprocessors. 2 Microcomputer A self-contained computer system that consists of CPU (central processing unit), memory (RAM.
© 2005 Altera Corporation SOPC Builder: a Design Tool for Rapid System Prototyping on FPGAs Kerry Veenstra Workshop on Architecture Research using FPGA.
Chapter 6 FPGA Modules and Hardware Interface Design Professor Tzyy-Kuen Tien
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
EEE440 Computer Architecture
SOC Consortium Course Material Core Peripherals National Taiwan University Adopted from National Chiao-Tung University IP Core Design.
ECEG-3202 Computer Architecture and Organization Chapter 3 Top Level View of Computer Function and Interconnection.
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 4: Bit of ssembly, Memory-mapped I/O, APB January 21, 2014.
SOC Consortium Course Material On Chip Bus National Taiwan University Adopted from National Taiwan University SOC Course Material.
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 12: Memory and Peripheral Busses October 22nd, 2013 Slides.
80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types.
Dr Mohamed Menacer College of Computer Science and Engineering, Taibah University CE-321: Computer.
EECS 373 Design of Microprocessor-Based Systems Prabal Dutta
Speaker: Yu-Ju Cho 卓余儒 Advisor: Prof. Andy Wu 吳安宇教授
Spring 2007W. Rhett DavisNC State UniversityECE 747Slide 1 ECE 747 Digital Signal Processing Architecture SoC Lecture – Working with Buses & Interconnects.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
SOC Design Lecture 5 AMBA Signals. Youpyo DGU AMBA Bus Types.
Aditya Dayal M. Tech, VLSI Design ITM University, Gwalior.
Presented By Aditya Dayal ITM University, Gwalior.
Computer Architecture. Top level of Computer A top level of computer consists of CPU, memory, an I/O components, with one or more modules of each type.
AMBA® 3 AHB-Lite Protocol
1 EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 12: Memory accesses in C Memory and Peripheral Busses PCB.
Slides developed in part by Mark Brehob & Prabal Dutta
On-Chip Communication
ME2100 EMBEDDED SYSTEM DESIGN (ARM9™) [Slide 8] ARM AMBA Bus BY DREAMCATCHER
EECS 373 Design of Microprocessor-Based Systems Mark Brehob
Slides developed in part by Prof. Dutta & Dreslinski
Burst read Valid high until ready high
SOC Design Lecture 4 Bus and AMBA Introduction.
Speaker: Tian-Sheuan Chang July, 2004
Lab 9 ASIC Logic 第八組 R 陳方玉 R 陳建宏 R 柯鴻洋
William Stallings Computer Organization and Architecture 7th Edition
EECS 373 Design of Microprocessor-Based Systems Prabal Dutta
Presentation transcript:

On Chip Bus National Taiwan University Speaker: 沈文中 National Taiwan University Adopted from National Taiwan University SOC Course Material

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus Advanced High-performance Bus Advanced Peripheral Bus IP Design flow FPGA design flow

Bus Architecture

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus High performance Pipelined operation Multiple bus master Advanced High-performance Bus Advanced Peripheral Bus IP Design flow FPGA design flow

ASB characters Negative edge trigger Tri-state bus Drawback: More effort used to control timing Advantage: cost less area

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus Advanced High-performance Bus High performance Pipelined operation Multiple bus master Burst transfers Split transactions Advanced Peripheral Bus IP Design flow FPGA design flow

AHB simple Arch.

AHB Components AHB Components AHB master is able to initiate read and write operations by providing an address and control information. Only one bus master is allowed to actively use the bus at any one time.(max. 16) AHB slave responds to a read or write operation within a given address-space range. The bus slave signals back to the active master the success, failure or waiting of the data transfer.

AHB Components(ii) AHB Components AHB arbiter ensures that only one bus master at a time is allowed to initiate data transfers. AHB decoder is used to decode the address of each transfer and provide a select signal for the slave that is involved in the transfer. A single centralized decoder is required in all AHB implementations.

AHB Signals(i) AHB Signals can be classified as Clock (HCLK) Address and read/write data (HADDR, HRDATA, HWDATA) Arbitration (HGRANTx, HMASTER, HMASTLOCK,…) Control signal (HRESETn,…) Response signal(HREADY, HRESP)

AHB Signals(ii) Transfer signals HCLK HADDR[31:0] HWDATA/HRDATA [31:0] bus clock. All signal timings are related to the rising edge. HADDR[31:0] 32 bits system bus HWDATA/HRDATA [31:0] 32 bits write/read data bus HWRITE High: write data Low: read data HREADY Transfer done

AHB Signals(ii) Basic Transfer Each transfer consists of An address and control cycle One or more cycles for the data

AHB Arch.

AHB Signals(iii) Control signals HTRANS[1:0] HBURST[2:0] HSIZE[2:0] Current transfer type HBURST[2:0] When sequential transfer, control transfer relation HSIZE[2:0] Control transfer size=2^HSIZE bytes(max=1024bits) HPROT[3:0] Protection data

AHB Signals(iii)-HTRANS IDLE: master don’t need data to be transfered BUSY: allows bus masters to insert IDLE cycles in the middle of bursts of transfers. NONSEQ: The address and control signals are unrelated to the previous transfer. SEQ: the address is related to the previous transfer.

AHB Signals(iii)-HBURST

AHB Signals(iii)-HBURST

AHB Signals(iv) Response signals HREADY HRESP[1:0] Transfer done, ready for next transfer HRESP[1:0] OKAY transfer complete ERROR transfer failure(ex: write ROM) RETRY higher priority master can access bus SPLIT other master can access bus

AHB Signals(v) Arbiter signals HGRANTx HMASTER[3:0] HMASTLOCK Select active bus master HMASTER[3:0] Multiplex signals that sent from master to slave HMASTLOCK Locked sequence

Master signal

Arbiter signal

Slave signal

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus Advanced High-performance Bus Advanced Peripheral Bus Low power Latched address and control Simple interface Suitable for many peripherals IP Design flow FPGA design flow

APB state diagram

APB signals APB character APB signals Always two cycle transfer No wait cycle and response signal APB signals PCLK Bus clock,rising edge is used to time all transfers. PRESETn APB reset。active Low.

APB signals PADDR[31:0] APB address bus. PSELx Indicates that the slave device is selected. There is a PSELx signal for each slave. PENABLE Indicates the second cycle of an APB transfer. PWRITE Transfer direction. High for write access, Low for read access. PRDATA Read data bus PWDATA Write data bus

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus Advanced High-performance Bus Advanced Peripheral Bus IP Design flow Memory definition IP design-SW IP design-HW FPGA design flow

Memory definition Self-designed IP can be located in the Bus error response area Defined in AHBDecoder.v

AMBA IP design (1/4) Add an IP (MYIP) into the system which includes a ZBT SSRAM controller an AHB to APB bridge an APB register peripheral an APB interrupt controller an address decoder Slave #1 Slave #2 Logic Module MYIP Slave #3 AHB APB

AMBA IP design (2/4) Supplied HDL file AHBAHBTop.v AHBDecoder.v AHBMuxS2M.v AHBZBTRAM.v AHB2APB.v AHBAPBSys.v APBIntCon.v APBRegs.v Slave #2 Slave #1 Slave #3

AMBA IP design (3/4) Bus Interconnection Logic Module Slave #1 HSEL HADDR HWDATA HRDATA Decoder Slave #1 Slave #2 Slave #3 Logic Module Mux Master #1 Master #2 Arbiter

AMBA IP design (4/4) Software part Hardware part Write a function to control hardware Delay number of clocks by NOOP (asm) instruction Hardware part Design your own IP module MYIP.v Change AHBDecoder.v Change AHBMuxS2M.v Change AHBAHBTop.v to include MYIP into top module

IP design-HW (1/4) Design your own IP module MYIP.v MYIP.v Write your own module MYIP.v with AMBA AHB Slave interface MYIP.v HSEL HADDR HWDATA HRDATA HCKL HRESETn HREADYIn HTRANS HSIZE HWRITE HREADYOut HRESP MYIP circuit AHB Slave Interface READ WRITE IDLE

IP design-HW (2/4) Change AHBDecoder.v Add HSELMYIP signal to select MYIP to response Address are defined in decoder HSEL HADDR HWDATA HRDATA Decoder HADDR to all slaves Slave #1 Slave #2 MYIP Logic Module Master #1 Master #2 Mux HADDR_M1[31:0] HADDR_M2[31:0] HSEL_S1 HSEL_S2 HSELMYIP Address and control mux

IP design-HW (3/4) Change AHBMuxS2M.v Use Mux to select slave which can use HRDATA HSEL HADDR HWDATA HRDATA Decoder Slave #1 Slave #2 MYIP Logic Module Mux Master

IP design-HW (4/4) Change AHBAHBTop.v Add your module in AMBA bus Connect the above net connection HSEL HADDR HWDATA HRDATA Decoder Slave #1 Slave #2 MYIP Logic Module Mux

Architecture AHBAHBTop sel AHBDecoder AHBMuxS2M AHBZBTRAM MYIP ZBTSRAM AHB2APB sel APBIntCon APBregs AHBAPBsys addr

Files Description of Example Hardware files .\Lab6\Codes\HW\Verilog\ AHBAHBTop.v AHBDecoder.v AHBMuxS2M.v AHBZBTRAM.v AHB2APB.v AHBAPBSys.v APBIntCon.v APBRegs.v MYIP.v Software program files .\Lab6\Codes\SW\ sw.mcp register.c platform.h rw_support.s For FPGA synthesis tool to generate bitstream For CodeWarrior to generate sw.axf

Hardware file MYIP.v MYIP.v A simple IP template with 8 32-bit registers wrapped with simple AHB slave interface This file is modified from AHBZBTRAM.v HSEL HADDR HWDATA HRDATA HCKL HRESETn HREADYIn HTRANS HSIZE HWRITE HREADYOut HRESP MYIP circuit AHB Slave Interface READ WRITE IDLE

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus Advanced High-performance Bus Advanced Peripheral Bus IP Design flow FPGA design flow Compile flow & Download flow (Xilinx) Compile flow & Download flow (Altera)

Compile flow (1/2) (Xilinx) All Verilog module must be synthesized by Xilinx Software

Compile flow (2/2) (Xilinx) Add register.ucf (define the pin assignment) into project Double click generate programming file to generate *.bit (which can be downloaded into FPGA)

Download flow (Xilinx) Connect config link Connect Multi-ICE to Logic Module Power on Use progcards.exe to download register.bit file Remove config link Power off

Outline AMBA Bus IP Design flow FPGA design flow Advanced System Bus Advanced High-performance Bus Advanced Peripheral Bus IP Design flow FPGA design flow Compile flow & Download flow (Xilinx) Compile flow & Download flow (Altera)

Compile flow (1/2) (Altera) All Verilog module must be synthesized by Altera Software (Quartus II)

Compile flow (2/2) (Altera) Modify Pinout.csf into ahbahbtop.csf to define the pin assignment Push the Compile bottom to generate *.rbf (which can be downloaded into FPGA)

Download flow (Altera) Use the text-editor to produce a .brd file (configuration file for progcards.exe) Power off Connect Multi-ICE to Logic Module Set the LM in Config Mode Power on Auto-config again in the MultiICE Server program Use progcards.exe to download bitstream