migrating an academic dsp lab from the c30 to the c67 evm by keith hoover, dept. of electrical and...

35
Migrating an Academic DSP Lab from the C30 to the C67 EVM by Keith Hoover, Dept. of Electrical and Computer Engineering, Rose-Hulman Institute of Technology, Terre Haute, Indiana Keith.E.Hoover@Rose-

Post on 21-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Migrating an Academic DSP Lab from the C30 to the C67 EVM

by Keith Hoover,Dept. of Electrical

and Computer Engineering,

Rose-Hulman Institute of Technology,

Terre Haute, Indiana

[email protected]

Goals of this Presentation: 1. Discuss pros and cons of migrating academic

DSP lab from C30 to C67.

2. Briefly describe 3 RHIT courses that use C67.

3. Describe the C67 DSP Projects course in detail. All C67 EVM DSP Projects course handouts

are available for download at

www.rose-hulman.edu/~hoover/

The Thrill of RAW Power... Who could resist the chance to upgrade their

DSP lab from an old 60 MIPS TMS320C30 DSP board to a new 1600 MIPS C67 EVM?

After all. the C67 EVM is not much more expensive than the C30!

TMS320C3X EVM => $995 (List), $695 (Univ.) TMS320C6701 EVM Bundled with CCS EVM

tools => $2495 (List), $1495 (Univ.)

* Source of EVM Prices: www.ti.com/sc/docs/general/dsp/programs/toolweb.htm

Bottom Line:

27X increase in raw computing power, with only 2.2X increase in cost!

“But that’s not all...” Consider the added bonus of having much

more on-board RAM, and a really powerful integrated code development environment (Code Composer Studio!) bundled with the C67 EVM!

Code Composer Studio IDE• CCS’s incredibly rich features include:

– Code Editor– Code Gen: C6x Compiler/Assembler/Linker– Debugger: Download/Single Step/Breakpoint

Watch Window, host console I/O code profiling, simulator, graphing.

– DSP/BIOS: Probe/Trace/Monitor/Data Streams– RTDX (Real time data exchange): High-level host

interface exchanges data with standard PC applications, such as LabView or Excel.

•Are you “sold” on upgrading your DSP Lab to the C67 EVM?

A WORD OF CAUTION: you need to plan CAREFULLY before you take the “C67” plunge!

Compared with our C30 boards, there is so much more for us to learn! And we are still learning after one year.

Our Original C30 DSP Project Course was able to “Teach it all” in one 10-week Quarter,

including.... C30 DSP Architecture Assembly Language Programming C30 C Language Programming Analog I/O & Interrupts & DMA PC/DSP Communication High-level DSP tools (DSPWorks, QED Filter

design, code generator) Weekly Projects & Final Term Project. C30 DSP Boards from 3rd Party Mfr. (These 6-

year old C30 boards are no longer manufactured or serviced.)

But a price had to be paid for making the raw power of the exciting, state-of-the-art C67 DSP hardware and the sophisticated features of the bundled Code Composer IDE available to our students:

• The price we paid was not economic.

• It was one of information overload!

• No longer could we successfully “teach it all” in a single 10-week course!

Teaching the C67 EVM is like flies on an elephant...

• We are the flies.

• The C67 is the elephant!

None of us flies can possibly “see the whole elephant at

once”. Depending on where we land on the elephant, each of us can get a very different idea of what the elephant is all about!

Some challenges presented in

migrating from C30 to C67....

Example 1. Manuals needed to Program C30 EVM

A few of the Manuals Needed to Program the C67 EVM Board! (This is NOT all of

them!)

Then you need a book that tells you what the data books say!

•C6x-Based Digital Signal Processing by Nasser Kehtarnavas & Burt Simsek Prentice Hall: 2000

Example 2. • C30 board communicated with PC via simple memory-

mapped “pass-through” registers.

• C67 EVM can communicate with PC via a much more “flexible” (that means “more complicated”!) “AMCC Matchmaker” PCI controller chip, this chip transfers data “pass-through” registers, or “mailbox” registers, or “FIFO registers”.

Example 3. The C67 EVM’s stereo A/D and D/A converters on a flexible Crystal Semiconductor CODEC chip,

---which requires a 76-page data manual!

We solved the C67 “information overload” problem by breaking our C67 instruction into the following three, somewhat independent, 10-week (1-quarter) courses:

EC332 Computer Architecture II (Yoder)• C67 good example of modern parallel pipelined,

VLIW CPU architecture. • C67 assembly language programming• Assembly optimization• Software pipelining• Writing optimized C code• Use of Code Composer Studio (simulation)• Based on TI’s C62xx DSP Design Workshop

course notes.

EC597 Real-Time Systems Programming (Yoder)• Patterned after TI’s Real-Time Software Design

Workshop course notes.• Focuses on real-time programming concepts that

promote more efficient real-time DSP programs, such as double-buffering, event scheduling, data profiling, DSP/BIOS I/O and data analysis, RTDX (real-time date exchange) capabilities.

• Does NOT dwell on the signal processing algorithms themselves.

• Significant term project required. (Ex: broom balancer, MPEGII audio decoder, phased microphone array, image recognizer, internet telephone.)

EC581 DSP Projects (Hoover)• DSP Theory Class is prerequisite.

• Focuses on real-time implementation of common DSP algorithms previously studied in DSP theory course.

• No Assembly Required! (Only C67 C-language and MSVC++ are used.)

• Independent of other two C67 classes, thus the emphasis is on writing simple, working C code rather than on writing optimal code.

EC581 (DSP Projects) consists of three components...

1. Nine single-week projects (2 person teams)

2. Classroom demonstrations of selected topics of interest

3. Term project. All reports are memo-style with all

programs, data, and data analyses included as attachments.

EC581 Meetings

• Two lecture hours per week (to discuss the week’s lab and demonstrate advanced topics)

• One 3-hour scheduled DSP lab per week.

• Students expected to work in DSP lab on a walk-in basis for approximately six additional hours per week.

List of Weekly DSP Lab Projects

• 1. Code Composer familiarization. Audio sampling, study of effects of quantization on speech recognition, reverberation, comb filter, flanger

• 2. FIR filter design (MATLAB). Real-time floating and fixed-point FIR filter implementation.

• 3. IIR filter design (QEDesign). Real-time implementation. Implementation of Wah-Wah audio sound effect.

Each of these lab handouts (MS Word 97) may be downloaded at

http://www.rose-hulman.edu/~hoover/

• 4. Digital automatic gain control with silence threshold.

• 5. Audio VU meter with separate target and host C programs communicating through PCI interface via FIFO register.

• 6. Radix-4 FFT real-time audio spectrum analyzer.

• 7. MATLAB narrow-band noise reduction via adaptive filtering. (Once MATLAB LMS adaptive filter works, implement in real-time on C67 EVM.)

• 8. Use of Hyperception RIDE 4.2 to perform real-time C67 EVM-based digital filtering and audio scrambling and descrambling via spectral inversion.

• 9. DSP Scavenger Hunt - Use RIDE 4.2 digital filtering and LMS noise reduction to reduce noise level in various noise-polluted audio clips that indicate the location of $5.00 bills hidden around campus! First come, first served!

10. Term Project (to be chosen by student)

Example Projects Done in Past:

• Real-time audio spectrum analyzer• Ultrasonic chirp radar• Touch-tone DTMF decoder• Guitar Tuner• Voice-operated security lock • Underwater voice communication system using

ultrasonic-carrier• Guitar effects box

Special Class Demos

• M.S. Students describe DSP their DSP-related thesis work.

• Present theory of Linear Predictive Coding and show EVMC30 board 2400 bps LPC demo. With pitch shifting, whisper effects!

• We need this wonderful C30 LPC demo ported to C67!!

“Pros” of migrating from C30 to C67 EVM-based DSP Projects

• Students more motivated to work with state-of-the-art DSP.

• Code Composer Studio offers superior source-level debugging environment.

• Giving the students the “sampling template” program to work from allows them to concentrate on DSP algorithm development and not get lost in the forest (details of CODEC and McBSP serial port configuration) for the trees!

• Real-time DSP algorithms not as “time critical” due to the faster speed of C67.

• C67 EVM will most likely remain supported for longer time than if we had bought new C30 boards at this time.

• New DSP laboratory textbooks will probably focus on the C67, not the C30.

• Dealing with C67 EVM complexity is probably good preparation for the technological challenges that lie in the future. (These NOT getting any simpler!)

Cons of migrating from C30 to C67

INFORMATION OVERLOAD! => Need for several C67 classes. Learning time (for students AND for instructors) is long compared to C30.

Increased reliance on “soft” manuals in .PDF -- hard to work with (though free to students!)

Code Composer does not appear to be stable under Win 98 -- we could only Win 95 or NT!

As an EE, I don’t like getting so far away from the hardware level.

C67 EVM communicates with PC running Microsoft Visual C++.

• Just as going from the C30 to the C67 has become an order of magnitude more complicated, so has Microsoft C become an order of magnitude more complex.

• With the latest version of MSVC++, it is a majore challenge to write anything more than a simple MSVC++ console application.

ConclusionThe C67 DSP board has successfully provided

our students with three different and valuablekinds of lab experiences in three different

courses:

1. Low-level Architecture and Assembly Programming

2. Mid-level DSP Project Applications3. High-level Real-time Programming Issues

Though not without its frustrations, we realize

that no road that leads into the future is smooth.

We feel that the C67 EVM will be an excellent vehicle with which we can ride into the future with our students over the next five years!