Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   Related Pages  

/var/pcce/usera/hill/rcc_1.2/RodDaq/RodCrate/RodVmeAddresses.h

Go to the documentation of this file.
00001 //File: RodVmeAddresses.h
00002 
00003 #ifndef SCTPIXELROD_RODVMEADDRESSES_H 
00004 #define SCTPIXELROD_RODVMEADDRESSES_H
00005 
00006 /*!
00007  * RodVmeAddresses.h is a wrapper around the testBench C code header file
00008  * vmeAddressMap.h. This wrapper adapts things to appear more like C++ and to
00009  * declare things const so the compiler can catch attempts to change them in the
00010  * code.
00011  *
00012  * @author Tom Meyer (meyer@iastate.edu) - originator
00013  */
00014 
00015 namespace SctPixelRod {
00016 
00017 #include "../CommonWithDsp/processor.h"
00018 #include "../CommonWithDsp/vmeAddressMap.h"
00019 
00020 // Give some shorter aliases to the HPI registers
00021 const unsigned long HPIC = HPI_CONTROL_REG_REL_ADDR;
00022 const unsigned long HPIA = HPI_ADDRESS_REG_REL_ADDR;
00023 const unsigned long HPID_AUTO = HPI_DATA_REG_WITH_AUTOINC_REL_ADDR;
00024 const unsigned long HPID_NOAUTO = HPI_DATA_REG_WITHOUT_AUTOINC_REL_ADDR;
00025 
00026 //May be able to remove this later.
00027 const long MAX_HPID_WORD_ELEMENTS = 0x3FFFE; // 32b words - 20 bits available for address autoincrement => hwil
00028 
00029 // Flash Registers
00030 const unsigned long FLASH_ADDR_WRITEDATA_REG = 0x00c00010;
00031 const unsigned long FLASH_CONTROL_REG = 0x00c0000c;
00032 
00033 //FPGA Program/Reset Manager - 32bit size registers - valid only low 8 bits! 
00034 const unsigned long FPGA_CONTROL_REG_REL_ADDR[8] = {
00035   FPGA_CONTROL_REG_0_REL_ADDR, // fpga cnfg control reg
00036   FPGA_CONTROL_REG_1_REL_ADDR, // fpga rst control reg
00037   FPGA_CONTROL_REG_2_REL_ADDR, // vme dsp rst control reg
00038   FPGA_CONTROL_REG_3_REL_ADDR, // flash control reg
00039   FPGA_CONTROL_REG_4_REL_ADDR, // flash address(23:0)+data(31:24) reg
00040   FPGA_CONTROL_REG_5_REL_ADDR, // 
00041   FPGA_CONTROL_REG_6_REL_ADDR, // 
00042   FPGA_CONTROL_REG_7_REL_ADDR  // 
00043 };
00044 
00045 // FPGA Registers
00046 const unsigned long FPGA_STATUS_REG_REL_ADDR[8] = {
00047   FPGA_STATUS_REG_0_REL_ADDR, // fpga cnfg status reg
00048   FPGA_STATUS_REG_1_REL_ADDR, // fpga reset status reg
00049   FPGA_STATUS_REG_2_REL_ADDR, // vme dsp reset status reg
00050   FPGA_STATUS_REG_3_REL_ADDR, // fpga init status reg
00051   FPGA_STATUS_REG_4_REL_ADDR, // flash status reg
00052   FPGA_STATUS_REG_5_REL_ADDR, // halt status
00053   FPGA_STATUS_REG_6_REL_ADDR, // ROD Serial Number
00054   FPGA_STATUS_REG_7_REL_ADDR  // flash read data reg
00055 }; 
00056 
00057 // Define flash memory addresses, values, and bits
00058 const unsigned long MDSP_FLASH_BOTTOM = BOOT_ROM_BASE;
00059 const unsigned long FPGA_FLASH_0_BOTTOM = 0xE00000;
00060 const unsigned long FPGA_FLASH_1_BOTTOM = 0xE80000;
00061 const unsigned long FPGA_FLASH_2_BOTTOM = 0xF00000;
00062 const unsigned long FLASH_MEMORY_SIZE = 0x80000;      // 512 kB
00063 const unsigned long FLASH_SECTOR_SIZE = 0x1000;       // 4 kB
00064 const double FLASH_TIMEOUT = 5.0;                     // in seconds
00065 const unsigned long CHIP_ERASE_TIME_MS = 100;
00066 const unsigned long SECTOR_ERASE_TIME_MS = 25*2;   // 25ms times 2 for safety
00067 const unsigned long READ_HANDSHAKE_BIT = 0;
00068 const unsigned long WRITE_COMMAND_HANDSHAKE_BIT = 1;
00069 const unsigned long WRITE_DATA_HANDSHAKE_BIT = 2;
00070 
00071 } //  End namespace SctPixelRod
00072 
00073 #endif // SCTPIXELROD_RODVMEADDRESSES_H

Generated on Mon Mar 3 11:16:17 2003 for SCTPixelDAQ by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001