Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza


MACHPRO - Programming Software for AMD MACH® JTAG Devices


+ Font mai mare | - Font mai mic


Trimite pe Messenger
MACHPRO - Programming Software for AMD MACH® JTAG Devices


Programming Software

for AMD MACH® JTAG Devices

Version 1.3x

1 Introduction

1.1 Overview

1.2 MACHPRO Basics

1.3 Requesting Assistance

2 Getting Started

2.1 System Requirements

2.2 Installing the software

2.2.1 MS-DOS Version

2.2.2 MS-Windows Version

2.3 Customizing the software

2.3.1 Setup File

2.3.2 JTAG Part Description Files

3 Using MACHPRO (DOS Version)

3.1 Software Options

3.2 Writing a JTAG Scan Path Description File

3.3 Sample MACHPRO Command Line

3.4 Output File Contents

4 Using MACHPRO (Windows Version)

4.1 On-Line Help

4.2 Creating a JTAG Scan Path Description File

4.3 Viewing Output or Result Files

5 Programming Cable

Cable schematic and parts list

Cable Compatibility with MACHPRO

Cable and Board Design Guidelines

Appendix A Error Messages

© Advanced Micro Devices, Inc.

Advanced Micro Devices reserves the right to make changes in its products without notice in order to improve design or performance characteristics.

This publication neither states nor implies any warranty of any kind, including but not limited to implied warrants of merchantability or fitness for a particular application. AMD® assumes no responsibility for the use of any circuitry other than the circuitry in an AMD product.

The information in this publication is believed to be accurate in all respects at the time of publication, but is subject to change without notice. AMD assumes no responsibility for any errors or omissions, and disclaims responsibility for any consequences resulting from the use of the information included herein. Additionally, AMD assumes no responsibility for the functioning of undescribed features or parameters.


AMD, the AMD logo, and MACH are registered trademarks of Advanced Micro Devices, Inc.

MACHPRO is a trademark of Advanced Micro Devices, Inc.

Product names used in this publication are for identification purposes only and may be trademarks of their respective companies.


This manual describes the features in MACHPRO™, an AMD-developed software package for programming and verifying MACH parts with JTAG circuitry through the JTAG test pins. MACH JTAG devices also include five volt programming capability. This combination gives you the ability to program MACH devices in-circuit through a cable driven by an IBM-PC compatible parallel port.

1.1 Overview

In 1986, a group of companies known as the Joint Test Action Group (JTAG) began working on a proposal for standardizing boundary scan testability. This proposal was presented to the Institute for Electrical and Electronic Engineers (IEEE) and in 1990 became accepted as IEEE Std. 1149.1. This standard deals with how boundary scan testability should be implemented to be compliant. Some of the areas it covers include the design and implementation of the boundary scan register, the Test Access Port (TAP) through which JTAG is controlled, and the TAP controller, a synchronous, finite state machine. The standard also provides instructions which must be included in any implementation of JTAG and optional instructions which are not required. The JTAG standard also allows for additional instructions defined by the device manufacturer as long as those instructions do not conflict with IEEE Std. 1149.1.

The Test Access Port used in the MACH devices includes the four mandatory pins, Test Data In (TDI), Test Data Out (TDO), Test Mode Select (TMS), Test ClocK (TCK), along with the optional reset pin, TRST*. TRST* is an active low pin as denoted by the *. An additional programming pin is needed to program, erase, or verify a device. This pin is ENABLE* and is not included as part of the TAP. All of these pins are dedicated as required by the initial version of the standard. Supplement A to the standard removed this original rquirement so that now the TAP can essentially be turned on or off.

The MACH implementation of JTAG includes all of the mandatory instructions, three of the optional instructions and twelve manufacturer defined instructions. The mandatory instructions include EXTEST, SAMPLE/PRELOAD, and BYPASS. EXTEST is basically used for connectivity tests. SAMPLE/PRELOAD is used to both preload and observe the boundary scan register. The BYPASS instruction is used to remove a part from a scan path by placing a one bit register between TDI and TDO. The optional instructions include IDCODE, USERCODE, and HIGHZ. IDCODE is used to obtain the manufacturer’s identification code for the device. The USERCODE instruction will read back a user-specified identification code and the HIGHZ instruction will place all I/Os into a high impedence state. The manufacturer defined instructions provide all of the instructions needed to erase, program, verify and secure MACH devices. Additional instructions allow the user to preload and/or observe all of the macrocell registers in a MACH device.

1.2 MACHPRO Basics

You create an ASCII text file called a chain file which describes how JTAG parts are connected in a serial JTAG chain on your board. MACHPRO reads this file and generates the necessary control signals to program the MACH JTAG devices on your board through the PC parallel port. You can use any CPLD design environment which generates JEDEC-standard programming files for the MACH JTAG parts.

After programming the MACH devices, you can use 3rd-party JTAG or boundary scan testing software to perform in-circuit or static functional testing to detect board manufacturing process faults.

1.3 Requesting Assistance

A list of error messages, causes, and possible corrective actions is provided in Appendix A. If the messages do not provide sufficient information to fix the problem, please call the following support numbers or your local AMD sales office for assistance.

Corporate Applications Hotline

1-(800) 222-9323 (8:00 am-5:00 pm PST)

1-(408) 749-5703

European Corporate Applications

UK 44-(0)256-811101

France 0590-8621

Germany 0130-813875

Italy 1678-77224

Getting Started

Make a copy of the master disk and install from the copy. If the copy becomes unusable for any reason, you can recopy from the master disk and repeat the installation process.

2.1 System Requirements

MACHPRO requires the following system configuration:

• an IBM-PC or PC-compatible computer

• MS-DOS 3.x and later

• MS-Windows 3.1 or later (if installing the Windows version of MACHPRO)

• 512K of system RAM

• one parallel port

• two Mbytes of disk space

Disk space requirements will vary with the number and size of the MACH JTAG parts in the chain. Two Mbytes of disk space is enough to hold the JEDEC fuse maps and programming verification results of four MACH465 devices.

Some PC systems have software keys connected to the parallel port. Please remove these keys before using MACHPRO.

2.2 Installing the software

MS-DOS Version

If this software is to be used as a stand-alone package in the MS-DOS operating system environment, create a directory for MACHPRO and switch to that subdirectory. Run the JINSTALL.BAT program on the MACHPRO program disk by typing A:JINSTALL. The install batch program will copy MACHPRO.EXE and MACHPRO.STF to the directory you just created and will also make a DATAFILE subdirectory containing the JTAG data files. After running JINSTALL, customize MACHPRO by editing the program configuration or setup file MACHPRO.STF.

MACHPRO is also included in AMD's MACHXL design package . The MACHXL install program will ask you to specify the parallel port the programming cable is connected to and will automatically modify the MACHPRO setup file. All of the files will be placed into the ..machxlexe directory.

MS-Windows Version

MACHPRO is also available as a Windows 3.1 program. Please make sure that you have Windows 3.1 or a later version already installed. To install the Windows version of MACHPRO (ie., WMACHPRO), perform the following steps:

1. If you are in Windows; choose Run from the File menu and type a:setup.exe. If you are in DOS, type win a:setup.exe.

2. The setup program will prompt you to specify a subdirectory name for this program.

3. The setup program will copy the necessary files to the destination subdirectory on your hard disk, and will create a Windows program group and MACHPRO icon for you.

4. After installation, start the program by double-clicking on the WMACHPRO icon.

2.3 Customizing the software

MACHPRO reads the setup file MACHPRO.STF to determine where to find the JTAG data files, and what parallel port to use. This file must be in your current working directory. You can use any word processor or text editor that can read and write ASCII text files to create and edit this file.

If you have installed the Windows version, the setup program will automatically setup the files for you. If you have to change the WMACHPRO setup, you can change the settings by choosing MACHPRO Setup from the program's File menu.

If MACHPRO was installed using the MACHXL installation program, then it is not necessary to modify this file. You can include comments in the setup file by preceding every comment line with a semicolon.

Setup File

A sample MACHPRO.STF file may look as follows:

;==! 08/10/93: MACHPRO setup/startup file. This file should be

;==! in the user's current directory. The following fields are

;==! supported:

DEVICE_DATA = D:jtagwork ;

PORT = lpt1 ;

;==! - DEVICE_DATA specifies an alternate directory for MACHPRO to

search when looking for the BSD and other JTAG data files.

Note that the directory name should end with a slash and


;==! - PORT will specify the communications port to send and receive

programming data from.

device_data = d:jtagdatafile;

port = lpt1;

The device_data keyword directs MACHPRO to the directory containing the JTAG part description files. If this field is not specified, MACHPRO will look for the files in your current directory.

MACHPRO will use the parallel port specified by the port keyword. For DOS systems, there are usually a maximum of three parallel ports allowed and are labeled LPT1 to LPT3. If this field is not specified, MACHPRO will use LPT1. MACHPRO will issue a warning if the specified parallel port is not installed.

JTAG Part Description Files

There are two JTAG data files for every MACH JTAG part: a BSDL file (MACHXXX.BSM) and a JTAG Data File (MACHXXX.JDF). The BSDL file contains JTAG boundary scan information for the part, and the JDF contains device programming information for MACHPRO. These files should not be modified.

Using MACHPRO (DOS version)

MACHPRO reads a scan chain file which describes the JTAG parts serially linked in your system, along with the operations to perform on each part in the chain. You can include non-MACH JTAG parts in this scan file, but they will be put into BYPASS mode because MACHPRO will only operate on MACH JTAG devices.

3.1 Software Options

To obtain a list of valid MACHPRO options, just type the program name at the command prompt:

C:> machpro

Usage: machpro -i <scan file> [-z X] [-c|-u]

-z X = X is the sum of the following actions selected:

3 = display status messages

8 = do all operations even if some are unsuccessful

32 = retain programming even if verify fails

-c = condense JEDEC map for programming

-u = use condensed JEDEC map

You should supply a scan file to MACHPRO. This text file contains a description of the JTAG chain and the operations to be performed on the parts in that chain. Note that MACH and non-MACH JTAG parts can be included in this chain.

The X value in the -z X command line option is a 16-bit integer where each bit controls a different program operating mode. The different modes are:

xxxx xxxx xxxx xx11 = display status messages; to turn this

(3) on, specify a value which sets bit 0

and 1 to 1 (e.g.; decimal 3)

xxxx xxxx xxxx 1xxx = do all operations even if some

(8) are unsuccessful

xxxx xxxx xx1x xxxx = retain programming even if verify

(32) fails

To activate multiple MACHPRO operating modes, specify an X value which is the sum of the modes to turn on. For example, to display status messages and to retain programming even if program verification is unsuccessful, specify an X value of 35 (3 + 32). The other bit positions are reserved for AMD use.

MACHPRO will normally terminate processing when an error occurs while processing a part in the JTAG chain. By adding 8 to the X value, MACHPRO will inform the user that an error has occurred, but will continue processing the remaining parts in the chain.

The -c and -u flags are intended for use in high-volume programming environments. After all the designs in a JTAG chain file have been debugged thoroughly, run MACHPRO with the -c flag to convert the JEDEC maps used by the parts in the chain into condensed programming data files. The JEDEC maps being converted must adhere to the JEDEC 3B format. The resulting converted JEDEC maps will have the file extension '.CJF' (Condensed JEDEC Files).

Run MACHPRO with the -u flag to use the CJF files. MACHPRO will execute faster because it reads the programming data files and programs the parts without having to do any JEDEC conversions.

The -z, -c, and -u flags are optional.

Inside MACHXL, the MACHPRO programming software is invoked by choosing the menu item DOWNLOAD>PROGRAM VIA CABLE. You will then have the option of either editing the Scan Path Description file or programming the device. If you choose to program the device, a list of options similar to the ones included above will be given in the form of selections which can be individually set.

3.2 Writing a JTAG Scan Path Description File

A JTAG scan path description file describes a chain of JTAG parts on your board that have their TDI and TDO pins connected serially, and the operations to be performed on each part in the chain. The first part in the chain has its TDI pin connected to the board interface, and the last part in the chain supplies the TDO pin to the board interface.

A JTAG chain file contains the following fields for each part in the chain:

['Part_ref'] Part_type act IR jed_file / [-s 1] [-s 2] -f output -o ;

PART_REF: An optional field identifying the part being processed.

PART_TYPE: The device part number (eg., MACH445, MACH465). If the part is not a MACH JTAG part, then MACHPRO will issue a warning, and you should specify the BYPASS action for this part.

act: This field specifies the operation/action to perform on this part. ACT should be one of the following:


program and program verify only


program verify only


read program contents and create the JEDEC file specified in the JED_FILE field


get the USERCODE


get the IDCODE


no action; part will be placed in BYPASS mode


erase part (I/O pins will be put in tristate mode)

If no action is specified for a part (ie., it is put into BYPASS mode), then just specify the instruction register field length and move on to the next part description.

IR: Instruction register field length. All MACH4xx devices have 6-bit instruction registers. Look in the respective data books for the JTAG instruction register widths of non-MACH JTAG devices in the chain.

JED_FILE: JEDEC file name used when programming and verifying, and is a file written to when reading the contents of a MACH JTAG device. JEDEC files are produced by development tools such as AMD's MACHXL software. If the JEDEC file contains functional vectors they will be ignored.

/: The slash separates the required fields and the manufacturer-specific options. The slash is required for MACH JTAG parts even if there are no manufacturer's options.

-s 1, -s 2: Optional field instructing MACHPRO to program security fuses 1 and/or 2. Security fuse 1 removes the ability to read out the JEDEC pattern programmed into the part. Security fuse 2 removes everything security fuse 1 does along with the ability to preload and observe the macrocell registers. These security fuses can only be erased by erasing or reprogramming the entire device.

-f output: The output file to record results of the operation performed on the part. If this file is not specified, MACHPRO will automatically create one using the JED_FILE name but with the '.OUT' extension.

-o : An optional field indicating the state the IO pins should be in when programming. 0 and 1 mean that the IO pins will be driven LOW or HIGH, respectively. If X is selected, then the output/IO pins will be in an unknown state. The default is Z (pins tri-stated). During programming, some devices can only set their IO pins to tristate; refer to the device data sheet for more information.

For DOS version only: If you want to specify the state of each output/IO pin individually in the part being programmed, then specify the part’s output/IO vector using -o v(n), where n is a vector defined later in the same chain file. Note that the specified pattern will only be activated when programming that device; the other parts will have their IO pins set to the normal operating state.

The format of the programming output vector is:


where N is a unique vector number in this file, M is the size of the vector corresponding to the number of pins in the device, and B is the value for each of the M pins. The ‘+’ and ‘*’ symbols are required at the beginning and end of the vector.

You can have multiple programming output vectors in a file; they do not have to be in sequential order, but they each have to have a unique vector number.

You can have more programming output vectors than are actually used in the chain file.

You can have 5 vectors defined in a chain file with only 2 parts. If you need to use a different output vector, just change the number N in “-o v(N)” to one of the 5 vector numbers.

A file can have programming output vectors of different sizes.

If you have a chain file with a MACH445 (100 pins) and a MACH465 (208 pins), then you can have 2 vectors with vectors 100 and 208 elements long.

Each vector element B can be either L, H, X, Z to set the output or IO pin Low, High, don’t care, or tristate, respectively.

Input pins on the device should be set to X

Vcc and GND pins are set to N (ie., do not set this pin to anything)

You can put comments in between vector elements to keep track of pin numbers

Example: In the following chain file, 2 output/IO vector patterns for MACH445s are defined at the end of the file. When the first part is being programmed, the IO pins will be set to the states defined in vector 5, while the 2nd device will have its IO pins in the normal operating mode. Only when programming the 2nd device will the IO pins be set to the pattern defined by vector 6.

;==! Test file which programs and pattern verifies two MACH445s

;==! with the same JEDEC file. Also programs the two security fuses,

;==! and writes the results to files ORIG_0.OUT and ORIG_1.OUT.

;==! 08/18/94: To set the state of the IO pins individually while

programming, use '-o v(n)' where n specifies a vector

defined later in the same chain file. 'n' will be

preceded by a '+' sign, followed by the number of pins in

the device (eg., 100 for the MACH445), and then the state

of all the pins. Use H/L/ for the IO pins and leave the

inputs pins as X. Anything after a ';' to the end of

the line is considered a comment.

'part1' MACH445 p 6 pattern1.jed / -s 1 -s 2 -o v(5) -f orig_0.out;

'part2' MACH445 p 6 pattern5.jed / -s 1 -s 2 -o v(6) -f orig_1.out;

;==> Use comments to keep track of pin numbers

NNXX ; pins 1 to 4 (GND, GND, TDI, I5)

HHHHHHHH ; pins 5 to 12 (IO pins B7 to B0)

XNNNNX ; pins 13 to 18 (I0, Vcc, Vcc, GND, GND, I1)

HLLHLLLL ; pins 19 to 26 (IO pins C0 to C7)

XXNN ; pins 27 to 30 (TMS, TCK, GND, GND)

HHHHHHHH ; pins 31 to 38 (IO pins D7 to D0)

NNNN ; pins 39 to 42 (Vcc, GND, GND, Vcc)

HHHHHHHH ; pins 43 to 50 (IO pins E0 to E7)

NNXX ; pins 51 to 54 (GND, GND, ENABLE, I2)

HHHHHHHH ; pins 55 to 62 (IO pins F7 to F0)

XNNNNX ; pins 63 to 68 (I3, Vcc, Vcc, GND, GND, I4)

HHHHHHHH ; pins 69 to 76 (IO pins G0 to G7)

XXNN ; pins 77 to 80 (TRST, TDO, GND, GND)

HHHHHHHH ; pins 81 to 88 (IO pins H7 to H0)

NNNN ; pins 89 to 92 (Vcc, GND, GND, Vcc)

HHHHHHHH * ; pins 93 to 100 (IO pins A0 to A7)

NNXX ; pins 1 to 4 (GND, GND, TDI, I5)

LLLLHHHH ; pins 5 to 12 (IO pins B7 to B0)

XNNNNX ; pins 13 to 18 (I0, Vcc, Vcc, GND, GND, I1)

HHHHLLLL ; pins 19 to 26 (IO pins C0 to C7)

XXNN ; pins 27 to 30 (TMS, TCK, GND, GND)

HHHHHHHH ; pins 31 to 38 (IO pins D7 to D0)

NNNN ; pins 39 to 42 (Vcc, GND, GND, Vcc)

HHHHHHHH ; pins 43 to 50 (IO pins E0 to E7)

NNXX ; pins 51 to 54 (GND, GND, ENABLE, I2)

HHHHHHHH ; pins 55 to 62 (IO pins F7 to F0)

XNNNNX ; pins 63 to 68 (I3, Vcc, Vcc, GND, GND, I4)

HHHHHHHH ; pins 69 to 76 (IO pins G0 to G7)

XXNN ; pins 77 to 80 (TRST, TDO, GND, GND)

HHHHHHHH ; pins 81 to 88 (IO pins H7 to H0)

NNNN ; pins 89 to 92 (Vcc, GND, GND, Vcc)

HHHHHHHH * ; pins 93 to 100 (IO pins A0 to A7)

Sample MACHPRO Command Line

PROJECT1.CHN is a JTAG chain file with 6 JTAG parts:

;==! PROJECT1.CHN: JTAG Chain description file

;==! There are 6 parts in this chain: 4 MACH465s with

;==! an Am29240 and one non-AMD JTAG part between the

;==! first and second MACHs. The Am29240 and the

;==! non-AMD JTAG part are put into BYPASS mode.

;==! Each part description must end with a semi-colon,

;==! and comments can be put in the scan/chain file

;==! by preceding it with a semi-colon.

;==! No manufacturer's options, but still requires the '/'

'Part_U0' MACH465 v 6 eu_clk12.jed / ;

'Part_R0' am29240 n 6;

'Part_R1' X_jtag n 6; Labels are optional

'Part_U1' MACH445 P 6 design3.jed / -s 1;

'Part_U2' MACH465 N 6 ; Bypass this MACH JTAG part

'Part_U3' MACH465 P 6 design1.jed / -f a_label.out;

To process this JTAG chain file, type:

C:work_dir> machpro -i project1.chn -z 3

MACHPRO will perform the following operations specified in PROJECT1.CHN:

verify the pattern in PART_U0 (device MACH465) against the JEDEC file EU_CLK12.JED; since a result file was not specified with the -f option, verification results will be written to EU_CLK12.OUT

bypass PART_R0 (Am29240) and PART_R1 (any JTAG part)

program and verify PART_U1 (MACH445) with the pattern in DESIGN3.JED and also program security fuse 1; since a result file was not specified, program and verification results will be written to a file called DESIGN3.OUT

bypass PART_U2 (another MACH465)

program and verify PART_U3 (MACH465) with the pattern in DESIGN1.JED and send the results of the operation to the file A_LABEL.OUT.

The -z 3 option will instruct MACHPRO to display status messages on your monitor. If an operation is unsuccessful (e.g., PART_U0 did not verify), then the program will stop immediately. To perform all specified operations regardless of success, use the -z 11 option.

MACHPRO will read the part IDCODE and compare it with the IDCODE of the device specified before performing a programming or verification operation. If it does not match, MACHPRO will issue a warning message and you can force the program to continue when it prompts you. If you use the -z 11 option, MACHPRO will skip this device check.

3.4 Output File Contents

The contents of a part's output file will depend on the action specified in the chain file. If programming verification is specified, MACHPRO will read the pattern in the part, compare it with the user-specified JEDEC file, and write the results to the output file. A sample output file after programming verification looks as follows:

* Tue Oct 12 16:13:11 1993

JTAG Design [firstmach] Part [d:jtagdatafilemach465.bsm]

=> Verify fuse data in part against JEDEC map [eu_clk12.jed]

Key: - = read LOW/0 value from part, but JEDEC map specified a HIGH/1

+ = read HIGH/1 value from part, but JEDEC map specified a LOW/0

L0000000 -000 1001 1111 11-- ---- ---- ---- ---- ---- ---- *

L0000072 1111 -111 1110 1111 1111 ---- ---- ---- ---- ---- *

L0000144 ---- ---- ---- ---- ---- 100+ ++++ ++++ ++++ ++++ *

L0000216 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- *

As described in the key section, mismatched bits are replaced by - or + in the output file to indicate whether they should have been 0 or 1 in the part to match the pattern in the JEDEC file.

If the operation specified is to get the ID or USER codes, then the output file will look as follows:

* Tue Oct 12 16:43:25 1993

JTAG Design [fifth_mach]

Part [d:jtagdatafilemach465.bsm]

User code :

=> 0000 1111 0000 0101 1110 0101 0000 0100

The usercode is specified by the user and may be used to identify the pattern programmed into the part. On the MACH465, you have 32 user code bits.

The IDCODE is a fixed, part-specific pattern. MACHPRO will read this pattern and compare it with the IDCODE for the device you specified in the chain file. A warning is issued if they do not match.

* Tue Oct 12 16:43:25 1993

JTAG Design [sixth_mach]

Part [d:jtagdatafilemach465.bsm]

Part ID code:

=> 0000 0000 0000 0000 0000 0000 0000 0000

0000 0111 0110 0000 1000 0000 0000 0011 <== expected

< Data does not match >

Using MACHPRO (Windows Version)

WMACHPRO has the same capabilities as the DOS version, but includes several user-friendly features which allow you to easily edit and manipulate JTAG parts in the chain description.

4.1 On-Line Help

WMACHPRO has toolbar buttons at the top of its program window which perform the most common functions. To get information on any of the buttons, position the mouse cursor on any button and click and hold down the left mouse button. A description of the button's function will appear in the bottom status bar. If you do not want to perform the function, drag the mouse away from the toolbar button before releasing it.

You can press the F1 function key anytime to get help, or click on the on-line help button to get more information on using WMACHPRO. Click once on the on-line help icon and the cursor will change into the question mark shape. Position this cursor anywhere in the WMACHPRO window, and click the left mouse button. Help text will be displayed and you can page through it as required.

4.2 Creating a JTAG Scan Path Description File

To start a new chain or scan path description, click once on the document icon. A smaller window will be created, and you can then use the JTAG device editing buttons to add, edit or delete a JTAG device from the chain.

When you add or edit a JTAG device, a dialog box will be displayed in which you can enter the necessary data for the device. You can select a JTAG device from a list box, or if a part is not in the list, you can specify it by entering the name in the space provided. If you specify the device name, you will also have to specify the JTAG instruction register width, which can be obtained from the device's datasheet. MACHPRO processing opcodes are also displayed in another list box, along with all the other information required for the device.

When deleting a device from the chain, WMACHPRO will prompt you to confirm your decision.

If your chain has multiple devices and you need to change the position of a device in the chain, first select the device by positioning the cursor on the device name, and then clicking once with the left mouse button. Then click and hold the left mouse button while dragging the cursor to the new position; the cursor will change shape. Release the left mouse button at the new position to place the selected device.

TDI and TDO port indicators are displayed, along with 'wires' which connect the parts in series in the chain. This gives the user a visual indication of how the parts are connected on the board. Please make sure the order specified in WMACHPRO matches the actual serial connections on the board.

After specifying the JTAG chain, click on the GO button to begin processing the parts in the chain.

If you use the TRST line to asynchronously reset any JTAG device in the chain, then it is necessary to remove any software keys attached to the parallel port and attach the programming cable directly to the parallel port. Click on Project and then Options and deselect the “Software key present” option to ensure proper operation (see Section 5. Programming Cable).

4.3 Viewing Output or Result Files

Result files will be generated for each device processed. You can view these files using the View Results option in the WMACHPRO View menu. Specify the file to view, and the file will be displayed in a window. Use the horizontal and vertical scroll bars to move around the file. Click on the Continue button to return to WMACHPRO.

Programming Cable

The programming cable provides the link between the computer and the scan path. On the computer side of the connection, the cable is plugged into the IBM-PC compatible parallel port specified in the setup file. The scan path connection is made via a ten pin header.

MACHPRO ver 1.3x is designed to work with MACHPRO programming cable rev 2.0 which has a green parallel port connector housing, but can also work with earlier versions of the programming cable (See Cable Compatibility and Design Guidelines Sections 5.2 and 5.3).

Cable schematics and parts list

Figure 1a contains the MACHPRO programming cable schematic. The optional buffers (Figure 1b) shown are not included in the cable provided by AMD. These buffers would be used whenever the cable is longer than the one provided by AMD or when additional hardware protection for the parallel port is desired.

The pinout of the header is shown in Figure 2.

Header Connector (Top View)

Figure 2

Pin 1 - TCK Pin 2 - no connect

Pin 3 - TMS Pin 4 - GND

Pin 5 - TDI Pin 6 - Vcc

Pin 7 - TDO Pin 8 - GND

Pin 9 - TRST* Pin 10 - ENABLE*

AMD recommends the use of DuPont part number 71918-110 as the mate for the header provided on the cable. This is a 10 pin header with polarization and latches to ensure reliable connections.

Cable Compatibility with MACHPRO

The revised cable is backwards compatible with the original cable and will work with MACHPRO versions 1.25 and earlier if the cable is connected directly to the parallel port (ie., no software keys attached) . No changes are required to the customers’ boards or to the DOS MACHPRO command line.

MACHPRO ver 1.3x works with software keys attached to the parallel port by pulsing the parallel port STROBE line which is attached to TRST. You will need the MACHPRO programming cable rev 2.0 for this. Each pulse of the STROBE line places the key into transparent mode and allows the transfer of data through all the parallel port data and control lines.

Cable and Board Design Guidelines

Designers who want to work with a software key attached to their parallel port must use the new cable and software. They must also connect Vcc on their board to pin 6 of the 10-pin cable header. With Vcc connected to pin 6, you must use the MACHPRO programming cable rev 2.0 and not use any earlier versions of the cable.

If a software key is attached to the parallel port, you cannot use the TRST line because it will now be pulsed for every data transfer. If TRST is required or you have boards which already use the TRST line, then you must remove any software key from the parallel port, attach the cable directly to the port, and then do the following:

If you are using the DOS version of MACHPRO, add the “-j 0” option to the DOS MACHPRO version 1.3x command line. For example:

C:> MACHPRO -j 0 -i design.chn -z 3

The “-j 0” option will disable the STROBE pulses and make MACHPRO ver 1.3x compatible with previous versions of MACHPRO.

If you are using WMACHPRO version 1.3x, click on the Project menu and then Options and then deselect the “Software Key present” option to ensure proper operation.

Appendix A  Error Messages

The error messages are arranged in alphabetical order. If you encounter a message that is not in this list, please contact the AMD Corporate Applications Hotline at (800) 222-9323 for assistance.

• Could not access [<filename>]

The software tried to open this file but failed; usually occurs if you have insufficient disk space.

• E/U field has control characters

The E (electrical) or U (user-code) field in the JEDEC file has control characters; check that your PLD development software is generating a valid JEDEC file.

• Exceeded fuse array size [(fuse address):(max fuses)]

MACHPRO is using a fuse address that is greater than the maximum number of fuses in the part.

• Invalid BSD symbol [<string>]

MACHPRO may not recognize the <string> in the BSDL file; call the AMD Applications Hotline to receive the latest version of MACHPRO.

• Invalid JEDEC field qualifier

The software read an unrecognized symbol in the JEDEC file; check that your PLD development software is producing a fuse map compatible with the JEDEC 3B standard.

• Invalid port number [x]

An invalid parallel port number was given in the setup file. For DOS systems, port numbers should usually range from 1 to 3.

• Invalid port [<name>]

An invalid parallel port name was specified; use the name LPTx, where x can be 1 to 3.

• iWidth[<number>]

An invalid instruction register width was given; verify that the width specified in the JTAG chain file is correct.

• JTAG/scan chain is empty

There are no parts to process in the JTAG chain file; warning only

• Memory still allocated [<number>]

Warning message indicating system memory is still allocated by MACHPRO; contact AMD Applications Hotline.


Warning message produced when MACHPRO reads a MACH BSDL file; it only recognizes these 3 boundary scan register types. BSDL file contents are incorrect.

• name exceeds <num> characters

MACHPRO can only handle variable names with 36 characters.

• No BSDL datafile for [<part>]

Could not find a boundary scan file for the specified part.

• Out of memory [x]

Not enough system memory for MACHPRO; may happen if the number of parts in the JTAG chain to be programmed is greater than 12. Modify the chain so that you will only program 8 parts or less at a time. After programming these parts, edit the chain file again and program the other parts.

• Parallel port [LPTn:(addr)] may not be installed

The parallel port specified in the setup file may not be installed; check your system configuration.

• Part does not support 'E/U' field

The JEDEC file specified has E (electrical) and U (user code) fuses, but the MACH JTAG part does not have these fuses; these fields will be ignored.

• Pin state [<char>]

the user should specify a valid pin state for IO pins to be in when programming, the -o field in the JTAG chain file must be either 0, 1, X, or Z.

• Pin [<num>] still driving

MACHPRO is applying a test vector which has an IO pin that the user wants to drive, but the output buffer is not yet disabled (ie., tristated).

• Plug [<pin type>:<pin number>]

The test vector contains an input value for the pin number, but the specified pin cannot be used as an input.

• PointerNULL

MACHPRO is trying to access a NULL pointer; internal program error: contact the AMD Applications Hotline.

• Unknown action code [<char>]

Invalid JTAG action code in the JTAG chain file.

• Unknown field [<symbol>]

MACHPRO does not recognize the symbol in the BSDL file; contact the AMD Applications Hotline.

• Unrecognized option [<char>]

Invalid manufacturer's options; should be either o, s, or f.

• Unsynchronized state machine [state number]

The JTAG state machine is out of sync; internal program error: contact the AMD Applications Hotline

• Vect (vnum): Clock-only pin (num) cannot drive/be tristated

Test vector (vnum) has a L, H, or Z for the clock pin; check that the PLD software is generating correct test vectors.

• Vect (vnum): Incorrect vector size; should have <num> elements

MACHPRO expects each test vector to have the same number of elements as there are device pins. Check that the PLD software can produce vectors in this format.

• Vect (vnum): Input-only pin (<num>) accepts 0/1/X/F/U/D/N

The input pin is being tested as if it were an output; check that your PLD tool is producing the right test vectors

• Vect (vnum): Output-only pin (<num>) cannot be driven

The output pin is being tested as if it were an input; check that your PLD tool is producing the right test vectors

• Vect (vnum): Output-only pin (<num>) cannot be driven/tristated

The output only pin is being tested as if it could be tri-stated; check that your PLD tool is producing the right test vectors

• Vect (vnum): Pin (<num>) is not a logic/clock pin

The device pin <num> is being tested as if it could be used as logic or a clock; check that your PLD tool is producing the right test vectors

• Vect (vnum): Too many symbols in this test vector

The test vector has more symbols than there are device pins; check that your PLD tool is producing the right test vectors.

• Vect (vnum): Unexpected vector termination; should have <num> elements

The test vector has fewer symbols than there are device pins; MACHPRO expects each test vector to have the same number of elements as there are device pins. Check that your PLD tool is producing the right test vectors.

• Vect (vnum): Unknown vector symbol (<char>)

Test vector contains an unrecognized character; check that PLD software is producing correct test vectors.

• [num]: Only 0/1

MACHPRO is expecting a binary value. Your JEDEC file may be corrupted or may be using a new JEDEC file format. In the latter case, please contact the AMD Applications Hotline to get the latest version of MACHPRO.

MACHXL version 1.2 or greater.

Politica de confidentialitate



Vizualizari: 4155
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site