720 likes | 992 Views
Hardware / Software Codesign Term Project : (1)AMBA BUS (2)Integration ARM and RTOS. D90522024 劉志鵬 F91522803 鍾書耘. Agenda. Why Need HW/SW Co-design? What is our first step ? AMBA BUS Conclusion 1 ARM ADS and RTOS Integration Conclusion 2. Why Need HW/SW Co-design?.
E N D
Hardware / Software Codesign Term Project : (1)AMBA BUS (2)Integration ARM and RTOS D90522024 劉志鵬 F91522803 鍾書耘
Agenda • Why Need HW/SW Co-design? • What is our first step? • AMBA BUS • Conclusion 1 • ARM ADS and RTOS Integration • Conclusion 2
Why Need HW/SW Co-design? • IC design has ushered in a new era – SoC • System on a Chip
Why Need HW/SW Co-design? • What is SoC?
Why Need HW/SW Co-design? • What is our first step? • Processor? • Memory? • Operating System? • Peripheral Interface? • CAD Tools? • What else?
What is our first step? • Core IP (Processor) • PC && Workstation • Intel Pentium • Ultra SPARC • MIPS • Micro-Controller • 8051 • DSP • TI, • SoC • ARM • Power PC • Configurable Tensilica Processor • SOPC • Altera – Nios • Xillinx – Micro-Blaze • Is there any opportunity for us in this area?
What is our first step? • Memories Design is our chance? • Process? • Operating System is another opportunity? • PC & Workstation • Windows • Unix – Solaris, HP-Unix • Linux • RTOS • eCos • Micrium uC/OSII • Shugyo Design KROS • Accelerated Technology Nucleus Plus • VxWork • Embedded System • Windows CE • uCLinux
What is our first step? • Peripheral IP Design is one way for us? • PrimeCell – ARM • Synopsys – • FPGA Vendor -- • Open Core Web Site –www.opencores.org • . . . • EDA CAD Tool? • Cadence • Synopsys • Mentor • 思源科技
What is our first step? • Can We Find Our Way in SoC or HW/SW Co-design Era? • Master in applications • ASIC • SW • Time to Market is another important thing • Use Well-Design IP • Embedded Linux, RTOS • What else? • Integration • System is the keyword of SoC • How to transition from on-board design to on-chip design? • AMBA Bus (One Important Issue) • Advanced Microcontroller Bus Architecture
AMBA BUS • AMBA Buses • Advanced System Bus (ASB) • Advanced High-Performance Bus (AHB) • Processors • On-Chip Memory • Off-Chip External Memory with low power peripheral macrocell • Bridge : to APB • High Speed ASIC –Your Design • … • Advanced Peripheral Bus (APB) • Peripheral Interface • UART • Timer • Low Speed ASIC –Your Design • …
AMBA BUS • Advanced High-Performance Bus : AHB
AMBA BUS • Advanced High-Performance Bus : AHB
AMBA BUS AHB • Advanced High-Performance Bus : AHB • 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 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.
AMBA BUS AHB • Basic Transfer of AHB
AMBA BUS AHB • Transfer Types of AHB
AMBA BUS AHB • Burst Operation of AHB
AMBA BUS AHB • Incrementing bursts access sequential locations and the address of each transfer in the burst is just an increment of the previous address. • An incrementing burst can be of any length, but the upper limit is set by the fact that the address must not cross a 1kB boundary • For wrapping bursts, if the start address of the transfer is not aligned to the total number of bytes in the burst (size x beats) then the address of the transfers in the burst will wrap when the boundary is reached. For example, a four-beat wrapping burst of word (4-byte) accesses will wrap at 16-byte boundaries. Therefore, if the start address of the transfer is 0x34, then it consists of four transfers to addresses 0x34, 0x38, 0x3C and 0x30.
AMBA BUS AHB • There are certain circumstances when a burst will not be allowed to complete and therefore it is important that any slave design which makes use of the burst information can take the correct course of action if the burst is terminated early. The slave can determine when a burst has terminated early by monitoring the HTRANS signals and ensuring that after the start of the burst every transfer is labelled as SEQUENTIAL or BUSY. If a NONSEQUENTIAL or IDLE transfer occurs then this indicates that a new burst has started and therefore the previous one must have been terminated.
AMBA BUS AHB • HSIZE[2:0] of AHB
AMBA BUS AHB • The protection control signals, HPROT[3:0] of AHB
AMBA BUS AHB • AHB Bus Slave
AMBA BUS AHB • AHB Bus Master
AMBA BUS AHB • AHB Arbiter
AMBA BUS AHB • AHB Decoder
AMBA BUS APB • Advanced Peripheral Bus : APB • The AMBA APB should be used to interface to any peripherals which are lowbandwidth and do not require the high performance of a pipelined bus interface.
AMBA BUS APB • IDLE • The default state for the peripheral bus. • SETUP • When a transfer is required the bus moves into the SETUP state, where the appropriate select signal, PSELx, is asserted. The bus only remains in the SETUP state for one clock cycle and will always move to the ENABLEstate on the next rising edge of the clock. • ENABLE • In the ENABLE state the enable signal, PENABLEis asserted. The address, write and select signals all remain stable during the transition from the SETUP to ENABLE state. The ENABLE state also only lasts fora single clock cycle and after this state the bus will return to the IDLE state if no further transfers are required. Alternatively, if another transfer is to follow then the bus will move directly to the SETUP state. It is acceptable for the address, write and select signals to glitch during a transition from the ENABLE to SETUP states.
AMBA BUS APB • Write Transfer of APB
AMBA BUS APB • Read Transfer of APB
AMBA BUS APB • APB Bridge
AMBA BUS APB • APB Slave
Conclusion • What do you want in SoC era?
(2)Integrate uC/OS-II into ARM Development Suite (ADS) D90522024 劉志鵬 F91522803 鍾書耘
Introduction to ADS • Experiment 1 • Analysis of ARM and Thumb instruction • Experiment 2 • Integrate UC/OSII into ADS
ARM Development Suite (ADS) • Project management • Configuring the settings of build targets for project
Main components of ADS • ANSI C compilers- armcc, tcc • ISO/Embedded C++ compilers – armcpp, tcpp • ARM/Thumb assembler- armasm • Linker – armlink • Project management tool –CodeWarrior • Instruction set simulator –ARMulator • Debuggers –AXD, ADW, ADU and armsd • Format converter – fromelf • Libarian – armar • ARM profiler – armprof
CodeWarrier • Provides a simple, versatile graphical user interface for managing your software development projects • Develop C,C++, and ARM assembly language code • Targeted at ARM and Thumb processors
Create New Project Project File View Target Setting Editor Window
AXD • Various views allow you to examine and control the processes you are debugging
ARMulator • A suite of programs that models the behavior of various ARM processor cores and system architecture in software on a host system • Can be operates at various levels of accuracy • Instruction accurate • Cycle accurate • Timing accurate • Benchmarking before hardware is available
Introduction to ADS • Experiment 1 • Analysis of ARM and Thumb instruction • Experiment 2 • Integrate UC/OSII into ADS