TigerSHARC Evaluation Board

advertisement
TigerSHARC
processor and
evaluation board
Different capabilities
Different functionality
Concepts tackled



Differences between “processor” and “evaluation board”
Functionality present on TigerSHARC evaluation board
TigerSHARC is NOT a microcontroller.


A/D and D/A added simply to give evaluation board “something to
process”
ENEL619.04 (Topic 23) “project”






Learn about TigerSHARC processor architecture
Learn basics of how assembly code and architecture interact
Set up a project (mainly in) in “C++” to capture a signal
Do some signal processing in “C++”
Work through optimizing “one” subroutine into assembly code using more
and more parallel processor features
Use the same (or equivalent) code to look at optimization issues on other
processor Blackfin, TI C64XX+ and C64XX, and Beagle (2 core with ARM
2 / 26
and TI C64XX
TS201S Evaluation board contains
2 processors P0 (DSPA) and P1
(DSPB)
TWO
TS201S processors
Error messages
when linking about
P0 and P1 mean
problems with
code on specific
Processor 0 (P0)
Or processor (P1)
3 / 26
Evaluation board – Link Ports
Designed for “star”
Configuration –
Up to 8 processors
working together
P0 to P7 (selectable
by switches on back
of evaluation board
(Never tried – Don’t
destroy link ports)
4 / 26
JTAG debug ONLY AVALIABLE IN 3rd floor
labs
•ICT318 TigerSHARC (some stations).
• ICT320 Blackfin (some stations).
Some boards available for home use of USB
connector. Lower speed communication
rates than JTAG (factor of 20 - 100).
Audio connectors.
Max input voltage around 1 V p-p
with no DC.
Too great a voltage
destroys the board
Use MPEG or other players
Discuss deposit issues for home loan.
Keep Volume down
Damage and distortion
issues
5 / 26
Will be using IRQ lines
IRQ0 – button switch on panel
IRQ1 – digital signal from light sensor
Demonstrate “SIMPLE” dual processing
Buttons and LEDs split
between processors
Much “stuff” on the board
shared between processors
(but NOT all)
6 / 26
Evaluation Board
Architecture
P0
P1
7 / 26
Processors
can access
each other’s
INTERNAL
memory
and registers
Processors
can share
EXTERNAL
memory
MEMORY MAP USED IN 8 TigerSHARC PROCESSOR CLUSTER
Memory
allocation
depends
on ID #
8 / 26
Note – labeled processor A and B
rather than processor 0 and 1
9 / 26
Note – labeled processor A and B
rather than processor 0 and 1
Will be using IRQ lines
IRQ0 –button switch on panel
IRQ1 – digital signal from light sensor
Demonstrate “SIMPLE” dual processing
10 / 26
How to use the evaluation board
capability

Read a lot in the hardware manual
Modify some of the example programs
provided in
C:\Program Files\Analog Devices\VisualDSP
5.0\TS\Examples\ADSP-TS201 EZ-Kit Lite

and then read a lot in the hardware manual
11 / 26
CONCEPT OF LABS

Signal processing demonstrated through the
development of algorithms for an improved
doctors “stethoscope” and associated
equipment.

Demonstration rather than commercial
exploitation of TigerSHARC’s highly parallel
processing capability.
 Basically
looking for something reasonably easy, but
non-trivial, to hang the lectures and laboratories on.
12 / 26
Example of a suitable project
TSL230R-Based Pulse Oximeter
A small section of plastic electrical conduit houses
both the TSL230R sensor and the red and IR LEDs.
The TSL230R registers the amount of light passing
through the inside diameter of the conduit, which, in
this case, is through a patient’s finger.
Adapted from
www.circuitcellar.com/library/
print/1204/Bachiochi173/4.htm
13 / 26
What to we expect to see?
As blood flows through the circulatory system, it changes density
because of the heart’s pumping pressure. This change also
changes the absorption rate of light, effectively modulating the
light absorption. The total light absorption is a combination of
modulated and constant absorption, which is similar to a small
AC noise riding atop a DC voltage.
Adapted from www.circuitcellar.com/library/ print/1204/Bachiochi173/4.htm
14 / 26
How we far will go in the
laboratory is your choice
Study the absorption relationship of oxygen levels in
the blood for the red and IR wavelengths. Notice how
the oxygen level affects the absorption rate at the
red wavelength while it remains almost constant at
IR wavelengths.
Adapted from
www.circuitcellar.com/library/
print/1204/Bachiochi173/4.htm
15 / 26
Details from Circuit Cellar Article
The TSL230R’s frequency output displayed on my
oscilloscope shows a slow frequency jitter marked
by the vertical cursors. The output frequency shifts
with the varying amount of light absorption because
of the blood pulsing within the light’s path.
Adapted from
www.circuitcellar.com/library/
print/1204/Bachiochi173/5.htm
16 / 26
Period of light sensor from
article – can we do better?
This Excel chart displays imported sample values over
time. Samples of the output frequency (30 samples
per second formatted in microseconds) were sent
out the serial port and captured to a file by
HyperTerminal.
Adapted from
www.circuitcellar.com/library/
print/1204/Bachiochi173/7.htm
17 / 26
Labs.
Check article for how “determine heart
rate” was handled in original article.
 Can we pick out a more accurate heart
beat / signal using a DSP convolution /
correlation approach?

 These
are numerical methods involving much
memory use, adds and multiplications. Typical DSP
stuff.
 Straight forward optimization show TigerSHARC
capability
 If did on Beagle, Blackfin – what differences in
18 / 26
development and performance
ECE-ADI-Project


Was asked to develop (as part of Analog Devices University
Ambassadorship) to develop demonstration programs and place on the
web
Have now developed

SHARC – ADSP-21061 (Previous 515)


Blackfin – ADSP-BF533 (ENCM511 in 2008)


Real time operating systems
TigerSHARC – ADSP-TS201 (Current ENCM515, ENCM619.04 (Topic23)
Embedded Test Driven Development Environment (E-TDD)


Audio project utilities, Video Project utilities
Blackfin – ADSP-BF533 (Current ENCM491 – Nygren)



Audio project utilities
Blackfin, TigerSHARC, SHARC, Microsoft studio
Find at http://www.enel.ucalgary.ca/People/Smith/
ECE-ADI-Project/Index/index.htm
19 / 26
The code is not well written
unless it is testable
Write C code with tests to show concepts
works
 Optimize the code in one way, use same
test to show still works but faster
 Optimize the code in another way, use
same test to show still works but faster still
 Move code over to another processor, use
same tests etc

20 / 26
Standard development method
Waterfall method

Heavy on documentation, light on testing
Describe
Requirements
Write
Analysis Document
TLD -- IDAA
Design Solution
Write
Design Document
Build Solution
Write
Test Plan Document
Test Solution
21 / 31
Test
Last
Development
(if done at all)
TESTS EXPRESS DESIGN INTENT
TDD approach to develop C++ code
Work with customer to check that the TESTS PROPERLY
EXPRESS WHAT CUSTOME WANTS DONE Iterative
process with customer “heavily involved” – “Agile”
methodology.
CUSTOMER
DEVELOPER
Describe
Requirements
Design Solution
Build Solution
Write
Acceptance Tests
Write
Unit Tests
Test Solution
22 / 26
Some embedded stuff on test
driven development in the literature

Examine in more detail as part of
“individual” presentation?
23 / 26
Speed improvements when we use
the “C++” optimizer

Rule #1 of assembly code programming
Don’t use assembly code programming

What speed improvements occur when you turn on the
“C++ optimizer” – use Embedded Unit “Timing features”?

Wewill look at the code in detail to understand how the
compiler is taking advantage of TigerSHARC processor
to get code optimization.


Initially we will “look” at that code and say “oh my!”
Later we can think about comparing the performance of the
compilers on different processors. Position paper or project
24 / 26
Concepts tackled



Differences between “processor” and “evaluation board”
Functionality present on TigerSHARC evaluation board
TigerSHARC is NOT a microcontroller.


A/D and D/A added simply to give evaluation board “something to
process”
ENEL619.04 (Topic 23) “project”






Learn about TigerSHARC processor architecture
Learn basics of how assembly code and architecture interact
Set up a project (mainly in) in “C++” to capture a signal
Do some signal processing in “C++”
Work through optimizing “one” subroutine into assembly code using more
and more parallel processor features
Use the same (or equivalent) code to look at optimization issues on other
processor Blackfin, TI C64XX+ and C64XX, and Beagle (2 core with ARM
25 / 26
and TI C64XX
Download