VHDL Upgrading of a TNT2 card 1) Get some JTAG programming device... 1 2) Download the software to program Xilinx Component : IMPACT... 2 3) Virtex s 3 EEPROM s upgrade... 2 4) Spartan s EEPROM upgrade... 6 5) TUC s upgrade... 8 A TNT2 board contains 3 different software pieces: The VHDL code for FPGA s : o Virtex II: the default software used at startup is stored in some 3 EEPROMS. For some tests, another software can also be stored in some other FLASH EEPROM. The TUC software is necessary for putting the code on board and in order to let the Virtex II boot on this secondary software/flash memory. o Spartan. The code of this FPGA is quiet very stable and doesn t change at all. The Spartan FPGA get his software also from some attached EEPROM. Some JTAG programming device is needed in order to put the MCS files (VHDL compiled code) within Virtex or Spartan s attached EEPROMs. The C-like code for the microcontroller chip USB-FX2. This code is the most stable since the beginning of the TNT development. Although a TNT2 board has/needs some PC control software: TUC (Tnt USB Control) or DTUC. During the TNT development, when some features are added or corrected, only 2 of these 4 softwares are concerned and must often/mainly be upgraded together: the Virtex2 VHDL and the TUC that is in charge of communicating with this VHDL software. For example, some older TUC will probably not work properly with a new VHDL code. We will here mainly consider the Virtex and Spartan default software upgrade stored in their default EEPROM s (as the flash memory upgrade is covered by the TNT2 user manual). 1) Get some JTAG programming device Each of the 2 FPGA s (Spartan and Virtex) and their associated EEPROM s are accessible trough some JTAG chain. In order to upgrade one FPGA, you need to connect some specific JTAG programming device at some specific pin s on the TNT2 card (see later). For example, a JTAG compatible MultiLinx download cable from Xilinx can be used, as the one showed in the figure:
The MultiLinx cable has an USB interface, so it can be accessed from any standard PC. The necessary drivers for a correct working operation have to be downloaded from the xilinx website (www.xilinx.com). With the help of this cable, the configuration can be downloaded through the JTAG port contained on the TNT2. The pin assignment mapping can be found in the TNT2 documentation. 2) Download the software to program Xilinx Component : IMPACT In order to load new configuration/program/code into the EEPROM s, the user has to download the full software of Xilinx called ISE WebPACK even if only Impact Software is really useful... The web link is : http://www.xilinx.com/ Search about the software suite called ISE WebPACK. You will probably have to register at the site but the software is free. 3) Virtex s 3 EEPROM s upgrade In order to load the new software for the Virtex, the user must provide with three *.mcs files, named (for example) tnt2_n_virtex2_2.mcs, tnt2_n_virtex2_1.mcs, tnt2_n_virtex2_0.mcs Whatever, the filename used, note that these 3 files must have some numbering like FileName_0.mcs, FileName_1.mcs and FileName_2.mcs Those files are to be downloaded into the three EEPROM memories that stores the configuration of the Virtex II at power on. For this, a JTAG compatible MultiLinx download cable from Xilinx is necessary, as the one showed in the figure:
The MultiLinx cable has an USB interface, so it can be accessed from any standard PC. The necessary drivers for a correct working operation have to be downloaded from the xilinx website (www.xilinx.com). With the help of this cable, the configuration can be downloaded through the JTAG port contained on the TNT2. The pin assignment mapping can be found in the TNT2 documentation. In the figure below, the JTAG port which accesses the Virtex II is the one at the left named J4 (Vcc pin 7) and Spartan II is at the right named J6. The exact JTAG pin mapping is :
The software needed to command the MultiLinx cable is called impact and is part of the standard Xilinx development tools distribution. It can be freely downloaded from the xilinx website (www.xilinx.com) too. Once started, the JTAG chain must be initialized. At this moment, the three EEPROMS along with the Virtex II FPGA should be presented, along with a synoptic of the JTAG chain relying all the components. This is showed in the figure. A different configuration file can be assigned to each component. The file named tnt2_n_virtex2_2.mcs should be assigned to the leftmost EEPROM, the tnt2_n_virtex2_0.mcs should be assigned at right, while the tnt2_n_virtex2_1.mcs must be put in the middle EEPROM. Finally, each of the EEPROMS can be programmed individually, one by one. Any of the previous steps can be executed with the help of the right mouse button.
Note : the current VHDL version actually used by a board can be seen in the TUC s main screen. When upgrading the VHDL, please note the changes. Example : with some older TUC V2.2, the description of the Virtex VHDL loaded appears in the main part : The third line of descriptive text in the upper part of the screen came from the Virtex, in the old version, it is something like RTEXII : minimal version V.0.1FLASH 09/2004. After upgrading the 3 EEPROM s content and the TUC version, some new description text should appear:
The third line of descriptive text in the upper part of the screen came from the Virtex, in the new version, it is something like VII-TNT2-TEST : V.1.0 RAM 03/2006. 4) Spartan s EEPROM upgrade In order to load the new software for the Spartan, the user must provide with only one *.mcs file, named (for example) tnt2_d_spartan2.mcs This file is to be downloaded into the EEPROM memory that stores the configuration of the Spartan II at power on. For this, the procedure is similar to the upgrade of the Virtex II (see chapter 1). The only thing to do is to plug the USB cable linked to the JTAG programmer to the appropriate connector into the TNT2 card (see the 2 following figures).
5) TUC s upgrade Go to the IPHC website http://iphc.in2p3.fr/-tnt-.html and look at the TUC s installation instruction.