Sei sulla pagina 1di 83

Visual Application Builder

VAB
For the TI DSK

Starters Guide

Copyright, 1991-2000 All rights reserved worldwide

9$% 67$57(56 *8,'(

7 January 2000

Hyperception, Inc. 9550 Skillman, LB 125 Dallas, TX 75243

9$% 67$57(56 *8,'(

6RIWZDUH/LFHQVH$JUHHPHQW
Hyperception, Incorporated and its subsidiaries, and any applicable licensers grant to you a non-exclusive, nontransferable license to use the software program and related documentation in this package (collectively referred to as the "Program") on a single-user computer. Any attempted sub-license, assignment or other transfer of the Program or the rights or obligations of this Agreement without the prior written consent of Hyperception shall be void. Failure to comply with these terms will result in termination of this license. Use of the Program on a multiple-user system requires payment of additional fees. A single-user system is defined as having input/output ports for no more than one log-in terminal (including the system console, if any); A single user system can have only a single operator using the system at any one time. Source Code Files may be modified and/or merged into another program for your use on a single machine. Any part of the Source Code merged into another program will continue to be subject to the terms and conditions of this Agreement. The program and documentation are copyrighted. You may make two (2) copies of the program for backup and archival purposes. Unauthorized copying, or reverse compiling and disassembling of the programs in object format are prohibited. Title to the program is not transferred to you by this license.

3URJUDP/LPLWDWLRQV
Hyperception does not warrant that the Program will be free from error or will meet your specific requirements. You assume complete responsibility for decisions made or actions taken based on information obtained using the Program. Any statements made concerning the utility of the Program are not to be construed as expressed or implied warranties. Hyperception makes no warranty or condition, either express or implied, including but not limited to, any implied warranties of merchantability and fitness for a particular purpose, regarding the program and makes the program available solely on an "as is" basis. Due to the ongoing development nature of the software, all specifications are subject to change at any time without notice.

/LPLWHG:DUUDQW\RQ0HGLDDQG'DPDJHV'LVFODLPHU
The media (not the Program) is warranted to the original purchaser against defects in material and workmanship for a period of ninety (90) days from the date of original purchase. Defective media under warranty will be replaced when it is returned postage-paid with a copy of the purchase receipt to Hyperception located in Dallas, Texas. The replacement media is warranted for ninety (90) days from date of replacement. Other than the postage requirement (when allowed by law), no charge will be made for the replacement. This paragraph expresses Hyperception's sole liability and your exclusive remedy. Neither Hyperception nor any applicable licenser shall be responsible for incidental or consequential damages. This warranty gives you specific legal rights and you may also have other rights which vary from state to state. Some states do not allow the exclusion or limitations of incidental or consequential damages or limitations on how long an implied warranty lasts so the above limitations or exclusion may not apply to you.

([SRUW&RQWURO
The re-export of United States origin software is subject to United States laws under the Export-Administration Act of 1969 as amended. Any further sale of the program shall be in accordance with United States Department of Commerce Administration regulation. Compliance with such regulation is your responsibility and not the responsibility of Hyperception.

9$% 67$57(56 *8,'(

&RS\ULJKWDQG7UDGHPDUN1RWLFHV
Copyright1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 by Hyperception. All rights reserved worldwide. Reproduction or use, without permission, of editorial or illustrative content, in any manner, is prohibited. No patent liability is assumed with respect to the use of the information contained herein. While the utmost care and every precaution has been taken in the preparation of this book, Hyperception assumes no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the information contained herein. Hyperception is a trademark and VAB is a trademark of Hyperception, Inc. Intel is a trademark of Intel Corporation. Microsoft and MS-DOS are registered trademarks and Windows and Windows NT are registered trademarks of Microsoft, Inc.

Texas Instruments is a registered trademark of Texas Instruments, Inc.

9$% 67$57(56 *8,'(

*HWWLQJ6WDUWHGZLWK9$%
The starting point for your DSP development

&KDSWHU

Congratulations! With your copy of Visual Application Builder (VAB) software, you will soon be introduced to a powerful visual DSP design environment. This software is intended to allow you to easily create your own DSP algorithms for use on Texas Instruments DSK hardware.
VAB allows you to easily create your own designs for real-time use on the TI DSK hardware without ever having to write any C or assembly source code!

Visual DSP design is a methodology of developing DSP algorithms and systems graphically by simply connecting functional block components together with point-andclick methods. As you will see from the use of VAB, algorithms can be built-up extremely quickly and efficiently. For those of you who are using a the DSK DSP board, you will be able to create real-time DSP implementations and experience an incredibly efficient means of graphical programming without having to write any source code at all! Imagine actually programming a DSP without having to use C or assembly language. This is the power that VAB gives to you. This user manual will provide the basic information needed to run VAB. This chapter provides software installation instructions, steps to take first, and an overview of the VAB tools that are available. Further chapters will provide tutorial and reference information, including block component descriptions.

,QVWDOODWLRQ
Installation of the VAB software requires a CD-ROM drive and a hard drive partition with approximately fifty megabytes of available space. Follow these directions to install the VAB software onto your hard disk. To install VAB 1. Make sure that your computer and monitor are turned on and that you have installed Microsoft Windows (95/98/NT). Insert the Hyperception VAB installation CD-ROM into your CD-ROM drive. The VAB installation will be invoked automatically unless the CD-ROM Autorun option has been disabled.

2.

After installation is complete, you can select the VAB icon from the Start Programs Hyperception folder, or select the VAB button from the HyperLAB toolbar.

If the Autorun feature has been disabled you can begin manual installation by following steps 3 & 4 below: 3. Move the mouse pointer to the Run... on the Start menu and click once to choose the Run command. The Run dialog box will appear on your screen. Use the Browse option to select the VAB Setup.exe program from the VAB CDROM Disk1 folder. As the VAB is installed, follow the instructions on your screen. The installation program will automatically detect whether or not you have enough space available on your hard drive.

4.

5.

*(77,1* 67$57(' :,7+ 9$%

5XQQLQJ9$%IRUWKH)LUVW7LPH
After you have completed the VAB installation you can select the VAB icon from either the newly installed HyperLAB Taskbar located at the top of your computer screen or directly from the Start Menu Hyperception folder. HyperLAB is a taskbar that appears on your Windows desktop after installation of the VAB software. It contains shortcut buttons to various tools/programs included with the VAB application. This taskbar will appear each time Windows is started. When you run the VAB software for the first time the program will attempt to detect the DSK hardware. If the VAB cannot locate the DSK at the default location of LPT1, or if the DSK is not connected, or a problem is encountered, then VAB will issue a warning message. Next, VAB will perform a one-time build of its block components (this will occur regardless of whether or not VAB has located the DSK). VAB initially will expect the DSK to be connected to LPT1. If you do receive a warning message and the VAB software cannot locate the DSK, then you should take steps to verify VABs LPT selection options (see next section). For example, if your DSK is connected to LPT2 then the VAB will initially not be able to communicate with it. You will need to take a moment to setup VAB and DSK communication settings. Information on doing this is described in the next section.

9HULI\LQJ'6.2SHUDWLRQ
Remember that VAB has been designed to run on the DSK hardware. This means that you will need to have the DSK setup and connected to your computers parallel port in order for VAB to communicate to the DSP hardware. Please refer to the DSK documentation for information on properly connecting the DSK hardware to your computer.
Verify VABs LPT setting if the C31 DSK hardware does not respond.

VAB will not operate correctly if it cannot communicate to the DSK hardware. To verify that VAB can communicate to the DSK hardware you should select the VAB DSP Target Driver Setup... menu command. Selection of this command will result in the appearance of a dialog box that will allow you to select the proper LPT setting for your DSK.

VAB Driver Setup dialog box You can determine whether or not the DSK is responding at the chosen LPT setting by using the Test button. This feature will attempt to find the DSK hardware at the LPT

9$% 67$57(56 *8,'(


address youve selected. If the board is found, the test operation will continue by writing/reading DSK memory. If the test is successful, then the DSK is correctly responding to the VAB software, and you will see a message box similar to the one shown below:

Driver Test Pass Message Box

:KDWWR'R)LUVW
After you have installed VAB onto your computer and verified that the DSK is responding, you are ready to get started. There are several ways in which you can begin using VAB. You can jump right in and start by running some of the sample worksheets that have been provided with the software. You might even feel more comfortable by working your way through the tutorial section in Chapter 5 to become acquainted with VABs features. If you are using VAB with the DSK DSP board you will probably want to check out Chapter 2 (VAB Design Environment) and Chapter 4 (Block Components) for information about creating your own real-time algorithms on the DSK hardware. These chapters provide some useful instructions and explanations for using the real-time block components with the DSK hardware. No matter which method of beginning suits your style, you will still want to read through the remaining chapters of the user manual for additional information and tips. It is advised that you read these chapters to facilitate your use of the VAB software.

Start by trying the example worksheets provided, or create your own by following the tutorial section.

6\VWHP5HTXLUHPHQWV
The VAB software program has been developed to run under Microsoft Windows 95, 98, and NT. The exact amount of extended memory required to run the application depends upon the particular application being run, the number of other applications being run, and the complexity of the work being done. In general, the following requirements must be met to correctly use VAB software with Microsoft Windows.

A personal computer with Intel 80386 processor (or higher) with 4 MB or more of memory Microsoft Windows 95, Windows 98, or Windows NT A hard disk drive with ~5 MB of free space A CD-ROM Drive

*(77,1* 67$57(' :,7+ 9$%

A pointing device supported by Windows

7HFKQLFDO6XSSRUW
The VAB software package has been designed to provide you with a powerful method of implementing real-time design algorithms on the Texas Instruments DSK hardware. The VABs easy-to-learn working environment allows an efficient means of implementing these algorithms. However, this visual design environment is a comprehensive tool with many user options available. If you have any questions concerning the use of VAB, please refer to the on-line Help and this Users Manual. We are committed to providing you with the best development platform available, and to making your experience with Hyperception software a positive one. Hyperception maintains a web site, www.hyperception.com/vab, which allows our customers to obtain and exchange new block function libraries, and to receive the latest information regarding VAB. The web site is the primary source of support other than the on-line Help and this Users Manual. Comments may also be sent to vab.support@hyperception.com.

9$% 67$57(56 *8,'(

9$%'HVLJQ(QYLURQPHQW
Becoming familiar with the VAB visual design environment is the first step towards getting the most out of its powerful capabilities.

&KDSWHU

This chapter will discuss the user interface of the VAB visual design environment. This material is presented because a thorough understanding of how the VAB environment works is essential if you are to fully gain the benefits of this powerful development tool. Follow-on chapters will briefly discuss the VAB main menu and toolbar commands that are used to control the application. Some of the key components discussed in this section are the VAB Work Area, the Toolbar, the Status Line, the Block Worksheet, and the Hierarchy Block Worksheet.

:RUN$UHD
The VAB Work Area is a workspace that holds many different block worksheets.
The VAB Work Area is used to organize individual block worksheets. The work area is located between the menu toolbar located at the top of the application and the status bar located at the bottom of the application. It is important to remember that the work area is used as a means of organizing worksheets, and is not an area to connect block component icons. (Connecting block components is performed in the worksheet.)

When you first run VAB, the program will automatically create an empty worksheet and place it into the work area for you.

9$%7RROEDU
The VAB menu commands are located beneath the VAB window caption bar and are arranged as selectable pull-down menus, each of which has a list of submenu commands. In addition to these menu commands, a toolbar with selectable button commands is available. The toolbar commands will perform exactly as their menu command counterparts, but provide an alternative method of VAB command selection. The toolbar is initially located directly beneath the VAB menu commands, but can be repositioned anywhere in the VAB Work Area by simply dragging the toolbar into a new position. The toolbar can easily be docked by dragging it to the edge of any VAB window boundary.

The VAB Toolbar can be positioned anywhere in the Work Area by simply dragging it into position.

VAB Toolbar

&XVWRPL]LQJ \RXU 0HQX


You may find it useful to customize the VAB menu to provide an easier access to VAB menu commands. By using a right-click of your mouse anywhere in the VAB work area you can cause the VAB Customize option to appear. Selecting this option will bring up a dialog box in which you can choose those menu commands that you use most often. This will allow you to

0(18 &200$1'6
select VAB menu commands through use of a convenient right-click of the mouse as opposed to using either the VAB menu or toolbar.

Customize right-mouse button command (entering user-selectable menus)

Customize right-mouse button command (after user-selectable menus have been entered)

6WDWXV/LQH
The VAB Status Line is located at the bottom of the applications main window and is used to provide status information to you. The status line is organized into three areas each of which provides environment status messages. The first section of the status line is used to show the current operational state of the application. When a block worksheet is run, a status message for each block component will be displayed when the block is processed. This status will indicate whether the block component is running, or if the block component has a warning message associated with it. When a block component is chosen from the Block Function Selector, a status message will indicate whether the block function was loaded successfully. In addition, clicking on a block icon in a worksheet will display a brief description of that particular block function. This section of the status display will be used for most general information and messages. The second section of the Status Line is used to keep track of the number of PC-side frames that have been processed by VAB.



9$% 67$57(56 *8,'(


The third section of the Status Line will similarly show the run duration of a block worksheet in seconds. Note that the speed at which a worksheet executes (on the PCside) can be greatly speeded up by turning the status information to off via the Show Status menu command.

%ORFN:RUNVKHHW
The VAB visual design environment allows you to create individual Block Worksheets. A Block Worksheet is a window that serves as a workspace for your simulations, and may be thought of as being like a piece of paper in which an algorithm may be drawn. Each worksheet can contain many block components arranged in a structured algorithm. Also, each worksheet is capable of incorporating other block worksheets to provide a hierarchical1 design approach. Block worksheet windows can be sized by dragging the corners of the worksheet, minimized by selecting the minimize box in the worksheets upper-right corner, restored by double-clicking the minimized block worksheet icon, and closed by selecting the worksheets system menu close command. Each block worksheet contains a caption bar, which will distinguish it from other worksheets in the work area. When the VAB application is first run, an empty worksheet is automatically created in the work area. The worksheet will contain the name Worksheet 1 in its caption bar. The figure above shows an empty block worksheet.

A block worksheet is used to hold the block components that make up the algorithm.

3RVLWLRQLQJ $QG 6L]LQJ $ %ORFN :RUNVKHHW


You can drag the worksheet into position in the work area by selecting the worksheets caption bar. You can re-size the worksheet by selecting the corner of the worksheet and dragging it to a new size. The scroll bars of the worksheet will allow you to view sections that lie outside the current viewing area.

1DPLQJ $ %ORFN :RUNVKHHW


The worksheet can be saved to a filename by use of the File Menu Save command. See section File Menu Commands - Save, in this user manual for more information on saving a block worksheet to a file.

&ORVLQJ $ %ORFN :RUNVKHHW


The block worksheet can be removed by choosing the worksheets system menu close command or by double-clicking the upper-left corner of the worksheet. It is not possible to close a worksheet while it is running.

7KH$FWLYH:RUNVKHHW
The VAB visual design environment supports the use of multiple worksheets. However, only one worksheet can be active at a given time. When you select the Run command only the active worksheet will be processed. It is important to keep track of which worksheet is active. The active worksheet caption bar will be painted the same color as the work area caption bar. To select a worksheet as the active worksheet you can simply select the desired worksheets caption bar with a single-click of the left mouse button.

Please see section on Hierarchy Block Worksheets, later in this chapter.



0(18 &200$1'6
When a worksheet is active, all block components, including hierarchy block, (see below) can run. If however, you select a hierarchy block as the active worksheet and then try to run the application, only the hierarchy block will run. You may find it helpful to always be aware of which worksheet is active by checking the VAB caption bar.

+LHUDUFK\%ORFNV
Any VAB block worksheet that has been inserted into another block worksheet is referred to as a hierarchy block worksheet or hierarchy block. The hierarchy block must have been created (typically with external inputs/outputs) and saved as a worksheet with file extension .LSS. At the time the worksheet is saved it is added to the VAB block component menu under a user-selected library, group, and function menu name. This block may then be used in worksheets in the same fashion as non-hierarchical block components. Hierarchy block worksheets must be designed with external connections if data is to be passed to/from other block components. Conditional execution of hierarchy block components allows the hierarchy block to execute based on a user-specified expression. Hierarchy blocks can evaluate if, while, and for statements to determine if and how many times to run before returning control. To access this feature, create a hierarchy block as normal, and insert it into a worksheet, then right click on the hierarchy block and select the Set Condition menu option. A dialog box will then be displayed and allow a condition to be entered. The condition can be composed of any combination of project variables and the conditional and mathematical operators. The syntax for the execution condition is the standard C syntax for if and while statements. The for statement is very similar to C syntax. The for statement is broken into three parts, the initialize statement, the loop condition statement, and the increment statement. The initialize statement is optional, but if present, it should be of the form <var>=<equation> where equation may be a single value or an expression. The loop condition is required, and can be any valid boolean expression supported. The increment statement is optional, but if present should be of the form <var>++, <var>--, <var>+=<equation>, <var>-=<equation>, or <var>=<equation> where <var> is a defined project variable and equation is a combination of project variables and/or constant values. With this feature it is possible to cause a hierarchy block to never run or to never stop running. In either case the Stop command will terminate the worksheet even if the hierarchy block has been set to run in an infinite loop. In addition to the functions and operators listed in Appendix A, the following relational operators have been added greater than (>), greater than or equal (>=), less than (<), less than or equal (<=), equal (==), and not equal (!=). Examples: for(index=0; index<10; index++) - This statement causes the hierarchy block to execute 10 times each cycle. As the hierarchy block runs, the value of variable index ranges from 0 to 9. if(index<5) This statement causes the hierarchy block to run if and only if the value of variable index is less than 5. while(index != 3) This statement causes the hierarchy worksheet to execute while the variable index does not equal 3. Please note, if the hierarchy worksheet does not modify

Hierarchy blocks can be setup to evaluate if, while, and for statements to determine the number of times to run before returning control. NOTE: This conditional execution feature is not available in VAB. Please contact Hyperception for information on products that do provide this capability.



9$% 67$57(56 *8,'(


the variable index, then this is an infinite loop that will never return control, however, the stop button will still halt the worksheet. if(0) This statement causes the hierarchy worksheet to never run.



0(18 &200$1'6



9$% 67$57(56 *8,'(

0HQX&RPPDQGV
VAB Menu Commands

&KDSWHU

Not all menu commands listed here are active in VAB. Some menu items will appear as grayedout. These menu commands are available in other Hyperception software products. Please feel free to contact Hyperception for additional information on these products.

The VAB menu commands are located beneath the main window caption bar and are arranged as selectable pull-down menus. Each of these menus contains a list of submenu commands. This starters guide will list some of the common commands and include File, Edit, View, Control, Blocks, DSP Target, Tools, Options, Project, Window, and Help. Selection of the menu names or use of the keyboard accelerator controls (pressing the Alt key and the letter shown underlined) will also allow you to access the commands. In addition to the menu commands, a toolbar with selectable button commands is available. The toolbar is initially located directly underneath the VAB menu, but you can move it to any location by simply dragging it to a new position with the mouse. The toolbar commands perform exactly as their menu command counterparts, but provide an easier method of selection. To select a command from the toolbar place the mouse cursor over the desired command button and choose it with a single-click of the left button of the mouse. You will notice that a description of the command will be displayed on the VAB Status line whenever the mouse cursor is placed over a toolbar button.
Note: Not all menu commands are active in VAB. Some menu items will appear grayed-out and will not be user-selectable. Hyperception does offer other software products that do provide access to these commands. If you would like to receive information on these products please contact Hyperception.

)LOH0HQX&RPPDQGV
The file menu is shown either by clicking on the VAB File menu name or by pressing Alt+F.

1HZ
New (Ctrl+N, Toolbar button): The New command will create a new (empty) worksheet. The new block worksheet will become the active worksheet and will be displayed as the top-most worksheet window. No filename is associated with the new worksheet until it is saved. Its caption bar will be shown as: Worksheet x where x is the assigned number of the block worksheet.

2SHQ
Open (Ctrl+O, Toolbar button): The Open command will load an existing worksheet file into the work area. After selecting the Open command a dialog box labeled Open will appear. After selecting a file and clicking the OK button the application will load the chosen worksheet file. Its caption bar will be shown as: filename.ext where filename.ext is the selected worksheet filename.



0(18 &200$1'6

&ORVH
Close: The Close command will close the current worksheet. If you have made any changes to the worksheet you will be prompted to save the worksheet; otherwise, the worksheet will be closed immediately.

6DYH
Save (Ctrl+S, Toolbar button): The Save command will save the active block worksheet to a file. Upon selection of this command a dialog box labeled Save will appear. You will be able to specify a path and filename for the worksheet (.LST or .LSS) file. If the worksheet you are saving is a Hierarchy worksheet (has external inputs or outputs) then VAB will prompt you to enter a library, group, and menu name of the hierarchy worksheet.

6DYH $V
Save As: The Save As command allows you to specify a path and a new filename for an existing worksheet. Upon selection of this command, a dialog box labeled Save As will appear. After selecting the name of the worksheet and clicking the OK button, VAB will save the new worksheet.

3ULQW
Print (Ctrl+P, Toolbar button): The Print command will print the active worksheet. When choosing this command, a basic menu is presented where you may customize the following fields: Print Quality ( High / Medium / Low / Draft ): Specifies the printing quality to be used. Copies: Specifies the number of copies of the worksheet to be printed. The Print Range and Collate Copies commands cannot be changed since the Print command only prints one worksheet at a time.

3ULQW 3UHYLHZ
Print Preview: Switches to a preview screen where the worksheet is displayed as it will appear as hardcopy.

3ULQW 6HWXS
Print Setup: The Print Setup command allows you to select the printer to where the active worksheet will be printed. Parameters that can be changed include the orientation, size and source of the paper.

6HQG
Send: The Send command is available if a compatible electronic mail system is in place. With this command, you can send the current worksheet to another user electronically.



9$% 67$57(56 *8,'(

5HFHQW )LOHV
[Recent Files]: This part of the File Menu lists the four most recent worksheets that have been active. The Recent Files list will initially appear empty until you have loaded some worksheets.

([LW
Exit: Exits the application and returns to the Windows desktop or the most current application.

(GLW0HQX&RPPDQGV
The edit menu commands are used to cut, copy and paste block(s) and data line connections between the active worksheet and other opened worksheets. You can quickly duplicate a single block or several blocks by using the edit commands Copy and Paste. An Undo command is also provided to reverse the last edit menu commands action. To select an object or group of objects, you simply draw a box around the objects of interest. Drawing the selection box is accomplished by positioning the mouse cursor and then holding the left mouse button down while dragging to a desired location. Upon releasing the left mouse button, all objects completely within the selection box will be highlighted. The highlighted objects can then be moved into a new position, copied, or cut. Individual objects can be selected by left-clicking on the object. Both drawing boxes and selecting individual objects are done in Setup Mode.

8QGR
Undo (Ctrl+Z): The Undo command reverses, or undoes, the last commands action.

5HGR
Redo (Ctrl+Y): The Redo command reverses, or undoes, the last Undo commands action.

&XW
Cut (Ctrl+X): The Cut command removes the selected object(s) and places them in the edit/paste buffer.

&RS\
Copy (Ctrl+C): The Copy command places a copy of the selected object(s) and places them in the edit/paste buffer.

3DVWH
Paste (Ctrl+V): The Paste command places the object(s) saved in the edit/paste buffer with the Cut or Copy commands on the active worksheet.

9LHZ0HQX&RPPDQGV
The view menu commands are used to customize the user interface to show and remove the status bar and tool bars. The status bar is located at the bottom of the screen, and the toolbars are initially located at the top.



0(18 &200$1'6

7RROEDU
Selecting this menu command will cause the toolbar to be hidden or displayed.

6WDWXVEDU
Selecting this menu command will cause the status bar to be hidden or displayed.

'LPHQVLRQDO ,FRQ
3-Dimensional Icon (Ctrl+3, Toolbar button): The 3-Dimensional Icon command toggles icon display between two and three dimensional icons. Repeated selection of this command will alternate between the two icon styles. This command option does not affect the performance of any block, but allows for customizing the application. In addition to its keyboard accelerator control, the 3-D icon command can be accessed through the pull down menu or through its toolbar button.

&KDQQHO $UURZV
Channel Arrows: The Channel Arrows command toggles channel arrow display between triangular shaped arrows and rectangular connection pads.

&KDQQHO /DEHOV
Channel Labels: The Channel Labels commands toggles the display of tool-tip controls that appear over the block when the application is in one of the connect modes. The channel labels are defined in each individual blocks resource file and assist in determining which channel is being connected.

%ORFN /DEHOV
Block Labels: The Block Labels commands toggles the display of the block labels which appear beneath each block in the worksheet.

/LQH /DEHOV
Line Labels: The Line Labels command toggles the display of the line labels, which appear along the longest segment in the line.

8VHU &RQWUROV
Maximize User Controls: The Maximize User Controls command will toggle user control blocks between maximized and iconic representations.

3URMHFW 7DEV
Project Tabs: Toggles the display of the project's tab view of the active worksheet. The Project Tab for a worksheet contains information on the block components used and lists hierarchy information.

=RRP
Zoom : The zoom command displays a dialog box and allows the user to select the zoom size used by the print and print preview commands.



9$% 67$57(56 *8,'(

/D\HUV
The Layers command is used to perform various layer-related functions. There are several commands in a sub-menu displayed by the Layers command. The following sections describe each of the commands. View All Layer: The View All Layers command activates all the layers available to be seen. A check-mark will appear by all the layers being displayed. All Layers Off: The All Layers Off command deactivates all the layers available from being seen. The check-mark will be removed from all the layers being displayed. Send to Layer: The Send to Layer command allows the user to highlight a block or group of blocks and send them to another layer. A dialog box will appear and the user can choose which layer or layers to receive the highlighted block or blocks. AND/OR Layer: The AND/OR Layer command appears as either AND Layer or OR Layer. Selecting AND Layer activates all layers containing a chosen block or set of blocks to be seen. Selecting OR Layer activates all layers to be seen. Customize: The Customize command allows the user to select the number of layers to be used. This command also allows for labeling each layer.

&RQWURO0HQX&RPPDQGV
The Control menu is used to control the mode and execution of the VAB environment. The Control menu has four sections that control the mode, compilation, execution, and execution options for the VAB environment.

6HWXS
Setup (Alt+Shift+S, Toolbar button): The Setup command places the environment in setup mode. The mouse cursor will be shown as an arrow. This allows you to doubleclick or right-click on an abject to modify its parameter setup and also to establish the placement of individual or groups of block functions within the block worksheet. Block functions can be relocated in the worksheet by selecting the block(s) with the mouse cursor and while holding the left button of the mouse down move the block into the desired position.

&RQQHFW
Connect (Alt+Shift+C, Toolbar button): The Connect command places the environment 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 labeled either SOURCE or DEST and is dependent upon whether the next connection is for a source block or a destination block. 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. 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

You can connect to multiple destination blocks by first using a left-click to select the source block, and then use a right-click on each of the destination



0(18 &200$1'6
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. The process of establishing the Data Flow Relationship among blocks is typically referred to as connecting blocks. You will need to enter the Connect mode when attempting to connect block components together. After selecting the Connect mode, the cursor will change to a target cursor with the label Connect. As the name implies, you should connect (by clicking once) on either the source or destination channel of the desired block component. After the source channel is selected, the cursor immediately changes to a target with the word Dest under the target. Now the user should connect, by clicking once, to the destination channel of the particular destination block. A line will be drawn immediately to indicate the data flow relationship that has just been established. This process should be repeated until all channels are connected. As the figure below shows, each block icon, or bitmap, is split into the source side (left half) and the destination side (right half). You can connect from source to destination or from destination to source and this is dependent upon which half of the block is first clicked. The cursor will change and be labeled either SOURCE or DEST; this is dependent upon whether the next connection is for a source block or a destination block. It is possible to connect to multiple destinations by first left-clicking on the source block and then using the right mouse button to click on the intended destination blocks.
BLOCK CHANNEL CONNECTIONS
Source Region Destination Region Channel 1 Region Block Icon Channel 2 Region Channel 3 Region

A block component can be resized to provide for easier connection. Simply drag the block into the desired position with the mouse.

Channel 1 Region

Channel 2 Region

Note: Block Connections must be made within the Block Icon

Block showing source/destination regions with multiple block input/output channels

'LVFRQQHFW
Disconnect (Alt+Shift+D, Toolbar button): The Disconnect command places the VAB environment into a disconnect mode. This will allow for the disconnection of individual block functions within the worksheet. The mouse cursor will be shown as a cross-hair cursor labeled either SOURCE or DEST depending on whether the next disconnection is for a source block or a destination block.

The Conditional Connect mode is a very powerful feature that allows a block functions data output to control whether or not another block (or group of blocks) will be executed in a worksheet.

&RQGLWLRQDO &RQQHFW
Conditional Connect (Ctrl+Shift+C, Toolbar button): The Conditional Connect command connects a block as an operator such that the first element in the source output frame determines the run state of the destination block. Conditional connections are red



9$% 67$57(56 *8,'(


(default) in color and connect to the top of destination blocks to distinguish them from standard data connections and parameter connections.

&RQGLWLRQDO 'LVFRQQHFW
Conditional Disconnect (Ctrl+Shift+D): The Conditional Disconnect command removes a conditional connection.

3DUDPHWHU &RQQHFW
The Parameter Connect mode allows any blocks data output to directly modify any other blocks function parameters. Parameter Connect (Ctrl+Alt+Shift+C, Toolbar button): The Parameter Connect command controls a blocks parameters such that the first element in the source output frame determines the run state of the selected parameter of the destination block. Parameter connections are initially green (default) in color and connect to the bottom of destination blocks to distinguish them from standard data connections and conditional connections. When you have established a parameter connection, a dialog box will appear in which you can select which of the connected blocks setup parameter to affect.

3DUDPHWHU 'LVFRQQHFW
Parameter Disconnect (Ctrl+Alt+Shift+D): The Parameter Disconnect command removes a parameter assignment (green) connection.

'HOHWH
Delete (Delete or DEL depending on keyboard, Toolbar button): The Delete command places the environment in Delete mode. This will allow for the removal of individual block functions from the block worksheet. In addition to deleting blocks, any connection between blocks may also be deleted. When in the delete mode, the mouse cursor will appear as an arrow and a pair of scissors. To remove a block or connection, place the mouse cursor over the object to be removed and select the left button of the mouse. Any highlighted objects selected in Delete mode will be removed to the Paste buffer.

6HW &RPSLOH 2UGHU


Set Compile Order: The Set Compile Order command allows the user to manually set the compile order of the blocks. This information is saved in the list file so that the integrity of the design is preserved. When this option is selected the compilation sequence is delineated by the use of numeric labels that are attached to the individual block icons.

7H[W %R[
Text Box (Toolbar Button): The Text Box command allows you to create a text box object that can be placed anywhere in the worksheet. The text box allows you to select the font, color, and size of the text and can be moved anywhere in the worksheet. This command is useful for providing a means of adding annotation to the worksheet.

&RPSLOH
Compile (Ctrl+F8, Toolbar button): The Compile menu command will re-sequence the block functions of the active block worksheet. Re-sequencing is necessary after adding block functions to a worksheet or after changing data flow relationships within a worksheet.



0(18 &200$1'6

5HVHW
Reset (Shift+F5, Toolbar button): The Reset command resets all time dependent parameters of the active block worksheet. Parameters such as file and frame position will be set to their respective beginning locations.

5XQ
Run (Ctrl+F5, Toolbar button): The Run menu command will cause the VAB environment to run the active worksheet. The environment will continue to run the active worksheet until halted with the Stop command or the Escape key on the keyboard. If the Show Status menu option has been selected, then each block will be highlighted as it is executed. A red highlight indicates that the block has all the input data and the function of that block is being performed properly. A yellow highlight indicates that at least one input channel has no valid data or an error occurred in the blocks algorithm and the operation is suspended for this execution cycle.

)UDPH 6WHS
Frame Step (F12, Toolbar button): The Frame Step command will cause the execution of N frames of the active block worksheet and then halt. Continuing to select the Frame Step command will result in the next N frames of data to be processed. This command can be thought of as a Run N Frames command, and is useful for monitoring the algorithm in closer detail (frame-by-frame analysis when the frame step is set to 1 [default]). The frame step can be changed from its initial value of 1 through the Set Frame Step command described below. The framesize used during frame stepping is determined by the framesize parameter setup of the block functions used in the worksheet.

6LQJOH 6WHS
Single Step (F10): The Single Step command will cause a single block function in a worksheet to be executed. The initial use of this command will only highlight the first block to execute (a yellow line will be drawn around the block) without actually executing the block function. Subsequent single step commands will execute the highlighted block function, and then highlight (without executing) the next block to be executed. Hierarchical blocks are executed completely.

6WRS
Stop (Esc, Toolbar button): The Stop command allows you to interrupt the execution of the worksheet when it is running.

6HW )UDPH 6WHS


Set Frame Step: The Set Frame Step command is used to modify the frame step parameter for use with the Frame Step command described earlier. The default value is 1, but this may be changed between the values of 1 and 2^30 inclusive.

6KRZ 6WDWXV 7XUER PRGH RQ ZKHQ GLVDEOHG


Worksheets will execute faster when the Show Status option is disabled. Show Status: The Show Status command is used to toggle between notification modes. When Show Status is enabled, status information will be displayed during the execution of the simulation. Statistics such as current processing block, time, frame updates, warnings, errors, and function execution status will be displayed. Your worksheet will perform more slowly than with status disabled. When status is disabled (default, Turbo



9$% 67$57(56 *8,'(


Mode), simulations run much faster; this is quite useful for long running simulations, or non-frame based (point-by-point) types of problems.

%ORFNV0HQX&RPPDQGV
The Blocks menu is used to select blocks for placement on the active worksheet, add a new block to the Block Function Selector, and provide an auto-build of the block function list.

6HOHFW %ORFNV
Select Blocks (Ctrl+B, Toolbar button): The Select Blocks command activates the Block Function Selector tool. This allows blocks to be selected for placement on the active worksheet or on the hot list toolbar. In addition to using the Block Function Selector, you can also create your own floating tool palettes that contain block components of your choice. This allows you to conveniently select those block components that you use most frequently. The Block Function Selector allows you to choose from several function libraries. Some of these libraries include Simulation, Real-time, Matrix, Image Processing, Instrumentation, and User Controls. Optional libraries are available for those products that do not include libraries you may want, including Advanced Transmission, Advanced Speech, and Image Processing. Please contact Hyperception should the need arise for additional libraries. Users can create their own function libraries as well by making their own custom block components with the Block Wizard tool. The Block Function Selector tool provides several function groups, each containing block functions. You can scroll through the group and function lists. If the left mouse button is clicked on a group, then all the functions in that group will appear in the function list. A function can also be selected with a single mouse click. There are several ways to select groups and functions in addition to a single mouse click. If you hold the mouse button down and scroll through either list, you can select multiple items at one time. You can select multiple items individually by holding the Ctrl key down while you click on an item. You can also use the Shift key to select all items from the last highlighted item to the selected item. If you double-click on a function, that functions block is placed in the upper left corner on the active worksheet. If you choose, you may also Drag and Drop functions from the Block Function Selector window directly to the worksheet and place the blocks where they need to be. Highlighted functions can also be added to the worksheet by clicking on the Add to Worksheet button. The list of highlighted function groups can be cleared with the Clear Group List button, and all function groups can be selected to display all available block functions with the Select All Groups button.

$GG 1HZ %ORFN


Add New Block The Add New Block command allows new block components to be added to the Block Function Selector tool list so they can be used in within the environment. When the Add New Block command is selected, a file selection dialog box will appear. Select the new DLL or LSS file(s) to add and click on OK. The newly added block function will then appear in the desired library and function group.



0(18 &200$1'6

$XWR %XLOG 0HQX


Auto Build Menu (Ctrl+F7) The Auto Build Menu command rebuilds the Block Function Selector tools group and function lists. It searches specified directories for all block DLLs and LSS files. For each block DLL or LSS file that it finds, it adds the blocks library, group and function information to the menu.

'637DUJHW0HQX&RPPDQGV
The VAB DSP Target menu provides several commands that allow you to control and observe any of the DSP resources in your system. This section identifies and describes the commands that are available for use with DSP hardware. The DSP Target menu is shown either by clicking on the DSP Target menu name or by pressing ALT+D. The following is a short summary of the DSP Target menu commands. Default Driver Selects the default DSP driver used for subsequent commands

DSP-Based Variables Defines any DSP-based variables used in a worksheet design Driver Files Help Initialization Output Revision History Driver Globals Driver Utilities Driver Setup Displays driver-related files Displays real-time driver on-line help Displays real-time driver initialization Displays several types of real-time driver output files Displays drivers revision history Selects global options for specific DSP or all DSPs Selects utilities provided by default driver Setup the selected DSP board driver with the current system configuration Selects files used by the drivers internal linker Imports external executable, object and symbol files into DSP memory Exports the real-time application to an executable DSP COFF file Various DSP memory options Copies DSP memory range to specified address Dumps DSP memory range to screen or file Fills DSP memory with specified data pattern

Link Files Import File

Export Application

Memory Copy Dump Fill



9$% 67$57(56 *8,'(


Load Plot Search Map Usage Symbols Loads DSP memory with ASCII, binary or COFF file data Plots DSP memory range in a variety of formats Searches DSP memory for specified data pattern Display/edit current DSP memory map Displays current memory map usage Displays symbolic information for the worksheet compiled to the selected DSP target Displays block and DSP profiling information Display block synchronization (Sync In/Sync Out) information Displays blocks that are tied to DSP interrupts Displays statistics about the current DSP resource Control selected DSP (run, stop, reset)

Profile Syncs Interrupts Statistics DSP Control

The following sections provide detailed descriptions of these DSP Target menu commands.

'HIDXOW 'ULYHU
The Default Driver menu command is used to select the default DSP board driver that will be used by all functions in the DSP Target menu and all real-time blocks. When this command is selected, a dialog box similar to the one below will appear:

Selection of the Default DSP Board Driver The dialog box contains a single combo box that allows you to select the default DSP board driver for all other DSP Target menu functions In addition to the DPS Target menu functions, new blocks added to a worksheet will use this default DSP driver. The default DSP driver may be overridden at the block level by changing the block functions selected DSP driver.

/RDG ZLWK 'HIDXOW 'ULYHU


When this option is selected, as indicated by an adjacent check mark, all blocks will be loaded with the default driver selected. This option is useful for seamlessly porting a VAB design from one DSP hardware platform to another.



0(18 &200$1'6

'63%DVHG 9DULDEOHV
Selecting this VAB menu command will bring up a dialog box that lists all currently defined DSP-based variables available for use in a worksheet. You can enter variable names, initial values, data type, and data size. You can reference these DSP-based variables with individual block components in your worksheet design.

'ULYHU )LOHV
The Driver Files command is used to display driver-related driver files including on-line help, initialization, output and revision history files. The ability to display various drivers files directly from VAB is useful because it eliminates the need to leave the VAB environment to display or print the files. The following sections describe each of the menu items.

+HOS
The Help command invokes the Windows help engine with the on-line help file for the currently selected VAB real-time driver. Help can also be invoked from VABs Help menu.

,QLWLDOL]DWLRQ
The Initialization command displays the current drivers initialization file, which provides all DSP board configuration information for that driver.

2XWSXW
The Output command displays various types of real-time driver output files such as interrupt table, memory map, profile, system statistics, symbol table, sync table and memory map usage files for user analysis. The comprehensive system statistics are not displayed on the screen, so this it is helpful to be able to display statistics files directly from VAB.

5HYLVLRQ +LVWRU\
The Revision History command displays a list of the default drivers revision history. This information is useful because it quickly identifies recent driver enhancements and problem fixes.

'ULYHU *OREDOV
The Driver Globals command is used to select options that are global to a specific DSP resource. When this command is selected, a dialog box similar to the one below will appear (DSP drivers may support different global options):



9$% 67$57(56 *8,'(

Driver Global Configuration The Driver Globals dialog box provides several options that can be applied to a single DSP resource or all DSP resources controlled by the selected default DSP board driver. A single DSP resource is selected by scrolling through the Board and DSP numbers. The scrolling will automatically limit your selection to your system configuration, so if you have only one board installed, the board number will not scroll. Similarly, if a board only has one DSP, then the DSP number will not scroll. If the All checkbox is selected, all global options will be applied to all the DSPs in the system controlled by the driver. When the Force Interrupt checkbox is selected, the complete VAB worksheet running on the selected DSP resource can be tied to a specific interrupt so that it only executes when an the interrupt occurs. The interrupt is selected with the adjacent combo box that provides a list of all DSP interrupts. When the Profile DSP checkbox is selected, the complete DSP algorithm will be profiled. This profile information can be obtained from any blocks DSP Information dialog box or from the Real-time Profile... command. When the Force Block Profile checkbox is selected all blocks will be profiled without having to activate each blocks profile mode individually. This profile information can be obtained from the blocks Block Information dialog boxes or from the Real-time Profile... command. The Compilation Target can be selected to be DSP memory or PC memory. When DSP memory is selected, a DSP board must be installed in the system because all memory accesses will be attempted to the DSPs memory. When PC memory is selected (Virtual DSP mode), all memory accesses will be to a DSP memory image stored in the PCs memory, so a board is not required. Other global options that may appear are driver-dependent and are described in the specific drivers documentation.

'ULYHU 6HWXS
The Driver Setup menu command allows you to select the proper configuration for each DSP resource in your system. A memory test option is also provided for a



0(18 &200$1'6
convenient method of determining whether or not the DSP board is responding at the chosen settings. Upon selection of the DSP Target Driver Setup menu option, a dialog box similar to the one shown below will appear.

Driver Setup Dialog Box The Driver Info button can be pressed to determine the drivers version number and date.

/LQN )LOHV
The Link Files command is used to select the files used by the DSP board drivers built-in linker to allocate memory and resolve external references. When this command is selected, a dialog box similar to the one below will appear:

Link File Configuration Link files can include object, library, and linker command files. These files can be selected for a specific DSP resource or for all DSP resources managed by the default DSP board driver. Since each DSP resource is handled independently you may have one DSP



9$% 67$57(56 *8,'(


that uses one run-time library and another DSP that uses a different one. You can also assign the same link files to all DSP resources by selecting the All checkbox. You may add and delete files, or even clear the link file list completely, by using the respective dialog box buttons. After you have selected all the link files you can accept them by clicking on OK. If you want to discard your changes, you can exit by clicking on Cancel. The selected link files will be used during the next VAB compilation. If you compile a real-time worksheet without adding all of the files that are required to resolve external references a warning will be displayed. You can add the required files by using the Link Files... command.

,PSRUW )LOH
The Import File command is used to import executable, object, and symbolic information files. When this command is selected, a dialog box similar to the one below will appear:

Import File Dialog Box You can load an external executable or object file into the selected DSPs memory allowing external applications that were not created with VAB to be executed and tested. Note that this may require that you modify the real-time memory-map for the selected target DSP board in order to provide correct segment names and addressing (see Memory Map section which follows). The external application can be controlled using the Realtime Control functions to run, stop and reset the selected DSP. You can also load ASCII symbolic information files containing symbol names and symbol values to resolve external symbols in special cases.

([SRUW $SSOLFDWLRQ
The Export Application command is used to export the current real-time VAB design to an executable DSP application that can be ported to an embedded system or other platform. The output COFF file can be used to program a PROM, load a DSP target via a host, loaded into a simulator or loaded into target hardware with a emulator/debugger.



0(18 &200$1'6
Note - The Export Application... command is a very powerful feature of Hypersignal RIDE. Real-time algorithms can be created within RIDE and then exported to a COFF output file. This DSP executable file is produced just as if you had written the source code yourself, and then used a DSP assembler/linker/compiler to create it.

Because the real-time memory map is user-configurable, and the real-time driver supports virtual DSP mode with no DSP board in the system, applications can be exported to any target hardware.

The application export capability eliminates the need for the intermediate C code generation step, which is required to export non-real-time designs. The following figure shows that the only user input required to export an application is a filename. By clicking on the Export button, the complete real-time VAB application is export for external use.

Export Application Dialog Box

0HPRU\
The Memory command is used to perform various DSP memory-related functions. There are several commands available in a sub-menu displayed by the Memory command. The following sections describe each of the memory commands.

&RS\
The Copy command is used to copy a range of DSP memory to another area of DSP memory. When this command is selected, a dialog box similar to the one below will appear:



9$% 67$57(56 *8,'(

Memory Copy Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The source and destination addresses and the length of the block of memory to copy are selected.

'XPS
The Dump command is used to dump memory from the specified DSP resource to the screen or a file. When this command is selected, a dialog box similar to the one below will appear:



0(18 &200$1'6

Memory Dump Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The destination of the memory dump can either be the screen or a file. If a file is the destination, a browse box is activated to allow the filename to be selected. ASCII, binary, and COFF filenames default to .ASC, .BIN, and .OBJ file extensions respectively. Six types of data formats are supported: hexadecimal, unsigned integer, integer, float, character and instruction. The start address and length of the memory dump must also be specified. The following is an example memory dump. Note that the data format can be user modified from within the memory dump display.



9$% 67$57(56 *8,'(

Memory Display Dialog Box

)LOO
The Fill command is used to fill a range of the specified DSP resources memory with a selected data pattern. When this command is selected, a dialog box similar to the one below will appear:

Memory Fill Dialog Box



0(18 &200$1'6
The specific DSP resource is selected by choosing the board and DSP numbers. The remaining parameters define the memory fill operation. The memory type (if applicable for the specific DSP) can either be program or data memory. The data type can be integer, float or instruction (if applicable). The address is where the fill will start. The fill value is the data value that will be written into the DSPs memory. The length defines the size of the memory fill.

/RDG
The Load command is used to load a file of data at a specified address in a DSP resources memory. When this command is selected, a dialog box similar to the one below will appear:

Memory Load Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The file format for the source data can be ASCII, binary or COFF format. The file data will be imported and stored in the selected DSPs memory at the specified address.

3ORW
The Plot command is used to plot a range of the DSP resources memory. When this command is selected, a dialog box similar to the one below will appear:



9$% 67$57(56 *8,'(

Memory Plot Dialog Box The DSP memory range is defined with a starting memory address and length. The data type of the memory region must be defined as integer or float. The update mode can be manual or automatic. In manual mode, the plot will only update when selected by the user from the plots menu. In automatic mode, the plot updates as fast as it can. Automatic mode is useful for monitoring a data that is constantly changing. If the DSP is not running, or the data is not changing, manual mode is sufficient. There are several different types of plots available which are user-configurable. The following is an example memory plot.

Example Memory Plot Display



0(18 &200$1'6

6HDUFK
The Search command is used to search the DSP resources memory for a specified data pattern. When this command is selected, a dialog box similar to the one below will appear:

Memory Search Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. You can choose the search criteria applicable to the selected DSP such as the memory type (data or program), data type (integer or float), address range and search value. A search can be initiated by clicking on the First Match or Next Match buttons to find the first occurrence or next occurrence of the search value within the selected address range. The result of the search is displayed in the Search Result area of the dialog box.

0DS
VAB maintains a memory map for the target DSP. VAB uses the memory map is used when the real-time algorithm is executed by the target DSP. The Map memory command allows you to display and modify the DSPs current memory map. When this command is selected, a dialog box similar to the one below will appear:



9$% 67$57(56 *8,'(

Memory Map Dialog Box The specific DSP resource is selected by choosing the appropriate board and DSP target numbers. The memory map output lists the available system memory including memory section names, start addresses, end addresses and memory types. Any of the memory segments listed in the memory-map can be modified. By doubleclicking on a segment name, a dialog box will appear in which the modifications would be made. The memory-map does not allow you to overlap segments. It is quite helpful to calculate the desired address locations first, clear the memory map, and then make the new changes. The memory map dialog boxs File menu allows a memory map to be saved to a file and read from a file. This can be quite convenient for situations where individual real-time worksheets require unique memory-maps. For example, a worksheet that requires a very large delay value might assign the HEAP segment to be much larger than normal. Also, if the target DSP hardware has more memory, you can take advantage of it by adding it to the memory-map. The Edit menu allows memory segments to be added, cleared, deleted and modified. Additionally, a default memory map can be selected.

8VDJH
The Usage memory command displays a DSP resources current memory map usage. When this command is selected, a dialog box similar to the one below will appear.



0(18 &200$1'6

Memory Usage Dialog Box The memory map usage shows each memory segments name, start address, size, and amount of memory used in both absolute addresses and percent. A summary of total memory is displayed at the bottom of the dialog box.

6\PEROV
The Symbols command is used to display the symbolic information for all of the blocks that are selected in the real-time block worksheet. When this command is selected, a dialog box similar to the one below will appear:



9$% 67$57(56 *8,'(

Symbol Table Dialog Box The symbol table includes a list of symbol names along with their values and memory segments in which they were defined. A summary of the total number of symbols and user-defined symbols is provided at the bottom of the display. This symbolic information can be used in conjunction with a DSP debugger to analyze code at the assembly level. The memory content of a referenced symbol can be displayed by double-clicking on the symbols name. This is convenient for viewing assembly language op-codes or checking on variable contents.

3URILOH
The Profile command is used to display the profiling information for all of the blocks selected for profile. Each block can be selected to operate in profile mode; this allows you to determine the processing time of the block. Additionally, the Driver Globals... command can be used to force a profile of all blocks and the complete DSP algorithm. When the Profile... command is selected, a dialog box similar to the one below will appear:



0(18 &200$1'6

Profile Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The profile information provides the total number of times that each block has been executed, the number of DSP clock cycles for a single block execution, and the total number of DSP clock cycles that each block executed. The profiling mode is useful in calculating how many clock cycles a particular block function requires. This information can be helpful in determining how much processing time is available.

6\QFV
The Syncs... real-time menu command is used to display the use of all synchronization flags that are active on the selected DSP. Synchronization flags allow blocks to run at different rates allowing VAB to support multi-rate processing. In each blocks parameter dialog box, the block can be selected to control a SYNC OUT signal and/or monitor a SYNC IN signal. Blocks may use the SYNC OUT signal to notify other blocks when output data is valid. Blocks may use the SYNC IN signal to monitor the output syncs from other blocks. There are numerous sync flags from which to choose. Currently the only VAB supplied real-time block functions that provide SYNC OUT signals are the hardware-specific A/D block functions. Users can create their own real-time blocks that allow for SYNC OUT flag generation.



9$% 67$57(56 *8,'(


When an A/D (or user-created) function is set to generate a SYNC OUT signal, any block function which sets its SYNC IN flag to match will only execute when the sync flag is valid. In this way, a block or series of blocks can be setup such that they do not repeatedly process the same frame of data, and will only execute when a new frame of data is available. Sync information can be either written to a file or displayed on the screen. The sync table includes the sync number, name, address, direction, function name and function address. The sync table provides a quick way to see what blocks on the specified DSP are synchronized. The following shows the output of a typical sync table.

Example Sync Table The name of the sync flag is obtained by a block function from the respective drivers initialization file. The sync names are arbitrary, so you can rename them if desired by editing the appropriate real-time driver initialization file. The direction of a sync flag can either be an output (O) or and input (I). In the case of an output sync, the block must be written to provide output sync information. For example, A/D conversion and buffer blocks provide output sync information because their outputs are only available at certain times. In the case of an input sync flag, the associated functions will only execute when the selected sync flag is set active by another block that sets the SYNC OUT flag.

,QWHUUXSWV
The Interrupts... menu command is used to display the list of block functions that are tied to DSP interrupts on the selected DSP resource. In each blocks parameter dialog box,



0(18 &200$1'6
the block can be selected to execute only when a specific interrupt occurs. A single block or several blocks can be tied to a single interrupt to form an interrupt service routine. The interrupt table includes the DSPs interrupt number and name, the interrupt handler entry address, the block functions that are tied to the specific interrupt, and the address of the code associated with each block. The number and names of interrupts are processordependent, but the interrupt table maintains a consistent format regardless of the DSP type.

6WDWLVWLFV
The Statistics... real-time menu command can be used to display statistical information about the selected DSP resource such as its memory map, memory allocation, block allocation and miscellaneous DSP-specific information. When this command is selected, a dialog box similar to the one below will appear:

Statistics Dialog Box

'63 &RQWURO
The DSP Control... real-time menu command provides the ability to control the selected DSP resource by placing it in the reset, run, or hold mode of operation. These DSP control functions are intended to control execution of external COFF files that are loaded into DSP memory using the Import File... command. When the DSP resource is selected, a control dialog box such as the one below will be displayed. When a specific DSP resource is selected via the OK button, a floating palette of DSP control buttons is displayed, which allows direct control of the DSP resource. These control buttons will vary depending on the driver selected.



9$% 67$57(56 *8,'(

7RROV0HQX&RPPDQGV
The Tools menu contains commands that allow you to run other applications directly from within the VAB environment. The default Tools menu includes the Stand-alone Application Builder, Block Wizard, Filter Design utility, the ANSI C Source Code Generator, and the Windows Calculator applications. If any of the tools are not installed, the application menu entree will be grayed out. Otherwise, if you select a tool from the Tools menu, the tool will be invoked.

6WDQG$ORQH $SSOLFDWLRQ %XLOGHU


A demonstration version of the HAppI Wizard run-time application builder has been included with the Standard Editions of all the Hypersignal visual design environments. You will be able to use this Wizard to produce time-limited, standalone Windows applications from your visual design worksheets.

%ORFN :L]DUG
The Block Wizard is included as a standard tool with all editions of the Hypersignal visual design environments and allows you to create your own block functions.

$16, & &RGH *HQHUDWRU


The ANSI C Code Generator is included in all Hypersignal Block Diagram, Hypersignal RIDE, and Hypersignal ImageDSP Enterprise Editions. However, if you did not purchase an Enterprise Edition you can still purchase the ANSI C Code separately. If the C Code Generator has previously been installed then you can launch it by choosing this menu command. For more details regarding the ANSI C Code Generator please contact Hyperception.

)LOWHU 'HVLJQ 8WLOLW\


The Filter Design utility allows you to create FIR and IIR filter coefficient files that can be used by block components. The Filter Design utility was created to allow users to quickly and easily create Digital Filters for use in DSP applications without requiring the user to be an expert in DSP or in digital filters. Simply by providing the high-level design information for a particular filter, the filter design utility will produce the digital filter coefficients in an ASCII text file which may be used for real-time/simulation directly in the Hypersignal environment, or in the users own application. The Hypersignal filter design utility may be easily invoked by selecting the Filter Design menu selection under the Tools main menu. Additionally, if the HyperLAB task bar is being used the Filter Design utility may be invoked by simply clicking on the filter design icon. After the filter design utility is invoked, the user may start designing digital filters.

6FLHQWLILF &DOFXODWRU
The Windows calculator can conveniently be selected from this menu command.

&XVWRPL]H 7RROV
Choosing this menu command will allow you to customize the Tools menu with the insertion of additional applications.



0(18 &200$1'6

2SWLRQV0HQX&RPPDQGV
The Options menu contains commands that allow you to add external I/O connections for hierarchy block creation, change the user interface configuration, and add new functions to the Function menu.

([WHUQDO ,2 0HQX &RPPDQGV


External I/O: The External I/O menu commands are used to define the external inputs and outputs for a worksheet used in hierarchical design. The defined inputs and outputs will appear on the single hierarchy block icon and can be connected to other blocks in another worksheet.

([WHUQDO ,QSXW &RQQHFWLRQ


External Input Connection (Alt+Shift+I): Selection of the External Input Connection command will result in a dialog box labeled External Input Configuration. Enter the desired number of channels, not to exceed 256, into the edit control box provided. Selection of the OK button will cause the block worksheet to be re-drawn with the input connections added at the left of the worksheet. Before the worksheet can be used as a hierarchy block worksheet the input connections must be connected to a destination within the worksheet.

([WHUQDO 2XWSXW &RQQHFWLRQ


External Output Connection (Alt+Shift+O): Selection of the External Output Connection command will result in a dialog box labeled External Output Configuration. Enter the desired number of channels, not to exceed 256, into the edit control box provided. Selection of the OK button will cause the block worksheet to be re-drawn with the output connections added at the right of the worksheet. Before the worksheet can be used as a hierarchy block worksheet the output connections must be connected to a source within the worksheet.

6WRS 2Q :DUQLQJ
Stop on Warning (Ctrl+W, Toolbar button): The Stop On Warning command allows you to decide whether you want the environment to notify you when there is a block function warning. For example: If you try to add a ramp generator and a sine generator, the program will stop on the ADD block if the framesize or the sample rates of the two blocks are non-equal. The ADD block will show a yellow border around its icon and a warning message will be displayed in the status area. The following is a list of warning messages that the environment might display: end of file error executing user algorithm arithmetic error in user algorithm data conversion error overflow data type error sampling frequency error data precision not supported initialization error framesize mismatch Warning in User Block



9$% 67$57(56 *8,'(


Stop On Warning is on by default when you open the environment. It can be toggled between ON/OFF by using the pull-down Options menu, by pressing Ctrl+W or by clicking on its toolbar button. If Stop On Warning is turned off, the yellow border will still appear in the appropriate block - but the program will still run, which in some cases could result in a subsequent error message.

6QDS 7R *ULG
Snap to Grid (Ctrl+G, Toolbar button): The Snap To Grid allows for placing (or removing) a positioning grid from the active worksheet. To alternate between Snap To Grid and free form block placement, you may use the pull-down menu, press Ctrl+G, or click on the grid toolbar button.

6ROLG *ULG
Solid Grid: The Solid Grid command toggles between having solid grid lines and just pixels at each intersection of a line. The default setting for Solid Grid is set to off.

6HW ,FRQ 'LVSOD\ 6L]H


Set Icon & Display Size: The Set Icon & Display Size allows for conveniently setting the icon and display size for all blocks on the worksheet. In addition, this command sets the spacing used to display the positioning grid. The icon width and icon height parameters are used to set the vertical and horizontal spacing of the grid.

6HW 6\VWHP &RORUV DQG )RQWV


Set System Colors and Fonts: The Set System Colors and Fonts command is a userfriendly interface to change the colors of the components within the environment. By changing the values of each one of the basic Red-Green-Blue colors from 0 to 255, the following elements colors may be customized: Main Frame Work Areas Connection Lines Control Lines Channel Labels Grid Lines Channel Labels Grid Styles Channel Label Sizes

&XVWRPL]H 7RROEDUV
Customize Toolbars: The Customize Toolbars command allows for customizing a new or existing toolbar with block functions. When this menu command is chosen, a dialog box appears in which you can select from all function library groups. By grabbing a block functions icon with the left mouse button, you can drag it into the work area. By placing the selected icon onto a toolbar and then releasing the left mouse button, you will cause the corresponding block function to appear in the toolbar. Placing the icon outside of a toolbar will cause a new toolbar to be created. This menu command is useful for creating toolbars that contain the block functions that you most commonly use.



0(18 &200$1'6

3URMHFW
The following menu commands are contained in the Project menu: Undo Buffer Size, Variables, Previous Level, Security/Permissions, and Properties. Each of these menu options is discussed below:

8QGR %XIIHU 6L]H


Undo Buffer Size: The Undo Buffer Size command displays a dialog box that allows for setting the size of the undo buffer. The number in the dialog box represents the number of commands that should be stored in the undo and redo buffers during cut/copy/paste edit commands.

3&%DVHG 9DULDEOHV
Variables: The Variables command allows for adding, modifying, and viewing the global variables defined for the current project.

3UHYLRXV /HYHO
Previous Level: The Previous Level command takes you up a level in hierarchy and makes the parent worksheet the active worksheet.

6HFXULW\3HUPLVVLRQV
Security/Permissions: The Security/Permissions command allows for setting passwords for Read/Write protection. This option is useful in situations where you do not want worksheets (which may be a top-level worksheet or hierarchy file) to be modified.

3URSHUWLHV
Properties: The Properties command allows for accessing the worksheet properties. If the block is a hierarchy block, the library, group, and block name information is displayed in the dialog box.

:LQGRZ0HQX&RPPDQGV
The Window menu commands control the display of the worksheet windows. Every toplevel and hierarchy worksheet has its own window which can be displayed in various ways. You can cascade, tile and close all the open worksheets using these Window menu commands.

&DVFDGH
Cascade: The Cascade command cascades all the open windows so that the are placed on top of one another with their title bars showing for selection. The active worksheet is shown with a highlighted title bar.



9$% 67$57(56 *8,'(

7LOH +RUL]RQWDOO\
Tile Horizontally: The Tile Horizontally command tiles all the open worksheet windows horizontally so that they can all be displayed simultaneously. The active worksheet is shown with a highlighted title bar.

7LOH 9HUWLFDOO\
Tile Vertically: The Tile Vertically command tiles all the open worksheet windows vertically so that they can all be displayed simultaneously. The active worksheet is shown with a highlighted title bar.

$UUDQJH ,FRQV
Arrange Icons: The Arrange Icons command aligns all the minimized worksheets icons at the bottom of the work area. When a worksheet is minimized, it is represented as an icon on the work area. This command is useful to organize worksheet icons.

5HIUHVK 'LVSOD\
Refresh Display: The Refresh Display command forces the environment to repaint the current worksheet.

&ORVH $OO
Close All: The Close All command closes all the open worksheet windows. If a worksheet has been modified without being saved, the environment prompts whether to save the worksheet file before closing the window.

2SHQHG )LOHV
Opened Files: At the bottom of the Window menu, a list of currently opened worksheets is displayed. You can move from one worksheet window to another quickly by selecting from this list. If the windows are cascaded, the selected worksheet is brought to the top and becomes the active worksheet. If the windows are tiled, the selected worksheet becomes the active worksheet.

+HOS0HQX&RPPDQGV
The Help Menu commands provide on-line help for VAB application. There are various levels of help available and includes the standard product help, block component reference, upgrade information, and other relevant information about the environment. This comprehensive help system is composed of several individual help files.

&RQWHQWV
Contents: This menu selection brings up the main help page for the environment. From this main help page, a variety of top-level help areas using the Hot Key text (typically green colored) may be selected. In turn, these top level help areas will provide further information and possibly additional Hot Key text fields allowing you to navigate to an appropriate section regarding a particular question.



0(18 &200$1'6

6HDUFK IRU +HOS 2Q


Search for Help On: The Search for Help On menu item brings up the standard help search mechanism which allows for quick study of all help topics contained within the main Help file. You can either browse through the list of main help entrees, or simply start typing the first few characters of the item in question. Once the initial help entree is selected, all help topics associated with that selection may be displayed in the second help window. Finally, by either double-clicking on a particular topic, or selecting the topic and pressing the Go to button, you are lead to more detailed information regarding that topic.

+RZ WR 8VH +HOS


How to Use Help: The standard windows help file is brought up from this menu selection. This help file allows for getting more information regarding the standard Windows Help System. It explains in detail how you can navigate through help files to locate information more quickly and efficiently.

%ORFN )XQFWLRQ 5HIHUHQFH


Block Function Reference: The function reference help system allows for more detailed information on each of the block functions. This help system provides an alpha key selection section to allow for discriminating alphabetically among all of the functions, and then use Hot Key text to quickly locate the information regarding a specific block function. Certain block functions may even include bitmap example worksheets that demonstrate the usage of the block function in a complete worksheet.

7LS RI WKH 'D\


Tip of the Day: The Tip of the Day brings up a window with bits of helpful information. There is a box that can be checked denoting whether or not to see the Tip of the Day every time the application is started. Note that when the Tip of the Day is selected, you will not be able to invoke a worksheet by selecting its filename. For example, if you double-click on a worksheets .LST filename icon, this will cause the application to be launched. If Tip of the Day is NOT selected, then the chosen worksheet will automatically be loaded. Otherwise, the Tip of the Day will be displayed and no worksheet will be loaded.

+\SHUFHSWLRQ ,QWHUQHW /LQN


The sub-menu for the Hyperception Internet Link command contains several options that link to several web sites. These sites include Hyperceptions web page, Hypersignal Users web page, DSP hardware locator service, on line Tech Support, and Hyperception FTP site for downloading files from the internet.

3URGXFW 8SJUDGHV,QIR
Product Upgrades/Info: The Product Upgrades/Info brings up detailed information regarding additional products and upgrades that might be found useful in certain applications. This is a good source for determining which optional block function libraries exist, and the procedure one would follow to upgrade or purchase further products from Hyperception.



9$% 67$57(56 *8,'(

7KLUG 3DUW\ 2SSRUWXQLWLHV


Third Party Opportunities: The Third Party Opportunities command displays detailed information regarding the third party support and promotion program available from Hyperception whose objective is to expand the capabilities of our visual design environments.

$ERXW
This menu selection brings up a modal dialog box that provides information regarding the product name, version number, the user name, serial number, and other relevant details regarding this particular software application. This is useful for determining the serial number and product name when contacting Hyperception Technical Support.

2WKHU&RPPDQGV
There are other commands available that are not located in the menu or toolbar commands. This section briefly describes those commands.

%ORFN $QQRWDWLRQ
By pointing to a blocks label or line connection in a worksheet, and double-clicking the left mouse button or single-clicking the right mouse button, the user may modify the text label associated with that block. If the worksheet is then saved, any modified block labels will also be saved. This is useful for documenting a worksheet to be more meaningful with respect to a particular application.

%ORFN 3DUDPHWHU 6HWWLQJ


By pointing to a block icon in a worksheet and double-clicking on the left mouse button, or single-clicking with the right mouse button, the block will display its parameter dialog box, such that the user may modify parameters for that instance of the block. Upon saving the worksheet, all block parameters for each block instance are saved. In the case of user control blocks, the user control block must be maximized (not shown as an icon, see the View User Controls menu command above) before access to its parameters may be granted. Once the user control is maximized, double-clicking on its caption bar will bring up the parameter dialog box (if any) for that particular user control.

%ORFN 'HVFULSWLRQ
By pointing to a block icon in a worksheet, and single-clicking on the left mouse button, a brief description for that block is obtained. This description will show up in the status line, and may give some aid to the user regarding the function of that block.



0(18 &200$1'6



9$% 67$57(56 *8,'(

:RUNLQJZLWK%ORFN &RPSRQHQWV
Some suggestions for using the basic building blocks in your design

&KDSWHU

When you are using VAB to create your own real-time designs for use on the Texas Instruments DSK hardware you will find that working with block components will become a common aspect to building-up a worksheet. Therefore, you will need to understand some basic issues with regard to using block components in your design. This chapter is not intended to cover such items as connecting blocks, or setting a blocks user-parameters (you can refer to other chapters of this manual for this type of information). Rather, its purpose is to help you understand how best to use the block components in the construction of your VAB designs. There are several useful guidelines to follow (or at least keep in mind) when building your worksheets, and these suggestions will be presented here.

'6.0HPRU\
First, it is important to keep in mind memory limitations of your particular DSK hardware. For the purpose of this section, lets use the C31 DSK as an example. The C31 DSK hardware contains a limited amount of memory. In fact, the only memory available on the DSK is that of the on-chip memory of the TMS320C31 DSP chip. This memory space is what the VAB program uses when building your algorithm for use by the DSP. To best take advantage of this memory, you will need to understand how VAB uses the available memory space. [Note: You can purchase a SuperDSK board that will provide your C31 DSK hardware with lots of external memory; this allows you to create much larger programs within VAB. Please check VABs on-line Help for information about the SuperDSK.] You should be aware that the on-chip memory is a fixed size of 2K words of memory. Of this space, the VAB program requires that an on-board program, or kernel, be resident in memory. This allows VAB to transfer data to and from the DSK hardware. While this is important it does come at a cost of a reduced available amount of memory on the DSK hardware. Each DSP-based block component that you use in your worksheet design takes up some memory of the DSK. For example, a block component has associated with it a section of code that is executed by the DSP. Also, a block component may allocate a region of memory for storage of any of its unique working parameters (e.g. a Sine generator contains information on such parameters as amplitude and frequency settings). Some blocks may require a region of memory for data storage. All of this memory use adds up especially quickly when you consider the memory limitation imposed by the DSK hardware. So, how can we best take advantage of the limited amount of memory left over for creating real-time algorithms? You will find that there are tradeoffs you can make when making a VAB worksheet. Here are several ideas to consider when constructing a worksheet:

The C31 DSK contains only on-chip DSP memory. This places some restrictions on the way you build-up a VAB worksheet when designing for the C31 DSK hardware.



:25.,1* :,7+ %/2&. &20321(176


Choosing a framesize for your block components How many blocks can you use in a worksheet? Using Native Blocks versus Vector-based Blocks

&KRRVLQJ D )UDPHVL]H IRU \RXU %ORFN &RPSRQHQWV


Using a large framesize will quickly use up memory on the C31 DSK. You should consider using a smaller framesize and using buffering to upload data for display in VAB. Also, you may want to consider using the SuperDSK card to provide additional external memory for your C31 DSK. This will give you lots of room to work.

A framesize can be associated with a block component. Typically block components that are of a signal generator nature (e.g. Sweep Generator, DSK A/D, etc.) will require that a framesize be specified. The blocks framesize determines the size of the blocks memory buffer output. The framesize can be chosen to be a value of 1 (point-by-point processing), or it can be chosen to be larger. It is important that you understand the consequences of selecting the framesize parameter in your worksheet design. When you specify a block component to have a certain framesize, the VAB program will allocate a region of memory based upon the chosen value. Most block components that are designed to perform some process (blocks that require an input connection and will generate a desired output based upon the blocks function) will operate on the framesize that has been specified by a block component that serves as its input. (This is not the case for Native block components - they operate on a framesize of 1 [see below].) What this boils down to is that every block component in your worksheet will allocate memory for its output buffer. The size of this buffer is determined by the blocks framesize. For example, if a Sine Generator uses a framesize of 100 points and is connected to five vectorbased block components then you will quickly exceed the amount of memory VAB provides for buffer storage. Remember: each process-type block will try to allocate a buffer of data that is based upon the framesize of the input block component.

A common VAB Error Message if too much memory is used If you choose to use a framesize of 1 and would like to also upload data for display in VAB, you may wish to consider using a buffered approach to transferring data to the host PC. This can be accomplished by using a buffer hierarchy block component.

+RZ PDQ\ %ORFNV FDQ <RX XVH LQ D :RUNVKHHW"


You can use the DSP Target menus Memory Usage command to see how much C31 DSK memory your worksheet design is using. Remember that you are limited to a small amount of memory. If you use many different block components in your design then you will use more memory than if you had used many block components of the same type. This is because VAB will not replicate sections of code associated with a duplicated block component. However, if many different block components are used then VAB will need to place all relevant sections of code for each unique block type into DSP memory for subsequent program execution.



9$% 67$57(56 *8,'(


You can use VABs DSP Target menus Memory Usage command to check the DSK memory resources. DSK memory associated with block components typically use mostly memory in VABs .text segment.

DSP Target menus Memory Usage command

VAB does not allow you to modify the memory map used. Hyperception does offer other products that do provide this capability. If you are interested in this feature please contact Hyperception for information.

8VLQJ 1DWLYH %ORFNV YHUVXV 9HFWRUEDVHG %ORFNV


The Native block components (see section below) take up less space than the Vectorbased block components, but will only operate on a point-by-point basis. The Vectorbased blocks can handle working with a larger framesize, but take up more memory than their native block counterparts. Typically, given the small amount of available memory, you will find that working with a combination of native block components and vector-based components may provide the best scenario for fitting a design into DSK memory. By choosing to work on a point-bypoint basis (i.e. a framesize of 1) you will be able to fit more block components into your worksheet design.



:25.,1* :,7+ %/2&. &20321(176

'63%DVHG1DWLYH%ORFNV
The VAB program includes several powerful block components that are referred to as Native block functions. The native blocks have been designed to provide fast execution on the DSP with no overhead associated with using them in your design. In addition to their inherent speed, these blocks take up very little memory space. Both of these features make the use of native block components ideal for the DSK and the VAB program. When using native blocks it is important to understand that these blocks only operate on a single data point. That is, they expect to operate on a framesize of one. If larger frames of data are passed to a native block only the first data point will be processed. If you are using native block components with vector block components (see below) you should take care to make sure that the vector-based block components have been setup to operate on a framesize of 1.

1DWLYH 9DULDEOH 2SHUDWRUV


The DSP-based Native Variable Operators group of block components will allow you to easily make use of DSP variables in your worksheet design. These powerful block components are described below. It is recommended that you load and run several of the VAB examples to see how these block components can be used in a worksheet design.

5HDG (OHPHQW $W
This block component reads the element at the specified address and offset of a variable array. This block outputs a single value located at the address, specified in the first input, plus the offset, specified in the second input. Most commonly, this block is used to access an element within an array of data where the array address is connected to the first input and the array index is connected to the second element. Note - the inputs and outputs of this block are treated as scalar values and not as vectors.

9DULDEOH 5HDG
This function provides the value of a particular real- time global variable. The current value of the variable is available from this block, and when the block is running, changing this value causes an instantaneous one- time download of the new value. The initial value of the variable is also accessible from this block. Note - the outputs of this block are treated as scalar values and not as vectors.

9DULDEOH 5HDG ZLWK 2IIVHW


This function provides the value of a real- time global variable using an offset from the base of the variable, or variable array. This block outputs the element at the offset, specified on the input channel, from the initial starting address of the variable array. Note - the inputs and outputs of this block are treated as scalar values and not as vectors.

9DULDEOH :ULWH
This function stores the input value in the variable specified. This block can be thought of as an assignment operator, as it replaces the current value of the variable with whatever is connected to the input channel. Note - the inputs of this block are treated as scalar values and not as vectors.



9$% 67$57(56 *8,'(

9DULDEOH :ULWH ZLWK 2IIVHW


This function stores the value, (contained on the first input channel), at the offset, (specified by the second input channel), relative to the starting address of the variable array specified. Most often, this block is used to write values to different locations within an array of values. Note - the inputs of this block are treated as scalar values and not as vectors.

:ULWH (OHPHQW $W
This function stores the value, at the first input, at the address created from the second and third input channels. The second input is a base address and the third input is an offset from the base address. Note - the inputs of this block are treated as scalar values an not as vectors.

'63%DVHG9HFWRU%ORFN&RPSRQHQWV
Vector-based block components allow you to specify a framesize parameter, and are capable of operating on frames of data larger than (or equal to) a size of 1. Typically these block components will take up more memory space than their Native block counterparts, but will allow you to work on arrays of data (as opposed to operating on a sample by sample basis). If you specify the framesize of a Vector-based block component to be equal to a value of 1 then you will be able to combine them with VABs Native block components.

3&%DVHG%ORFN&RPSRQHQWV
PC-based block components rely upon the host PC to perform the algorithm processing. These block components cannot be used directly with DSP-based Native and Vector block components. However, VAB does allow you to transfer data from the DSP-side up to the PC-side for subsequent PC-based processing and display. Examples of PC-based block components include VABs Display blocks.

'6.+DUGZDUH6SHFLILF%ORFNV
There are two block components that are specific to the DSK hardware. These blocks are the DSK A/D and DSK D/A block components. These block functions are located in VABs DSP-Based Vector Library in the RT DSK Hardware Functions group. You can use a single A/D block in a worksheet, a single D/A block in a worksheet, or a combination of an A/D block and a D/A block in a worksheet. The maximum framesize for these blocks has been set to 32.

7UDQVIHUULQJ'DWDIURPWKH'6.WR9$%IRU'LVSOD\RU 3&EDVHG3URFHVVLQJ
You may wish to upload data from a DSP-based block component for subsequent PC-based processing or display in VAB. However, VAB will not allow you to directly connect a DSPbased block component to a PC-based block component.



:25.,1* :,7+ %/2&. &20321(176


VAB does provide one unique block component that provides a means of transferring data from the DSP-side (DSK) up to the PC-side (VAB). This is easily accomplished through use of the RT DSP-to-PC Upload block component. The DSP-to-PC Upload block component can be selected into your worksheet design by using the Block Function Selector to choose its function name from the DSP-Based Vector Librarys RT Data Transfers group. It is recommended that you load and run several of the VAB examples for a demonstration on how to use the DSP-to-PC Upload block component in your worksheet design.

3URILOLQJ\RXU'HVLJQ
The VAB design environment allows you to find out exactly how much time your algorithm takes to run on the DSK. There are two methods of obtaining the number of instruction cycles used by your design. The first method is to use the DSP Target menus Profile command to display relevant information about your design. The second method is to use the RT Profile block component to display the profile information.

Displaying DSP Profile Information



9$% 67$57(56 *8,'(

$7XWRULDO
Getting up to speed with VAB

&KDSWHU

This chapter is designed to get you up and running with the VAB software as quickly as possible. You may find it helpful to follow the tutorial along and actually re-create the demonstrations presented here with your VAB software and DSK hardware. This way you will actually be able to learn how to use VAB more easily and quickly. If you desire to re-create the demonstrations shown in this tutorial you should verify that your DSK is properly communicating with VAB before proceeding (see Chapter 1 for information on verifying VAB / DSK communications). Several of the more commonly used commands will be presented in this chapter as are some of the common steps used in creating your own worksheets. Its recommended that in addition to this section, you read through the rest of this user manual for further information and additional suggestions. The steps listed in this tutorial show how to: 1. 2. 3. 4. 5. 6. 7. 8. 9. Start a new VAB worksheet session Select block components Establish data flow connections Change a blocks parameters Run the worksheet Using a Parameter Connect Use edit cut/copy/paste/undo functions Use hierarchy in a worksheet Save the Worksheet

6WDUWLQJD9$%6HVVLRQ
The first step in creating a block diagram real-time design with VAB is to start a new worksheet. A worksheet is a window which serves as a work space for your applications, and may be thought of being like a piece of paper in which a block diagram may be drawn. Each worksheet can contain many different block components that are arranged in a structured block diagram algorithm. Many worksheets can be opened and maintained while in the VAB environment, but only the worksheet chosen as the active worksheet can be executed. The active worksheet filename is displayed in the VAB application caption bar. Choosing the File menu New



$ 78725,$/
command will cause an empty worksheet to be loaded. It is in this window where you will place your block components. If you desire to re-create the demonstration shown in this tutorial you should select the VAB File New menu command to bring-up an empty worksheet. This will produce a VAB worksheet similar to the figure shown below:

VAB with an Empty Worksheet

6HOHFWLQJ%ORFN&RPSRQHQWV
Block components can be placed onto the active worksheet by using the Block Function Selector tool, or by using VABs block component Toolbars. Choosing the VAB Blocks menu Select Blocks... command will cause the Block Function Selector dialog box to appear. The Block Toolbars will appear as dockable toolbars in the VAB work area. Block components are arranged into many different group categories. These categories are shown in the Group List box. Choosing a function group will cause all functions within that group to be added to the Function list box. De-selecting the group will remove all corresponding block functions from the Function list. By selecting the Add to Worksheet button all blocks in the Function List will be added to the active worksheet. Single block functions can be selected into the worksheet by double-clicking the block function name, or by simply dragging the name of the block component into the worksheet. Upon selection of the desired block components their associated icons will appear in the worksheet. When you are done selecting blocks, you should click on the close button. You may add more blocks later so you do not have to choose all blocks at once. In the figure below we

First position the block components in the worksheet, and then connect them together to establish the data flow.



9$% 67$57(56 *8,'(


have added several block components into the worksheet by dragging them into position from the Block Function Selector (if you use the Add to Worksheet option, or use VABs Block Toolbars, then the blocks will appear in the upper-left area of the active worksheet). The blocks used here are the RT Sine Generator, RT DSP-to-PC Upload, DSK D/A, and the 1 Channel X Display.

Selecting Block Components into the Active Worksheet

(VWDEOLVKLQJWKH'DWD)ORZ
Using the right mouse button during connection will allow you to connect a single source block to many destination blocks without re-establishing the source block.

Once you have selected the block components onto the worksheet you will need to establish the block diagrams data flow. This is accomplished by using the mouse to arrange the block icons in the worksheet to form an algorithm or process. The business of establishing the data flow relationship among blocks is typically referred to as connecting blocks. When the blocks have been positioned on the worksheet, you need to connect the blocks to form the algorithm. This is done while operating in the Connect mode. VAB can be placed into Connect mode by selecting the Mode menu connect command. When this mode is selected, the mouse cursor will change to a target cursor labeled either SOURCE when choosing a source block icon, or DEST when choosing a destination block icon. Positioning the target cursor over a block component and clicking the mouse button will cause a connection to be made. Placing the mouse cursor in the right-half of a block will specify a Source connection; a cursor placed into the left-half of a block will define a destination connection. Once the blocks in the worksheet have been connected, the worksheet needs to be compiled. Compilation determines the order in which individual blocks will execute, and can be performed through use of the Compile menu command. Compilation of the



$ 78725,$/
worksheet should be done after all block components have been positioned and connected.
BLOCK CHANNEL CONNECTIONS
Source Region Destination Region Channel 1 Region Block Icon Channel 2 Region Channel 3 Region

Channel 1 Region

Channel 2 Region

Note: Block Connections must be made within the Block Icon

Block showing source/destination regions with multiple block input/output channels As the figure above shows, each block icon, or bitmap, is split into the source side (left half) and the destination side (right half). You may connect from source to destination or from destination to source; this is dependent upon which half of the block is clicked first. 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 first left-clicking on the source block and then using the right mouse button to click on the destination side of each block intended 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.

Block connections can be made from both Source-Destination and Destination-Source directions.

Establishing the Data Flow by Connecting Block Components



9$% 67$57(56 *8,'(

&KDQJLQJD%ORFNV3DUDPHWHUV
Using the Parameter Connect feature is another way to change a blocks parameters.

In most cases you will want to select the setup parameters for the block functions in your worksheet. You can modify the setup parameters for a block function by first doubleclicking the block function icon with the left mouse button. This will cause the blocks setup parameter dialog box to appear (if the box has any parameters which can be changed). The parameters that can be entered are dependent upon the block function chosen. Selecting the dialog box OK button will keep any changes made.

Changing the Block Component User Parameters

5XQQLQJWKH:RUNVKHHW
After you have arranged the block icons and established the data flow by connecting the blocks together you can run the worksheet. The VAB run commands can be located in the Run menu. The Run menu command will cause the active worksheet to be executed. VAB will continue to run the active worksheet until you halt its execution through use of the Stop menu command. If the Show Status selection has been made, then each block function in the worksheet will be highlighted as it is executed. A red highlight box around a block function is used to indicate a successful execution of the block. A yellow highlight box is used to indicate a warning message; for example, when a block has not been connected and the worksheet is run, a warning yellow highlight is issued. Running the worksheet demonstration built in the previous section will result in the graphical display of a sine waveform, and the continuous generation of a tone at the



$ 78725,$/
DSKs D/A output. If you have a speaker connected to your DSK then you will hear the output as the worksheet is running.

Running the Worksheet

8VLQJD3DUDPHWHU&RQQHFW
Sometimes it is useful to modify the setup parameters of a block component as the algorithm is actually running on the DSP. VAB provides this capability by allowing you to Parameter Connect one block component to other block components with the capability of adjusting their individual setup parameters. Well add the use of a Parameter Connect to the demonstration worksheet built in the previous sections. First, stop VAB if it is currently running. Next select the Horizontal Slider from the Block Function Selector to place the user control block component onto the worksheet. This particular block has two parts associated with its use: the block component icon, and a horizontal slider window. The slider window will only be displayed if VABs Maximize User Controls menu toolbar button has been selected. The first thing to do is to adjust the setup parameters for the controlling block (i.e. the Horizontal Slider block) component. This is accomplished by double-clicking on the block icon to bring up the blocks setup parameter dialog box. Enter the desired parameter information. For our demonstration we will use the slider to control the Sine blocks frequency parameter. Well want the Sine blocks frequency to range between 0 Hz and the Nyquist rate (half of the Sine blocks sample rate). Sine the Sine block has previously been setup to use a global variable named Sample Rate well use this in the setup of our slider block (as shown below).



9$% 67$57(56 *8,'(

Horizontal Slider Setup Parameters After you have selected the controlling blocks setup parameters you should enter the VAB Parameter Connect mode via the VAB menu or toolbar command. Once you have chosen Parameter Connect mode you can select the Horizontal Slider as the Source block. Note that the source block will be used as the controlling block component. The first data value output from this block will be used to adjust the setup parameters of the block to be controlled. Now select the Sine Generator block component as the block to be controlled. This is accomplished by using a mouse click to select the Sine Generator block icon in the worksheet. Doing this will cause a dialog box to appear. This dialog box lists all of the setup parameters for the Sine Generator block component. For this example select the Frequency parameter name from the dialog box.

Parameter Connecting the Horizontal Slider to the Sine Generator



$ 78725,$/
After you have chosen the Frequency parameter from the dialog box the Horizontal Slider block component will be Parameter Connected to the Sine Generator block. This is indicated by a green line connection between the Horizontal Slider icon and the underside of the Sine Generator block icon. Now you are ready to run the worksheet. Select the Run menu command or toolbar counterpart. The algorithm will begin running as before. However, this time you have direct control over the frequency being generated by the Sine Generator block component. Use the mouse to adjust the slider bar. In addition to seeing the waveform data update you will actually hear the frequency change on a speaker if your DSK is connected to a speaker. This is just a simple example of how to make a parameter connection between two block components. You can use parameter connect logic with the output of real-time block components (native or vector-based) in addition to the PC-side component method demonstrated here.

Performing On-the-fly Adjustments of a Block Components Setup Parameter

8VLQJ(GLW&XW&RS\3DVWH8QGR
The VAB Edit commands are used to cut, copy, and paste block components in a worksheet. You can quickly duplicate a single block or group of blocks (with line connections intact) by using the edit commands Copy and Paste. An Undo command is also provided to reverse the last edit menu commands action. You can select any object in a VAB worksheet by highlighting it with the mouse. You can do this by selecting the objects individually (if you hold the Ctrl key down while clicking you can



9$% 67$57(56 *8,'(


select more than one object), or by selecting a group of objects (hold the left mouse button down while dragging a target window around the objects in question). When an object or group of objects is highlighted you can use the VAB Edit Cut/Copy/Paste/ Undo commands. Use of these commands will make it easier to design your worksheets.

8VLQJ+LHUDUFK\LQD:RUNVKHHW
Hierarchical design is allowed within the VAB environment. This provides for a worksheet of block components to be used itself as a block component in a higher-level worksheet. And that higher-level worksheet could in turn be used within an even higherlevel worksheet, and so on. This effectively allows for n-level hierarchical design. You can make a hierarchy worksheet by adding external I/O connections to a worksheet. This is accomplished by using VABs External I/O Options menu command.

Creating a Hierarchy Worksheet with 2 External Inputs, and Selecting 1 External Output You will need to save the hierarchy worksheet before you can use it as its own block component in a new worksheet design. See the next section for information on saving a worksheet.

6DYLQJWKH:RUNVKHHW
When you have finished with a block worksheet you may want to save it for retrieval at a later date. Youll probably find it convenient if you create a special directory to hold your block worksheets. This way, youll know were to find them when you need them.



$ 78725,$/
VAB contains its worksheet examples in the default location of the C:\Program Files\Hyperception\VAB\Examples directory. You can save your worksheets through use of the File menu Save command and Save As... command. When you select either of these commands while working with an unsaved worksheet a dialog box will appear in which you can provide a name and path for your worksheet. You will not need to provide a filename extension when saving a worksheet. The default filename extension of .LST is used. VAB supports the use of long filenames (see figure below).

Saving a VAB worksheet When saving a Hierarchy worksheet you will need to provide some additional information.



9$% 67$57(56 *8,'(

Saving a Hierarchy Worksheet



$ 78725,$/



9$% 67$57(56 *8,'(

6DPSOHG'DWD$FTXLVLWLRQ 6\VWHPV
A brief overview of some basic Digital Signal Processing concepts for beginners

&KDSWHU

One of the fastest growing areas of high technology today is the field of digital signal processing (DSP): the use of digital computers, microprocessors, specialized signal processing ICs and other digital machines to process physical signals that vary with time or space. The rapidly increasing level of interest in digital signal processing is largely a matter of economics. The proliferation of low-cost, flexible, personal computers has created an unprecedented number of opportunities to develop and apply DSP techniques to areas that can benefit from digital signal analysis. Also the advent of fast, inexpensive digital signal processor ICs has allowed entry into real-time product realms which were once ruled exclusively by analog systems. Additionally DSPs have allowed into product areas formerly served less effectively by slower microprocessors, or those areas with high data rate requirements that are only now economically feasible to develop. The flexibility and power of digital signal processing makes it a tool well suited for dealing with an increasing number of applications. However, no matter what the application, actual real-world signals must be in a form the digital machine can accept before any processing can take place. The form a signal must assume prior to digital signal processing is the subject of sampled-data systems. This section is not meant by any means to be a highly technical or rigorous explanation of sampling theory, but rather to present some very general concepts about sampled data acquisition systems. The interested reader is encouraged to delve into the myriad books on the subjects of sampled data systems and digital signal processing in general.

$6DPSOHG6LJQDO
A sampled signal is usually meant to be a representation of some physical quantity sampled at different points in time. Sampling simply means to measure the signal at an instance in time. For example, an electric signal might be 5 Volts at one instant and 5.1 Volts slightly later. In the real world, or "analog" world, the signal is continuous -- it has a value at every instant in time -- and in this example, is required by the laws of physics to transition continuously from 5 Volts to 5.1 Volts. In the digital world, the signal is defined only at the sample times. Thus the digital machine knows only that the signal was 5 Volts at some point in time and 5.1 Volts some interval later. Obviously, the digital machine could sample the signal faster and faster until its representation of the signal approached the analog version. However, if a digital device were somehow constructed that could sample the signal continuously, it would have no processing time left over to work on the samples it obtained. Thus, the trick is to sample fast enough to obtain a reasonable facsimile of the signal, yet slow enough to have time left over to do some real work (signal processing). When the work to be performed on the signal in order to extract or determine desired results can be done for infinitely long periods, with no loss or skipping of sample values, then the system is said to be operating in "real-time". The slowest rate at which a digital machine can sample the analog signal and still maintain an accurate representation of it has been the subject of much study, and is discussed briefly under "data acquisition", below. In short, the slowest rate depends on the signal itself --



6$03/(' '$7$ $&48,6,7,21 6<67(06


how abruptly it changes, forcing the digital machine to obtain new samples to stay current. Most often, sampling is performed at regular intervals -- the rate of sampling is constant. This is known as "periodic sampling". Periodic sampling greatly simplifies digital analysis, as will soon be apparent (all Hyperception waveform processing functions assume periodic sampling). A sampled signal is usually referred to as a "discrete time sequence", where the sequence values are defined only at the sample times. The sampled signal should not be thought of as having zero value at all other points in time, however -the sampled signal simply is not represented between samples.

'DWD$FTXLVLWLRQ
Data acquisition is a term used to describe the process of "sampling" a signal (capturing a sequence of numbers for a digital machine to work with, as described above) from a realworld system. In many cases, the signal captured represents the physical quantity of electric voltage, for two reasons: 1) Most signals of another type can be readily transformed into voltage, through the use of transducers such as microphones, thermistors, light-sensitive diodes, piezoelectric material, etc. 2) There exist many inexpensive devices that perform periodic time sampling of voltage and are compatible with digital computers. In the field of digital signal processing, the transformation from a continuous analog signal to a discrete sequence is usually referred to as analog-to-digital conversion (A/D conversion). There currently exists a wide variety of A/D systems exists for use with the IBM PC/XT/AT and compatible machines. Usually these systems include a plug-in circuit card and software, such as Hypersignal, that allows convenient data acquisition and storage on disk for subsequent processing and analysis. In the case of Hypersignal software, various real-time processing options are also available, allowing signal modification or information extraction to be performed prior to display or disk storage. In order to set up a data acquisition system it is important to know some information about the signal to be captured. The most important characteristic is the bandwidth of the signal. The bandwidth of a signal refers to the difference between the highest frequency at which the signal can change, and the lowest. Since many signals may not change at all for some length of time (zero frequency is sometimes known as "DC"), bandwidth often refers simply to the maximum signal frequency component. Frequency, an oft-used term in digital signal processing, may be thought of as the rate at which a signal changes values. The maximum signal frequency occurs when a signal changes from its lowest possible value to its highest possible value or vice versa in the smallest amount of time. In mathematical terms, one divided by this minimum time interval is the maximum signal frequency. Thus, frequency is expressed in units called Hertz (Hz), where 1 Hz is 1/1sec. Once the bandwidth of the signal is known, it is possible to determine the minimum rate at which the signal can be sampled (the maximum time interval between adjacent time samples) and still be truly representative of the continuous analog time signal. One may ask what is to be gained by sampling at the minimum rate. There are two very important resources that almost always need to be conserved including processor time between samples for actual digital signal processing work, and processor memory storage for samples. The minimum rate of sampling is known as the Nyquist Frequency (Fs), and



9$% 67$57(56 *8,'(


is related to the inherent bandwidth (BW) in the signal to be sampled. This relationship can be expressed mathematically by the following equation: Fs>>2*BW This rather famous equation states that the continuous signal must be sampled at a rate that exceeds at least twice its bandwidth in order to arrive at an equivalent sampled version of the signal. This relationship is of fundamental importance in setting up a data acquisition system.

$QDORJ6LJQDO%DQG/LPLWLQJ
A logical question might now be: How does one guarantee a limit on the bandwidth of a signal? In fact, most signals are "band limited" prior to analog-to-digital conversion because of the input device from which they originate or the analog circuitry through which they must subsequently travel. In many cases, natural band limiting is in effect because the transducer, or input device, being used has an inherent band limit. Some examples of this might be a microphone that cannot pick up frequencies higher than 20 kHz or a telephone circuit that drops off sharply after 3.5 kHz simply because of the type and length of wire used to carry its signals. Another example would include a lightsensitive diode with a switching speed limited by the molecular structure and length of electron travel path in the silicon used to build it. Sometimes, the A/D system used will provide additional, active band limiting circuitry, which may even provide for an adjustable band limit frequency. Usually, this is done using what is known as a lowpass filter (anti-aliasing filter), which "passes" frequencies below a certain "cutoff frequency" and blocks those frequency components above. Theoretically this cutoff frequency may be sharply defined, but in practice sharp cutoff frequencies are difficult to achieve. Because of this, it is usually a good idea to set the sampling frequency somewhat higher, say 20-30 % higher, than the Nyquist Frequency, to allow for too-high frequencies that are near the specified filter bandwidth but not completely blocked. Once you have an appropriate A/D system producing samples of a band limited signal at a sufficient sampling rate, you have crossed the analog-digital boundary and entered the world of digital signal processing. The information contained in the original continuous analog signal still exists, but in an equivalent form -- one that digital machines and their programs, such as Hyperceptions Hypersignal software products, can deal with.



6$03/(' '$7$ $&48,6,7,21 6<67(06



9$% 67$57(56 *8,'(

9$%0DWKHPDWLFDO 2SHUDWRUV
Descriptions of the VAB Mathematical Operators

$SSHQGL[

This section is intended to serve as a source of information about the mathematical operators that can be used in the VAB environment. These operators give added power to each block component. Contained in this section will be a list of the operators along with descriptions of each one. The operators seen here are usable in any block parameter where numerical data is required. In addition, any global worksheet variables that are defined may also be used in conjunction with these operators. In the example shown below the Maximum Frequency parameter of a Sweep generator block component has been defined to be the Sample Rate divided by a value of 2.0. This produces a result of the swept sine wave sweeping from 0 Hz to the half of the specified Sample Rate. The Sample Rate PC-based global variable can be user-changed without requiring any modifications to the entered mathematical operator. This example is a simple one, but demonstrates how one can make use of a mathematical operator. More complex equations can of course be constructed by the user. It is NOT necessary to use variable names when using the mathematical operators. However, it is sometimes convenient to create Variables that are based upon mathematical operators, and that reference other Variable names.

Example: Max. Frequency is defined to be Sample Rate / 2.0



9$% 0$7+(0$7,&$/ 23(5$7256


Operator + Description Adds two values together Subtracts the second value from the first or in the case of a single operand, it returns the additive inverse of the operand Multiplies two numbers Divides the first value by the second; returns an integer result The result of the modulus operator (%) is the remainder when the first value is divided by the second Logical AND Logical OR The exclusive-OR operator (^) compares each bit of its first operand to the corresponding bit of its second operand. If one bit is 0 and the other bit is 1, the corresponding result bit is set to 1. Otherwise, the corresponding result bit is set to 0 The bitwise-complement (or bitwise-NOT) operator produces the bitwise complement of its operand. The operand must be of integral type. This operator performs usual arithmetic conversions; the result has the type of the operand after conversion. The bitwise shift operators shift their first operand left (<<) by the number of positions the second operand specifies. The bitwise shift operators shift their first operand right (<<) by the number of positions the second operand specifies. Calculates the absolute value Calculates the arccosine Calculates the arcsine Calculates the arctangent Calculates the cosine Calculates the hyperbolic cosine This type cast operator converts a value to a double value This type cast operator converts a value to a float value Calculates the exponential

* / %

& | ^

<<

>>

abs(x) acos(x) asin(x) atan(x) cos(x) cosh(x) (double)x (float)x exp(x)



9$% 67$57(56 *8,'(


(int)x (long)x log(x) log10(x) min(x,y) max(x,y) Pi This type cast operator converts a value to a integer value This type cast operator converts a value to a long value Calculates logarithm Calculates logarithm base 10 Returns the smaller of two values Returns the larger of two values Pi is a mathematical constant equal to approximately 3.1415926535897932. Raises x to the power of y Generates a random number Returns a number rounded to a specified number of decimal places. If decimalplaces is omitted, expression is returned as an integer. Calculates the sine Calculates the hyperbolic sine Calculates the square root Calculates the tangent Calculates the hyperbolic tangent Returns the integer portion of a number

pow(x,y) rand() round(expression [,decimalplaces])

sin(x) sinh(x) sqrt(x) tan(x) tanh(x) trunc(x)

The following operators are only available in those blocks that allow the operator to specify a difference equation to be used. The two blocks that currently support this feature are the Variable Signal Generator and Difference Equation blocks. Operator m Description Ever increasing value, it gets reset when the Reset button is pressed. Range from 0-(Framesize-1) Input channel 0 Input channel 0

n x x1



9$% 0$7+(0$7,&$/ 23(5$7256


x2 y y1 Input channel 1 Output channel 0 Output channel 0



9$% 67$57(56 *8,'(

9$%([DPSOH:RUNVKHHWV
Several Useful Examples

$SSHQGL[

We have included several sample worksheets with VAB to help you learn how to create your own real-time block diagram worksheets for use on the different Texas Instruments DSK platforms. These examples have been grouped into some of the following application areas: DSP, Image, Miscellaneous, Music, Speech, and Telecom. Depending on which DSK platform you installed for, there may be additional or different examples than what is listed here. The interested user is encouraged to load and run the example worksheets that are included with the VAB program. The default installation folder for the example worksheets is C:\Program Files\Hyperception\VAB\Examples The examples that are installed with the different DSK platforms should load and run on the DSK hardware without problem. They should appear similar to the screen shots shown in this Appendix.

'70) *HQHUDWRU

DTMF Generation Example



9$% (;$03/( :25.6+((76

9DULDEOH '70)

Variable DTMF Example

)RXULHU 6HULHV

Fourier Series Example



9$% 67$57(56 *8,'(

+HWHURG\QH ([DPSOH

Heterodyne Example

,,5 (OOLSWLF )LOWHU

IIR Elliptic Filter with Biquads



9$% (;$03/( :25.6+((76

,,5 +LJKSDVV )LOWHU

IIR Chebyshev Highpass Filter Example

,PDJH (GJH 'HWHFWRU

Image Edge Detection



9$% 67$57(56 *8,'(

3LWFK %HQGLQJ

Chord Construction Music Example

7KUHH 2FWDYH &KRUGV

Real-time Chord Generation Music Example



9$% (;$03/( :25.6+((76

5DQGRP 1XPEHU *HQHUDWRU

Random Number Generator Example

5HYHUE

Simple Reverberation Example



9$% 67$57(56 *8,'(

6SHFWUDO ,QYHUVLRQ

Spectral Inversion Example

6TXDUH :DYH *HQHUDWRU

Squarewave Generator Example



Potrebbero piacerti anche