45
Training Guide for VAB for INFINITY Version 1.1 From Geoffrey C. Orsak, Ph.D. Director, The INFINITY Project “This effort, named "The INFINITY Project," is designed to educate and excite a new generation of inventors, entrepreneurs, and users of technology. It is intended to give high school students a clear view of the basic fundamentals of modern technology and engineering while demonstrating how engineers envision, design, and build the devices which are powering the world around us.”

Training Guide for VAB for INFINITY

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Training Guide for VAB for INFINITY

Training Guide for VAB for INFINITY

Version 1.1

From Geoffrey C. Orsak, Ph.D. Director, The INFINITY Project

“This effort, named "The INFINITY Project," is designed to educate and excite a new generation of inventors, entrepreneurs, and users of technology. It is intended to give high school students a clear view of the basic fundamentals of modern technology and engineering while demonstrating how engineers envision, design, and build the devices which are powering the world around us.”

Page 2: Training Guide for VAB for INFINITY

Training Guide

HSTN0411June 2001

Page 3: Training Guide for VAB for INFINITY

Training Guide for VAB for INFINITY

Version 1.1

Hyperception, Inc 2001

9550 Skillman LB125

Dallas, TX 75243

Phone: 214-343-8525 • Fax: 214-343-2457

E-mail: [email protected]

World Wide Web: http://www.hyperception.com

Page 4: Training Guide for VAB for INFINITY
Page 5: Training Guide for VAB for INFINITY

T A B L E O F C O N T E N T S

INFINITY TECHNOLOGY KIT AND VAB OVERVIEW 1

WHAT IS VAB? 2

IMPORTANT TOOLBAR BUTTONS WITHIN VAB FOR INFINITY 3 File Open Commands 3 Component Selection Command 4 Mode Selection Commands 5 Run/Stop Commands 6

WHAT IS THE DSP BOARD AND WHAT PURPOSE DOES IT HAVE? 8 C31 DSK Details 8

WHY IS VAB IMPORTANT TO ME IN TEACHING? 9 The debate of Real-time DSP versus simulation in today’s education 9 The Importance of Real-time DSP in today’s education 9 Problems with including Real-time DSP in a course 11 Addressing the problems in using Real-time DSP with VAB 12 Easy to Use 14 Background of VAB 14

WHAT IS MEANT BY THE TERM ‘DSP’ AND WHY IS IT USED SO MUCH? 15

WHAT IS A BLOCK DIAGRAM? 16

HOW DO I GET INFORMATION RELATED TO WHAT THE BLOCK DIAGRAM WORKSHEET IS DOING? 17

WHAT IS A BLOCK? 18

HOW DO I LOAD EXAMPLE WORKSHEETS? 19

Page 6: Training Guide for VAB for INFINITY

T A B L E O F C O N T E N T S

HOW DO I MAKE MY OWN BLOCK DIAGRAMS? 21 Constructing a Simple Worksheet 21

VAB FOR INFINITY SHORTCUTS AND OTHER HELPFUL FEATURES 25

WHO IS HYPERCEPTION AND WHAT DO THEY DO? 28

ADVANCED VAB ARCHITECTURE INFORMATION 29 VAB for INFINITY Architecture Overview 29 Using Recursion in Graphical Designs 33 Using Global Parameters in Graphical Designs 34 Using Dynamic Parameters in Graphical Designs 34 Using Conditional Logic in Graphical Designs 34 Persistent Data Array Storage 34 Using Hierarchy in Graphical Designs 35 Using a Sound Card for Limited Real-time Capability 36 VAB for INFINITY Real-time Architecture Overview 36

VOCABULARY 38

Page 7: Training Guide for VAB for INFINITY

1

INFINITY Technology Kit and VAB Overview

This training guide is one of your first steps to understanding the INFINITY Technology Kit and VAB. It will allow you to demonstrate and create powerful technology applications quickly and easily.

The INFINITY Technology Kit includes advanced software and Digital Signal Processor (DSP) hardware to allow students to see and feel the beauty and importance of engineering and technology today. The DSP-based hardware (from Texas Instruments) allows for very fast math operations to be performed on real-time, live signals; the advanced software, VAB (from Hyperception, Inc.) allows this DSP hardware to be tamed, and even exploited, by those new to this technology area. There has been much effort placed into making the learning curve associated with this technology as shallow as possible, while still retaining the essential engineering capabilities. Through this kit, and the associated curriculum, teachers will be able to spread the message to students that engineering can be interesting, important, exciting, and yes – even fun!

One of the more exciting developments in recent years is the ability to use graphical programming technology combined with DSP hardware. VAB for INFINITY achieves exactly that! In fact, after designing the real-time application graphically, VAB for INFINITY has the ability to allow the newly created application to be run and tested immediately. Provisions have been included to allow the curriculum and the technology kit to work well together, and in fact, both are required to keep the students interest level, and hammer home important technology concepts.

Section

1

INFINITY Technology Kit

Page 8: Training Guide for VAB for INFINITY

2

What is VAB? Graphical design methodology is changing the way engineers perform their work, and VAB for INFINITY allows students to work with new technology in an easy –to-follow manner.

The software developed by Hyperception for the INFINITY Project (VAB for INFINITY) is an educational tool that allows students to easily see and build technology applications in a graphical environment. VAB embodies the spirit partially captured in the opening paragraph taken from a letter by the director of the INFINITY Project. VAB for INFINITY can show real-time DSP-based demonstrations on low-cost DSP hardware, namely the DSP board included in the INFINITY Technology Kit. VAB provides a software foundation/interface that shows the many features of Multimedia and Information Engineering within minutes of taking the kit out-of-the-box. Examples are included to allow very quick loading and running of important real-time technology demonstrations with live student interaction.

This powerful new and exciting educational tool has been designed especially for the High School environment so students can learn and experience technology in a fast, easy-to-navigate, fun environment. The intuitive drag-and-drop interface along with a set of powerful DSP software components allows users to build DSP applications in minutes. A familiar graphical user interface allows students to instantly transform block-diagram concepts to running real-time technology applications quickly.

This tool has the potential to dramatically change the way students learn DSP. Students can easily both observe and even build real DSP solutions to solve real problems on real-time DSP hardware. This revolutionary way to introduce DSP to beginners reduces the learning curve and encourages hands-on experimentation; this program has the capacity for growing the future supply of engineers and technology-literate people, thereby increasing the number of new and innovative designs, and overall growing the future technology marketplace.

Page 9: Training Guide for VAB for INFINITY

3

Important Toolbar Buttons within VAB for INFINITY Some of the more important toolbar buttons for VAB for INFINITY are shown in the following slides.

File Open Commands

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 12

File Commands

Important Toolbar ButtonsImportant Toolbar Buttons

NewCreates a new, blank worksheet

OpenAllows user to select an existing worksheet

Open examplesAllows user to select from example worksheets

SaveFor saving current worksheet

File Open Commands

NOTE

After studying the material in this training guide, you will find it useful to peruse the chapter on VAB for INFINITY menu commands in the online help. Although much less tutorial in nature, there are many features defined in the menu commands chapter that are not explained elsewhere.

Page 10: Training Guide for VAB for INFINITY

4

Component Selection Command

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 14

Component Selection

Important Toolbar ButtonsImportant Toolbar Buttons

Select blocksBrings up block function

selector dialog box toallow user to select from

available components

Component Selection Command

Page 11: Training Guide for VAB for INFINITY

5

Mode Selection Commands

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 20

Important Toolbar ButtonsImportant Toolbar ButtonsConnection/Mode Selection

Setup ModeDefault mode, used forselecting and arranging

components

ConnectAllows connections to be made

among blocks such that the dataoutput from a given block may beused as input for another block -this is the usual connection mode

Conditional ConnectionTo allow connections to be made among blocks

such that the data output from a given block may beused to control whether another block is allowed to run

Parameter ConnectionTo allow connections to be made among blocks

such that the data output from a given block may beused to set a parameter of another block dynamically

DeleteUsed for deleting components

Mode Selection Commands

Page 12: Training Guide for VAB for INFINITY

6

Run/Stop Commands

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 23

Run/Stop Selection

Important Toolbar ButtonsImportant Toolbar Buttons

RunStarts execution of the system and

runs until ‘Stop’ is pressed

StopUsed to stop the currentexecution of the system

Run/Stop Commands

Page 13: Training Guide for VAB for INFINITY

7

Page 14: Training Guide for VAB for INFINITY

8

What is the DSP Board and what purpose does it have? The DSP board is responsible for performing millions of math instructions every second and is the reason the applications within VAB for INFINITY run in real-time. The DSP board is based on a specific type of DSP called a TMS320C31, and the board also includes ability to accept input data (via something called an ‘Analog to Digital Converter’ or A/D) and an ability to output data (via something called a ‘Digital to Analog Converter’ or D/A). Therefore, the DSP board is capable not only of the actual processing of real-time data, but it is also capable of interfacing to the real-world!

C31 DSK Details • Floating Point DSP

• Memory: 2 kW On-chip

• Performance: 2255 MMIIPPSS 5500 MMFFLLOOPPSS

• Parallel port interface to PC

• Single Channel A/D, D/A

• Sample rate to 19.2 kHz

Page 15: Training Guide for VAB for INFINITY

9

Why is VAB important to me in teaching?

• Encourage more students to take an active interest in learning about DSP’s and related products

• Allow DSP to be taught earlier to a younger audience

• Allow more teaching time to be spent on concept and real-world, less on tools

• Get quick analysis of many technical-related study areas

• Gets students interested in technology areas that are very fruitful for future high-paying jobs

The debate of Real-time DSP versus simulation in today’s education There has been an ongoing debate for years about the relative merits/problems associated with using real-time DSP as opposed to (or even in addition to) simulation in the classroom. Both critics and supporters of real-time DSP in the classroom certainly recognize the potential merit of real-time DSP, and at the same time, the potential pitfalls associated with this sometimes complex facet of DSP.

Critics argue that real-time is too expensive, detracts from the learning experience by spending too much time on the teaching of the tools at the expense of the teaching of the concepts, and is not needed for a good education in signal processing. They further believe that in order to fit time schedules in teaching, the real-time must be so down-sized and trivialized as to be completely void of any real substantive learning value.

Supporters believe that the time spent on the tools for real-time DSP is manageable, but that even if not, it is worthwhile because the tools are important themselves as they are part of the design process for DSP engineers in the work force.

This Training Guide will attempt to add a new wrinkle into this debate, by showing that it is possible to use real-time DSP in an advantageous fashion, without the high cost, formidable learning curve, and detraction from fundamental concepts typically associated with real-time DSP in a classroom setting. If successful in accomplishing the task of using real-time DSP in the classroom, the very real benefit to us all becomes quite obvious.

The Importance of Real-time DSP in today’s education The desire for real-time DSP in the classroom stems from a number of important issues. The relevance of real-time DSP to today’s society and industry labor needs in the area of skilled DSP engineers is one concern. Another is related to the ability of real-time DSP to elicit excitement in the students and a sense of accomplishment and overall appreciation for the power and flexibility of DSP’s today. In addition, the nature of DSP from a practical application standpoint, is constantly

Page 16: Training Guide for VAB for INFINITY

10

changing due to the fact that the Digital Signal Processors are constantly changing, increasing the number and types of DSP applications; certainly having a sense of this dynamic nature of DSP is important to convey, and real-time DSP is a prime candidate for getting this message across.

Relevance One of the considerations that may seem obvious is what is meant by ‘DSP’. Does the acronym stand for “Digital Signal Processing “ or “Digital Signal Processor”? If one considers that Digital Signal Processing has been around for a while, but that there seems to be more motivation/emphasis placed on teaching DSP today than ever before, it might have something to do with the number of applications using DSP today – and this is directly related to “Digital Signal Processors”.

Without the high performance, low cost, low power Digital Signal Processors, the numbers of applications would be much reduced, and therefore, much of the motivation for teaching DSP. Therefore, I would suggest that having the Digital Signal Processor actually being used within the course is quite relevant, and it is difficult to achieve this without using real-time DSP.

Relevance to Society

Today’s society is inundated with consumer products and applications directly tied to real-time DSP. Some of these include the Internet (many facets, including DSL technology, compression technology, etc.), MP3 players, DVD’s, cell phones, and many more. The fact that real-time DSP is fundamental to these devices, and that the students are quite familiar (and typically in a favorable manner) with them, adds a somewhat ‘modern’ relevance to the course.

Relevance to Industry

When one studies the type of work being performed in the DSP engineering labor market, it is likely more heavily weighed towards practical working products based on real-time DSP, than it is on pure R&D and simulation.

Even much of the R&D today is performed on live working DSP hardware, due to the fact that the constraints of running on today’s Digital Signal Processors is critical to the success of the R&D, which is aimed at a real-world commercial success (product).

Obviously, much of the motivation on DSP is driven by the large DSP semiconductor houses, and their motivation is to move high volume numbers of DSP chips, which implies successful real-time DSP products and applications.

One of the key challenges for DSP taught at the classroom level is to produce an increased number of capable engineers, both motivated and equipped to deal with practical DSP as it relates to industry. The DSP industry has labor needs that must be filled, and it should be a goal of the educational system to produce enough DSP engineers to satisfy the demands from industry.

Excitement Factor Another reason to consider using real-time DSP is the excitement factor it can bring to a course, assuming it is not fraught with a large learning curve. Having a student actually construct an algorithm and see it running real-time not only creates interest and excitement in the student, but also affords the student a sense of satisfaction and confidence in ability.

Page 17: Training Guide for VAB for INFINITY

11

In addition, many students today have grown up in likely a more interactive world, with video games, the Internet, and cellular technology being commonplace to them. Real-time DSP allows for a more interactive method of study, with the student able to see and hear the results of their algorithm running in real-time on actual DSP hardware. This interaction keeps the student interested, and allows for a higher retention of knowledge – much easier to remember how a low-pass filter sounds than to remember the equation for it.

Development of a more savvy engineer The practical nature of real-time DSP forces a certain amount of real-world savvy into a student. Simply having to connect cables and power to actual DSP hardware is sometimes an interesting experience for someone new to real-time DSP. Realizing that there exist actual input and output paths to/from DSP hardware is itself sometimes educational, and lends to the overall sense of the power, flexibility, and ability for DSP to address real-world things, not just equations in a book.

The student is made aware of important concepts such as how many instructions per second the device is capable of, and how many instructions per second does a particular algorithm (which the student may be listening to in real-time) require? Or how much memory does the DSP chip have, and how much does the particular algorithm require.

These processor specific timing and memory sizing issues are of fundamental importance when designing real-world DSP products and applications; having a sense, or feel, for these types of design issues is sometimes equally important (if not more) than knowing how to design an IIR filter in assembly, or write FFT algorithms in C. As the world moves quickly towards component-based DSP design, more time should be spent on the real-time nature of algorithms running on real-world DSP hardware.

Keeping up with Technology Driven Advances Another aspect of using a real-time DSP-based curriculum is that it provides some incentive for the course to stay current, which is probably more important for DSP-related classes as opposed to history, or English, for example. VAB allows for the student identify a particular DSP chip that is used, and to associate that with a feel for the performance in the real-time examples the student has seen/done.

Problems with including Real-time DSP in a course

Learning Curve Barrier Probably the largest problem encountered with using real-time DSP in a traditional DSP course is the typically high learning curve associated with using live DSP hardware. Many times the instructor spends more time on teaching the basics of the tools (Assemblers, C-Compilers, linkers, debuggers, etc.) than on the actual DSP concept.

In addition, if the instructor is not careful, the ‘DSP course’ they are teaching may turn into a training session on assembly programming or the C language. Keeping the instructor and student focused on the applied results of real-time DSP on live hardware, and not on the implementation details is the constant (and often times losing) battle with conventional real-time DSP approaches.

Page 18: Training Guide for VAB for INFINITY

12

Losing Interest (lack of excitement) Likely related to the steep learning curve, the next problem area encountered in using real-time DSP in a classroom course is the waning interest level as students are moved from good interesting concepts to the drudge of programming, debugging, and testing. Often times, the student is not able to achieve anything running in real-time without blatant ‘borrowing’ from the instructor (or a stellar student).

Sometimes the frustrated student is never able to appreciate the power and beauty of a working real-time system. Worse, the student may actually be left with a bad taste for real-time DSP - which never should have happened. This is the worst possible outcome, because it is likely that this individual will not pursue a career in one of the DSP-related engineering areas.

High Cost Historically, real-time DSP has been quite expensive, with real-time DSP hardware and software costing thousands of dollars per station. For many schools, the simple fact is that there hasn’t been the budget available to outfit a real-time DSP lab; the large majority of schools have a hard time coming up with tens of thousands of dollars for real-time DSP labs.

Addressing the problems in using Real-time DSP with VAB VAB was designed to reduce or eliminate the problems historically facing those instructors who chose the path of using real-time DSP in their course. Significantly, the learning curve of VAB is dramatically lower, eliminating the learning bottleneck of assembler, compiler, linker, and debugger development tool required expertise. In addition, conventional textual-based software language is not required (though it may be used optionally as an exercise). The interactive nature of VAB in conjunction with a DSP hardware board allows for a much more interesting, even exciting, learning experience. Finally, the expense for VAB and associated real-time DSP hardware has reached an unprecedented low cost level. By removing these obstacles to the use of real-time DSP in teaching, VAB allows for a much more dynamic, synergistic method of enticing and teaching students about DSP.

Learning Curve Reduction The task of getting development tools and hardware hooked-up, configured, and running is reduced from days (or weeks) to minutes. The VAB Software provides access to the DSP that lets one “play” without prior programming experience; thus, the student has a feeling of accomplishment in programming a DSP which will excite them to pursue DSP learning further, without the necessity of having prior experience in standard software languages (such as C or Assembly). In addition, the instructor may spend more time on the concepts associated with real-time DSP and eliminate the typically steep learning curve associated with the conventional real-time DSP software tools (Assemblers, C-compilers, Debuggers, etc.) .

Keeping Interest - Excitement Factor In addition to easily displaying the time and frequency-domain versions of the input and output, the development tool platform used will respond in real-time to all the changes the user makes, thereby

Page 19: Training Guide for VAB for INFINITY

13

letting them instantly hear and see the changes. This ‘on-the-fly’ nature of VAB allows for quick satisfaction by the student and an appreciation of the power and flexibility of real-time DSP.

Low Cost Removing the high cost associated with the physical DSP hardware and software was another problem area addressed by VAB. With VAB, very low-cost DSP hardware platforms may be used, with the entire kit less than $300. The VAB software itself is priced lower than standard engineering textbooks, such that students may actually purchase the software directly. In addition, the host platform is a simple PC, generally already available at most academic institutions.

Example VAB Application for making touch-tones used in telecommunications (DTMF)

Host Platform

The requirements for the host platform are a modest PC, with a minimum suggested machine being 100 MHz 486, capable of running Windows 95, Windows 98, Windows NT, or Windows 2000. The faster the machine, the faster screens will update, though the real-time nature of VAB is not actually affected much, since it is running on the DSP hardware.

Page 20: Training Guide for VAB for INFINITY

14

Easy to Use A primary consideration for VAB was ease-of-use. This translates not only into quick understanding on the part of the student, but also to more available time to teach DSP for the instructor. With VAB it is possible to actually teach fundamental DSP and related concepts using real-time DSP hardware, without having to teach the C language, Assembly, or debugging technologies. In fact, in addition to allowing instructors and students the ability to create their own real-time DSP applications, upon starting the VAB software, a dialog box is displayed which allows the user (instructor, student) to select from a number of pre-built examples, by category.

Functionality to see the power of DSP This tool provides a gallery of proven DSP components and a sophisticated graphical drawing environment. It produces customized DSP code depending on settings that the user selects for each component. The user can design technology algorithms and utilize the Input/Output capabilities of the actual DSP hardware, such as the A/D and D/A converters, allowing for an interactive nature of design/learning.

Fun and Exciting Real-time Feedback The direct feedback allowed by real-time DSP systems is difficult to forget from a student’s point of view. The ability to see and hear what the DSP is doing in real-time may make the difference for many students between what is often rote memorization of equations, to the actual understanding of a concept. The direct interaction and feedback provided by VAB may likely make the learning experience more interesting to the student. Our belief is that the interactive nature of VAB provided by its real-time support for DSP can provide a positive, synergistic reinforcement to traditional DSP theory.

Graceful Resource Exhaustion It is possible for the user to ask the DSP to do too much, especially on the limited memory DSK platforms. Rather than prevent such action, the system is designed to let the user know why the system is not running. Students will then have the choice of reducing the number of processes, or the sampling rate, etc. Thus, even in ‘failure’, the students will be learning important conservation principles for practical DSP algorithm development.

Background of VAB VAB was created by Hyperception, Inc. in partnership with Texas Instruments. Hyperception, involved in advanced software development tools for DSP since 1984, leveraged over a decade of experience in graphical component-oriented DSP software to create VAB. Texas Instruments is a world leader in the DSP semiconductors.

Page 21: Training Guide for VAB for INFINITY

15

What is meant by the term ‘DSP’ and why is it used so much? DSP in the context of INFINITY basically means FAST MATH performed by a processor. Since much of the interesting and exciting technology of today is based upon simple math done quickly (or in real-time), the term DSP will show up a lot when talking about multimedia and related technology areas – but just remember that it’s FAST MATH done by a processor and things will seem a little easier.

Page 22: Training Guide for VAB for INFINITY

16

What is a block diagram? Complicated arithmetic expressions can be confusing to understand and prove even more difficult to implement. Oftentimes it is easier to convey an idea of the algorithm in question through the use of a block diagram sketch. This sketch helps show how the algorithm works by presenting it from a higher-level point of view.

The algorithm in a block diagram is broken down into groupings of individual “block” components, and the data flow in a block diagram is represented with the use of lines and arrows. The interconnections amongst the block components define the manner in which the algorithm runs. These interconnections can provide for both series and parallel data flow, and can allow for the construction of complex algorithms out of lower-level building block components.

The block diagram is a useful device in which to show the interconnection of unique components of a system design. It demonstrates how the overall system will transform an input signal through various processing steps. By using a block diagram representation a complicated algorithm can be broken down into a form that can be more readily understood.

Page 23: Training Guide for VAB for INFINITY

17

How do I get information related to what the block diagram worksheet is doing? It is very easy to get documentation for a particular block diagram worksheet in VAB for INFINITY. While looking at the block diagram in VAB, simply select the ‘About worksheet’ menu item under the main Help command.

This will bring up documentation that is related to the block diagram worksheet you are currently viewing. From this documentation there may be additional links to other worksheets and information that might prove useful.

Page 24: Training Guide for VAB for INFINITY

18

What is a block? A block is simply a component, or function. One can think of it as a ‘black-box’ that will accept input data, operate on it (perform some type of math), and produce output data. A block may be as simple as an ‘Addition’ function – which might add two inputs together to produce an output. Typically, a block also has parameters (or values) associated with it. For example, a block responsible for generating a noise signal might have a parameter labeled ‘Amplitude’ which may be modified by the user; in this case, the ‘Amplitude’ parameter would likely cause the noise signal to be either louder or softer, depending upon what the user set its value to.

In VAB for INFINITY, each block diagram worksheet is capable of containing a number of blocks, and each block has a visible icon (small image) associated with it. Another way to think of a block is that a block is simply an object on the screen. It has a certain number of data streams coming into it (represented by input arrows on the left side of the block), and a certain number of output streams (represented by output arrows on the right side of the block), and a certain number of user-controlled parameters (which are accessible by either double-clicking or right-clicking on the block). A block is simply a black-box which performs some math operation on the input data to produce its output data.

Page 25: Training Guide for VAB for INFINITY

19

How do I load example worksheets?

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 25

‘Open examples’ Method‘Open examples’ Method

Select ‘Open examples’ using the toolbar button

File Commands

Open examplesAllows user to select from example worksheets

First click on the ‘Open examples’ toolbar button

Page 26: Training Guide for VAB for INFINITY

20

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 26

‘Open examples’ Method‘Open examples’ Method

Simply click on desired tab, then desired Lab

Next, simply select the appropriate Lab exercise, then click on desired worksheet.

Page 27: Training Guide for VAB for INFINITY

21

How do I make my own block diagrams?

Constructing a Simple Worksheet VAB for INFINITY worksheets can be created easily in 5 steps:

1. Select Components

2. Arrange Components

3. Connect Components

4. ‘Run’ the algorithm

5. Modify Component Parameters

You should begin by starting the VAB for INFINITY application - this will automatically open a fresh worksheet.

Select Components The following slides describe the process of selecting desired components for your new block diagram worksheet.

Page 28: Training Guide for VAB for INFINITY

22

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 29

Step 1 - Select ComponentsStep 1 - Select Components

Click on ‘Select blocks’ toolbar button

Component Selection

Select blocksBrings up block function

selector dialog box toallow user to select from

available components

Use the Component Selection button to bring up the Block Function Selector

The Leader in DSPwww.hyperception.com

HSTU0411 - Slide 30

Step 1 - Select ComponentsStep 1 - Select Components

Select then drag desired component to worksheet

Selecting blocks

1. Choose the library ofinterest - typically ‘SimulationLibrary’ for PC-based functionsand ‘Real-time Library’ forDSP-based functions

2. Select desired group fromGroup List or click on ‘SelectAll Groups’ to show allfunctions in currently selectedlibrary

3. Highlight desired componentin Function List and either dragto worksheet, double click, orclick on ‘Add to Worksheet’button

Using the Block Function Selector to select desired block functions, or compnents

Page 29: Training Guide for VAB for INFINITY

23

Arrange the Components Now it’s time to arrange the blocks on the worksheet. You should be in setup1 mode; this is indicated by an up-left-arrow mouse pointer. To enter setup mode simply click the setup button on the toolbar at the top of the screen. Now move the mouse pointer on top of a block function icon and click and hold the left mouse button. The block icon is movable while the left mouse button is held. Arrange the blocks on your screen in a fashion in which the input type of blocks are generally on the left and output blocks are generally on the right.

Connecting Components The Connect command places VAB for INFINITY in connect mode. This will allow for the connection of individual block functions within the worksheet. The mouse cursor will be shown as a cross-hair cursor. NOTE – when trying to connect components, you want to get as close to the block arrows as possible - but not on the arrow itself. Be sure to click somewhere inside the square boundary of the icon.

As the figure below shows, each block icon, or bitmap, is split into the source side (left half) and the destination side (right half). The user may connect from source to destination, or from destination to source, depending on which half of the block is first clicked on. The cursor will change and be labeled either ‘SOURCE’ or ‘DEST’ depending on whether the next connection is for a source block or a destination block. It is possible to connect to multiple destinations by simply clicking on the destination side of each block destined to be a destination. It is important to follow the correct connection scheme. For example, an input signal generator block connected to an output single-channel display block would use the ‘SOURCE’ cursor to select the signal generator block, and the ‘DEST’ cursor to select the single-channel display block.

Channel 1 Region

Channel 2 Region

Note: Block Connections must be made within the Block Icon

Channel 1 Region

Channel 2 Region

BLOCK CHANNEL CONNECTIONS

BlockIcon

Channel 3 Region

Destination Region Source Region

Dest 1

Dest 2

Source 1

Source 2

Source 3

Figure 2.1.2. - Block showing source/destination regions with multiple block input/output channels

1 The keyboard accelerator control for setup mode is Shift+Alt+S. Other keyboard accelerator combinations can be found in chapter 5.

Page 30: Training Guide for VAB for INFINITY

24

When connecting from a source or to a destination block with more than one channel, the distinction among channels is accomplished by proximity (vertically oriented) to the desired channel. For example (see diagram), if there are two channels to select between, the cursor should be located within the block icon boundaries, vertically closest to the desired channel arrow.

Click2 on one of the sine generators. Notice that the label on the mouse pointer has changed from source to dest. The destination block for the sine generator is the add block. Click on the upper left portion of the add block. Notice that a connection has been made and the mouse label has changed back to source.

‘Run’ the algorithm To ‘run’ a new block diagram worksheet, simply click on the green ‘Run’ button on the toolbar.

Modify Component parameters One or more parameters may be associated with each block function. These parameters may be set by the user; block parameters are changed by double clicking or right-clicking on the block of interest. This action will launch the parameter entry dialog box for the particular block. You can Tab through the parameters until you reach one you would like to change, or you can choose a specific parameter with a single click of the mouse.

Save the worksheet To save your new worksheet for future reference, click the file save button on the toolbar. Alternatively, you can use the pull-down menu system or the keyboard accelerator combination Ctrl+S to save your work.

2 You want to get as close to the arrow shaped output port as possible - but not on the arrow itself. Be sure to click somewhere inside the square boundary of the icon.

Page 31: Training Guide for VAB for INFINITY

25

VAB for INFINITY Shortcuts and other helpful features VAB for INFINITY 1.1 has an easy-to-use interface for making and using technology applications. It supports user customizable toolbars for creating user-specific menus appropriate to their applications. In addition, full Cut/Copy/Paste support is included which supports data connection paths as well. Powerful annotation support exists for easy “on-screen” documentation within worksheets. An Undo/Redo function that correctly keeps track of virtually all design changes in the worksheet has been incorporated into the product as well. For better visibility into a project, a sliding project information view has been added for all worksheets. Hierarchy navigation is also available to facilitate interactive subsystem worksheet design. In short, we feel that this is the best user interface for the development of DSP and related technology applications.

Adding custom block function toolbars and palettes The toolbar support for VAB for INFINITY version 1.1 has been dramatically improved. All toolbars are now user-configurable and dockable to any side of the work area, and they may also be used as tool palettes. In addition, unlimited numbers of customized toolbars supporting hot function lists are now allowed, and the user creates them by Visually selecting functions and placing them in/on existing toolbars.

Copying and pasting block functions Full Cut/Copy/Paste support is included in version 1.1 which now supports copying the data connection paths in addition to the block functions.

Undoing and Redoing changes to your worksheet An Undo/Redo function that correctly keeps track of virtually all worksheet changes has been incorporated into the product as well. This powerful Undo/Redo feature has a user-programmable to allow for n-step recovery of designs during worksheet creation.

Annotating your Graphical Design Powerful new annotation support has been added for easy “on-screen” documentation within worksheets.

Page 32: Training Guide for VAB for INFINITY

26

Line Objects Version 1.1 added "line objects" for the basic Graphical data flow connection. This allows all data flow lines to have unique labels, colors, sizes, and fonts to aid in distinguishing the signals that are carried by the lines.

Connecting blocks The Connect command places VAB for INFINITY in connect mode. This will allow for the connection of individual block functions within the worksheet. The mouse cursor will be shown as a cross-hair cursor.

As the figure below shows, each block icon, or bitmap, is split into the source side (left half) and the destination side (right half). The user may connect from source to destination, or from destination to source, depending on which half of the block is first clicked on. The cursor will change and be labeled either ‘SOURCE’ or ‘DEST’ depending on whether the next connection is for a source block or a destination block. It is possible to connect to multiple destinations by simply clicking on the destination side of each block destined to be a destination. It is important to follow the correct connection scheme. For example, an input signal generator block connected to an output single-channel display block would use the ‘SOURCE’ cursor to select the signal generator block, and the ‘DEST’ cursor to select the single-channel display block.

Channel 1 Region

Channel 2 Region

Note: Block Connections must be made within the Block Icon

Channel 1 Region

Channel 2 Region

BLOCK CHANNEL CONNECTIONS

BlockIcon

Channel 3 Region

Destination Region Source Region

Dest 1

Dest 2

Source 1

Source 2

Source 3

Figure 2.1.2. - Block showing source/destination regions with multiple block input/output channels

When connecting from a source or to a destination block with more than one channel, the distinction among channels is accomplished by proximity (vertically oriented) to the desired channel. For example (see diagram), if there are two channels to select between, the cursor should be located within the block icon boundaries, vertically closest to the desired channel arrow.

Customizing the VAB for INFINITY right-click button A very handy feature in VAB for INFINITY is the right mouse button; it may be configured by the user to provide quick access to those functions that the user tends to user over and over. To check this out, simply open a worksheet, enter the setup mode, and press the right mouse button

Page 33: Training Guide for VAB for INFINITY

27

at an empty location in the worksheet. Selecting the add command will allow you will be able to add any of the standard menu commands at this point, and once added, you may access those commands through the right mouse button.

Finding a particular block function quickly and easily The project information view also allows you to find a particular block quickly, by simply locating its name and double-clicking on it. You will be positioned at the location of that specific block thereafter.

Page 34: Training Guide for VAB for INFINITY

28

Who is Hyperception and what do they do? Hyperception has been working in the area of Digital Signal Processing (DSP) and related engineering areas for over a decade, and has created many software design tools for the various aspects of typical DSP applications. The constant exposure to customers engaged in developing a myriad of DSP applications has given us the feedback necessary to create what we believe to be the best overall tool for DSP and related engineering projects, our Graphical Design Software products. The areas that these products address include traditional signal manipulation and data analysis, simulation to support DSP algorithm development, real-time DSP algorithm development, virtual instrumentation, and Computer Aided Software Engineering (CASE), and many others.

Hyperception offers quality products for many types of DSP, mathematical analysis, and systems simulation and modeling projects. These leading edge tools have been designed to provide engineers with component-based graphical design environments that are ideal for accelerating DSP design schedules.

Hyperception products provide engineers with a distinct competitive advantage, and serve as a valuable development tool that can ease DSP learning curves -- whether the application calls for proof-of-concept work, or for rapid-production capability.

Page 35: Training Guide for VAB for INFINITY

29

Advanced VAB Architecture Information This information is for those people who must simply have more detailed information about how VAB works! Warning – this is not easy reading, nor for the casual VAB user!

VAB for INFINITY Architecture Overview The VAB for INFINITY allows for simulation, signal manipulation, data analysis, and algorithm development using a graphical, or Graphical-based method. Its architecture has been designed with several important concepts in mind; speed and efficiency in implementation, software/hardware openness, flexibility, maintainability, and expandability have all been important considerations for this product line. In this environment each function is represented by a block component with its own inputs and outputs. The data flow relationship for the algorithm is created by graphically connecting lines from block output channels to block input channels, such that a particular block’s output data is passed to a subsequent block (or blocks) for further processing. The component driven (or block-oriented) nature of this product is an important concept that drives many of its man-time saving capabilities, and actually forms the basis for a more true-to-name object oriented design/analysis environment.

What is a Block, or Block Function? In general, a block is a Windows-compatible Dynamic Link Library (DLL), responsible for accepting data connected to its input channels and data entered by the user through a dialog box, in conjunction with an equation or algorithm, to produce its output data. Each block has several static attributes and dynamic attributes regarding its function. For example, when a block is created, it is branded with a particular number of inputs and outputs; these would be static attributes for that block. In addition, each block is given a particular block type, such as process, input, display, etc. See the section below, Static Block Parameters, for more detail regarding these parameters. When connecting blocks together to form a Graphical simulation, the line connection for each channel on a block may be thought of simply as a pointer to a buffer of data. Each block is responsible for creating/allocating each of its output data buffers, but utilizes the data in place from other blocks for each of its input data buffers. This implies that blocks act on the input data in a non-destructive fashion, as other blocks in general may use this data as well in a parallel fashion. In addition to the pointer to the chunk of data for each of its output channels, a block must set certain attributes of that data, such as the dimension of the data, the precision of the data (integer or float, for example), whether the data is real or complex valued, how many elements in the data chunk (framesize), etc. These parameters are typically dynamic, and may be varied by the block as it is processing (simulation is running). See the section below, Dynamic

Page 36: Training Guide for VAB for INFINITY

30

Block Parameters, for more detail regarding these parameters. The block also accepts parameters from the user, through a standard windows dialog box, when double clicked, which may be used by the block when processing its input data to fill its output data buffers. The Block Wizard easily creates the basic source files needed, with default processing, to accomplish this without any user intervention; see the section on Creating Blocks, (Block Wizard) for more detailed information regarding this.

Static Block Parameters

Each block has several static parameters that are created when the block is initially compiled; these parameters can only be changed by modifying the original source files and then recompiling the source to produce a new DLL. The number of inputs, the number of outputs, the menu name, group name, and version number are all parameters that must be decided prior to block creation. These parameters may not vary dynamically, during execution of a VAB for INFINITY simulation. In addition, the block type (located in the block.RC file) is a parameter which is not altered during simulation. This block type parameter controls whether a block is an input, output, process (block with both inputs and outputs), or display block. It can also have flags set (bits OR’ed with the block type value) to control whether the block is a DSP-based block or a Data Ready Ignore type of block. DSP-based blocks work in conjunction with the Real-time DSP Driver to accomplish real-time processing on optional DSP/Acquisition plug-in boards, while the Data Ready Ignore blocks will execute even when their input channels do not have valid data (it is important to note that should a user create this type of block, the problem associated with not having valid data [Null pointers, Null handles, etc.] must be dealt with properly for the block to function correctly). All static block parameters must be defined prior to compilation and may not change during algorithm execution.

Dynamic Block Parameters

Most block parameters are of a dynamic nature. For each output channel, a block must set the following parameters. The output pointer (actually the handle to the output buffer), the number of elements (framesize), the sampling rate of the data (Sampling Frequency), whether the data is Real or Complex valued (using even/odd storage for Real/Imaginary in the case of complex data), the dimension of the data set, and the precision (integer and floating point are the two default cases supported, but additional precision support is easy to add to a block) of the output data. In addition, the number of data streams (or data channels, not to be confused with a block’s channels) multiplexed on each output channel is also a dynamic attribute. Finally, a flag called the Data Ready Flag is asserted each time an output channel has been filled with valid data. If a process is not complete, the Data Ready Flag should not be set for that block. At the completion of each frame of data (a complete pass through the execution of all blocks), all Data Ready Flags are cleared for all output channels of all blocks. Thus, it is each block’s responsibility to actively assert this flag when output data is valid again. Most blocks will assert this each frame.

An example of a block which would not assert the Data Ready Flag each time would be a buffer block, which is responsible for perhaps taking in 100 data samples each frame but only putting data out in 500 sample frames (such that it would only place valid data out every fifth frame); this block would internally buffer the incoming 100 point frames until it had 500 points ready to deliver. Only then would it assert the Data Ready Flag, and subsequent blocks would then be

Page 37: Training Guide for VAB for INFINITY

31

allowed to process this data. Four out of five frames the Data Ready Flag would not be asserted, and the subsequent blocks connected to this output channel would not be allowed to run (unless their block type was OR’ed with a Data Ready Ignore flag at the time of their creation).

User-Controlled Parameters

A good Graphical design environment provides interactive control and observeability of the design at execution time which allows “on-the-fly” types of analysis and “whatif” scenarios. With VAB for INFINITY the user can change design parameters quickly with pop-up menus or controls, and immediately observe the results with graphical text and waveform displays. Virtually all blocks have parameters the user can modify to achieve the desired function. To adjust these parameters, the user simply clicks on the block’s icon and a menu appears. The parameters are easily edited and modified. A powerful new feature of version 1.1 is the ability for these parameters to be modified by any other block’s output data using the parameter connect mode. In a textual design environment, it can be painful to change parameter values and obtain results interactively. Since the VAB for INFINITY environment allows designers to change the structure or design parameters quickly, it prevents interruptions of the design thought process. This results in more efficient design activities which can lead to a tremendous time savings.

All of the parameters associated with a block are typically associated with the hParam structure or the hScratchParam structure located in the user.h file created by Block Wizard. These structures are typically used instead of global variables because of the fact that a DLL will share its global variables among instances; each unique instance will not have unique variables if they are globally defined. The hParam structure may be thought of as holding the “baggage” associated with a particular block instance, such as the user modifiable parameters found in the dialog box when the block is double-clicked, or the internal variables which must remain persistent from each block instance’s execution time. All of these values located in this baggage structure are automatically saved in the associated list file (.LST or .LSS) when a worksheet is saved; the binary image of this structure is completely saved. The second structure, hScratchParam, is used to hold variables which should not be saved to the parameter file, and may be thought of as holding temporary values for use during each simulation. For example, the memory handles which identify the persistent storage arrays are located in this structure; this is because of the fact that if these values for the handles (which are non-Null at execution completion) were written to the parameter file, and then re-used at the time of the next loading of that worksheet, they would improperly identify non-allocated memory as already allocated (Windows expects un-allocated memory handles to be Null). Typically, all handles which are specific to each block instance and which must be used throughout the simulation, should be stored in the hScratchParam structure, or application errors will result.

What format is the Block Function in?

The block function is in the form of an executable object file called a Dynamic Link Library, or DLL. It is actually dynamically linked into the Graphical design during run time, so it is exceptionally fast and efficient.

Page 38: Training Guide for VAB for INFINITY

32

How does it process the input data?

Within this DLL is a callable function that is executed during the simulation. This function is given the data pointers to its input data, and the data pointers to its output data, and the user-controlled parameters. The function simply operates on its input channel data to fill its output channel data.

Can I make my own Block Function?

Yes, the open software architecture allows for virtually limitless numbers and types of new block functions to be created and used. The basic requirement to create a PC-based type of block is to have a compiler (typically a C/C++ type of compiler) that can produce Dynamic Link Libraries. In order to produce a new DSP-based type of block, a compiler capable of generating the object code for the specific DSP chip being used would additionally be required.

Hyperception provides a Block Wizard tool that makes creating your own block function exceptionally easy. The simplification of creating new block functions is one area of the product in which a large amount of effort was expended in order to minimize the amount of effort required by a typical user with little or no software/windows programming experience.

The Concept of Data Flow Data flow simply means the path that the data is following as it is being processed. For example, in order for a Fast Fourier Transform (FFT) to operate on the data, the data must be delivered to that particular block function. The graphical lines that connect blocks together typically show the data flow from one block’s output channel to another block’s (or series of blocks’) input channels. For each of the output channels on a block function, there is a flag indicating whether or not the data on that output channel is ready to be processed by subsequent blocks; this flag is called the ‘Data Ready’ flag. Most blocks will only be allowed to run, or process, when all of the Data Ready flags of all of their input channels have been asserted. Certain special block functions (which have been created using a special flag) will actually ignore the data ready condition of their input channels and process anyway; this allows some blocks to have hanging (unconnected) input channels and still function.

Frame-based Processing Frame-based processing is used to simplify many types of DSP applications. This data block-oriented method of processing typically allows for interrupt based routines to fill input buffers of data (as in a ping-pong, or circular buffer type of scheme), and non-interrupt processing to process the completed input frames of data as they are filled. If the frame-based processing gets done before the interrupt-based processing fills the next buffer, or frame, of incoming data, then the process is said to be running in real time. The latency, or delay, involved is related to the number of samples in the buffer, or framesize.

What is a Frame?

Simply put, a frame of data is the same as a buffer, or array, of data. The incoming data stream is arbitrarily broken into fixed time intervals (in the case of a time-domain based application)

Page 39: Training Guide for VAB for INFINITY

33

consisting of a specified number of samples, or data points. Increasing the framesize will typically inject more processing delay in the system, but may allow for a more efficient implementation, depending upon the application.

Why use Frame-based Processing

Frame-based processing typically allows for a more efficient processing of a block of data. As long as a processing delay is not a critical factor to the design, frame-based processing is typically the rule for many DSP applications. In particular, speech and telecom applications commonly use a frame-based approach to their design.

Do I have to use Frame-based Processing?

No, by setting the framesize to 1, the processing will be accomplished a single point at a time. This is quite typical for more control-oriented processing, where the amount of processing delay is constrained to be very small. In addition, most recursive, or feedback, operations are done a single point at a time, unless special block functions are created to handle the feedback paths with framesizes greater than 1. In the case of using a single point for the frame of data, it is often convenient to use the buffer block for the gathering up of a larger frame of data for Graphicalizing in a graphical display, or for feeding to other block functions for frame based processing.

Using Recursion in Graphical Designs Recursive, or feedback, structures are allowed with VAB for INFINITY. These structures a determined at compilation time by analyzing the data flow relationship and attempting to determine the order in which each blocks input data will become available. When a recursive structure is encountered, in general it is impossible to determine the exact execution sequence because of the “chicken and egg” nature of a recursive problem. When VAB for INFINITY encounters these situations, it makes a determination of the execution order based on the input/output relationship of the blocks within the recursive structure. VAB for INFINITY assumes causality and forces the first block in the recursive structure to execute to assume a zero valued set of input data on its input channels.

Many types of DSP systems quite typically require recursive structures, or feedback paths. This is especially common in control applications where the output is actually determined from the previous inputs and outputs. Many adaptive processes also require feedback structures for proper error update. In fact, even a basic IIR filter is an example of a recursive structure. Much work has been put into our product to address this area of algorithm support; each and every block function is capable of supporting up to 32 independent feedback paths correctly. The interface for this is exceptionally easy; the user simply connects as usual, and the program automatically identifies areas of recursion within the Graphical design.

Page 40: Training Guide for VAB for INFINITY

34

Using Global Parameters in Graphical Designs Allowing the user to globally set or change parameters is often important in many types of simulations. VAB for INFINITY allows the user to select easy-to-understand meaningful character names for any parameters that are involved in a given simulation. By referring to these descriptive names, the user may modify the values of all occurrences of these global parameters from a single place on the main menu.

Using Dynamic Parameters in Graphical Designs Similar to the concept of global parameters, the ability to control the parameters of a block (the frequency of a sine wave generator, for example) by another block as the worksheet is running allows for many types of algorithms to be modeled. VAB for INFINITY supports this by a dynamic parameter connect mode which allows the user to simply connect the controlling block’s channel to the target block for “on-the-fly” dynamic parameter modification. This could be used to program a continuous swept sine wave, or run-time calculated waveform generation/processing.

Using Conditional Logic in Graphical Designs In order for Graphical design to be used in areas where traditional textual-based software has been used, it is important that the Graphical “language” contain conditional constructs for program control, looping, and other decision-based logic. VAB for INFINITY achieves this through conditional connections; any output of any block can be connected conditionally to any other block, which allows that block (or group of blocks) to execute only in the case of a true (or non-zero) condition (much like C, Pascal, and other textual-based languages). Many types of applications use this conditional control construct for taking action on certain conditions.

Conditional logic is supported by the Conditional Logic Connection menu command or button on the main toolbar. Using this mode of connecting blocks allows the connected block (destination) to be conditionally run if the output (first data element) of the source block is non-zero, very much like conditional tests using standard C. If the source block’s channel contains a value equal to zero (for the first data element), the conditionally connected destination block will not be allowed to run. Of course, since the outputs of any blocks vary dynamically, this allows for dynamic conditional control of block functions. Typically, the user should keep in mind that the source block may need to be in integer precision mode, since floating point values may get very small without ever reaching zero, depending upon the operation being performed by the source block. When a block is conditionally connected to another block, the line is drawn from the source channel to the top of the destination block’s icon using the line color for conditional connection lines.

Persistent Data Array Storage Each block may optionally utilize a persistent storage array (or arrays). It is less meaningful to describe these arrays as either global or local memory, since these structures refer to locally

Page 41: Training Guide for VAB for INFINITY

35

available, or private, memory buffers unique to each block’s instance, but which are of course located in global memory space in the Windows development sense. Within the Block Wizard the user may specify that these storage arrays are allocated. These are useful for internally (internal to the block instance) stored data buffers, such as those that may be encountered with the head/tail processing commonly found in algorithms such as filtering and functions with built-in delays, or internal buffering.

Using Hierarchy in Graphical Designs Hierarchical design is allowed with the standard version of VAB for INFINITY. This allows for a worksheet containing many blocks to be used itself as a block within another higher-level worksheet, and that higher level worksheet in turn may be used within an even higher-level worksheet, and so on. This effectively allows for n-level hierarchical design. Within a worksheet that is to be utilized as an inserted hierarchy block within a higher-level worksheet, the worksheet must typically add either external inputs or external outputs via the external I/O bars that are available from the main menu. Attaching data flow lines to/from these external I/O bars will allow the access of data to/from this worksheet after the worksheet is later inserted into a higher-level worksheet. When executing these top-level worksheet with hierarchy blocks, when the inserted hierarchy block is executed, execution control is passed to the inserted hierarchy block, where the execution of all blocks within that inserted hierarchy block’s associated worksheet are executed prior to the release of execution control back to the higher-level worksheet for all of its other blocks execution. Double clicking on an inserted hierarchy block will bring the associated worksheet for that block to the foreground, allowing users to visualize its internal structure.

Page 42: Training Guide for VAB for INFINITY

36

Using a Sound Card for Limited Real-time Capability Limited pseudo real-time capability exists in VAB for INFINITY, as evidenced by the following example. A numerically generated signal (swept sine wave plus sine) is sent to the wave player block function, which sends this signal immediately out to the sound card for your listening pleasure! For this type of capability, it is important to choose frame sizes large enough to accommodate the processing requirements of your PC.

VAB for INFINITY Real-time Architecture Overview The architecture of VAB for INFINITY may be thought of as three separate parts - the block diagram editor which is accomplishing the user interface, the actual real-time code running on the DSP board, and the Hyperception Software Product real-time DSP driver which communicates between the other two. By bringing DSP-based block functions up on the screen, the driver is told what DSP code to load, and where to load it. After all DSP-based blocks are loaded and the user has completed the data flow connections, the driver resolves all references and data structures such that the Graphical DSP program is ready to run on the DSP-based board.

How is a DSP-based Block Function different from a PC-based Block Function? VAB for INFINITY works together with a DSP board to accomplish the real-time processing necessary in most DSP applications. In order for that to happen, each DSP-based block function has two parts - the part running on the PC to accomplish the Graphical user interface, and the part doing the actual work, the code running on the DSP. As in PC-based block functions, the PC-based part is a Windows DLL. The DSP-based part is an object (COFF) file for the DSP that contains the machine code which will actually run. Therefore, if a user wishes to create his/her own DSP-based block, they would require a compiler for the PC part (such as Microsoft Graphical C/C++), and a compiler for the DSP chip.

Using DSP-based Blocks A helpful feature of the VAB for INFINITY Graphical design environment is that the user interface is the same for both DSP-based and PC-based blocks. Just like PC-based blocks, you can place DSP-based block functions onto a worksheet with the Block Function Selector tool, arrange them on a worksheet, connect them to establish a data flow and select block parameters.

DSP-based block parameters can be changed, even while the DSP is running, by double-clicking on the block’s icon with the left mouse button to display the block’s dialog box. DSP-based blocks have additional parameters to select DSP resource, synchronization, interrupt, and profile configurations. A DSP-based block can be configured to execute on any DSP resource in a

Page 43: Training Guide for VAB for INFINITY

37

system by selecting a DSP driver name, board number and DSP number. A DSP-based block can use synchronization information and be hooked to any DSP interrupt to support multi-rate processing. DSP-based blocks can also be profiled to allow users to determine the block’s processing time.

Each DSP-based block’s dialog box also includes an Info button which provides resource allocation and profiling information. When this button is selected, a Block Information dialog box appears. The block’s associated DSP code, data and buffer locations and sizes, as well as its profiling information, are displayed in this dialog box.

Further DSP information, such as application code profiling results and memory availability can be obtained by choosing the DSP Info button from the Block Information dialog box. The Driver Info button displays information about the driver associated with the DSP-based block.

The main difference between a PC-based and a DSP-based block is that a DSP-based block has an associated DSP object module that performs the block’s function on a DSP, whereas the PC-based block performs the function on the PC. The DSP-based block’s PC-side communicates with a DSP board driver and other blocks to transmit execution order and data flow information. A DSP-based block’s PC and DSP code run in parallel with the PC side handling the user interface and the DSP side performing the block’s function. It is important to note that the complete DSP application is linked and downloaded by the real-time DSP driver, so DSP-based blocks run at full speed on the DSP without requiring any intervention from the PC side during execution. Even though the data is resident and processed on the DSP board, it can be transferred with the host PC, if required, using upload and download transfer blocks. Examples include the display of signals on the monitor or streaming data directly to disk. The DSP and the PC run asynchronously by default, unless synchronous transfers are selected. In the asynchronous mode, data uploaded for display are asynchronous snapshots so they may appear discontinuous even though they are continuous on the DSP board. This is the fastest interface, but for some applications, the PC and DSP should be synchronized for gap-free data transfers. The asynchronous / synchronous selection is made from the upload and download blocks’ dialog boxes.

Page 44: Training Guide for VAB for INFINITY

38

Vocabulary Sometimes there is confusion related to specific terms in engineering; what means something to one engineering discipline means something quite different to another. While we will not concern ourselves with formal detailed definitions, the following terms may be used throughout this training guide and are discussed here to assist in overall understanding of the training material.

DSP Digital Signal Processing – a very broad based term used to describe algorithms that make use of discrete signals as opposed to continuous or analog signals. Quite often this term will be used to describe industry standard fast processors (Digital Signal Processors) which are good at multiply accumulate operations and used in many different Digital Signal Processing applications.

DSP-based Block functions that are capable of being executed directly on a Digital Signal Processor (i.e., direct graphical to DSP OBJECT code)

Embedded DSP An engineering application requiring a Digital Signal Processor on a self-standing hardware platform (not inside a PC).

Graphical Design Graphical Design, as used here, simply means that the design is created using a graphical approach rather than a textual approach (i.e., drawing a block diagram as opposed to writing C source code).

PC-based Block functions which execute on the PC; the PC’s CPU (P2, etc.) performs the actual work for a function.

Real-time When an algorithm or process is capable of handling the data (processing) at the aggregate rate that the data is coming in, we will refer to that as ‘Real-time’. Many times, the term Real-time will be the same as DSP-based, but due to the efficiency of the Hyperception Software Product Software and the performance of PC’s today, it is

Page 45: Training Guide for VAB for INFINITY

39

possible to achieve Real-time on many current PC’s, using acquisition-only (no DSP) boards, including standard PC-sound cards.

Simulation A graphically designed algorithm that allows for ‘what-if’ scenarios, and quick parameter changes; generally performed to allow fast analysis of a system or to provide a model to reduce technical risk prior to final implementation.