4DSP Support Forum

Products => FMC Products => FMC30RF => Topic started by: kcfarleyswmacb on December 05, 2013, 06:08 PM

Title: What are cid registers?
Post by: kcfarleyswmacb on December 05, 2013, 06:08 PM
4DSP Support:
 
What are cid registers? How is the number of them determined. How are they different from other registers?
 
--------------------------------------------------------------------------------
-- specify libraries.
--------------------------------------------------------------------------------
library  ieee;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_misc.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
--------------------------------------------------------------------------------
-- entity declaration
-------------------------------------------------------------------------------
package cid_package  is
type cid_register_type is array(natural range <>) of std_logic_vector(31 downto 0);
constant nb_cid_registers     :integer := 22;
constant cid_registers :cid_register_type(0 to nb_cid_registers-1):=(
-- REG0 : constellationid<<16|nbrstar
x"00CA0006",
-- REG1 : software build code
x"525307C4",
-- REG2 : firmware build code
x"00000000",
-- REG3 : VersionHI<<8|VersionLO
x"00000001",
-- REG4..6 : star 'sip_cid' {BaseAddress, EndAddress, StarId<<16|StarVersion}
x"00002000",
x"000023FF",
x"00010100",
-- REG7..9 : star 'sip_mac_engine' {BaseAddress, EndAddress, StarId<<16|StarVersion}
x"00000000",
x"00000000",
x"00280100",
-- REG10..12 : star 'sip_i2c_master' {BaseAddress, EndAddress, StarId<<16|StarVersion}
x"00002400",
x"000123FF",
x"00050100",
-- REG13..15 : star 'sip_cmd12_mux' {BaseAddress, EndAddress, StarId<<16|StarVersion}
x"00000000",
x"00000000",
x"00180100",
-- REG16..18 : star 'sip_fmc_ct_gen' {BaseAddress, EndAddress, StarId<<16|StarVersion}
x"00012400",
x"00012401",
x"00430100",
-- REG19..21 : star 'sip_fmc30rf' {BaseAddress, EndAddress, StarId<<16|StarVersion}
x"00012402",
x"00013401",
x"006F0100"
);
end cid_package;
 
 
Title: Re: What are cid registers?
Post by: arnaudNL on December 06, 2013, 07:24 AM
Dear Sir,


You can refer to sip_cid star documentation (SD001). cid_package.vhd is created by StellarIP. StellarIP places stars to a given address by creating this file on the fly during the generation. This is coupled with the CID software module. cid_package.vhd is contained by star sip_cid in the firmware. Sip_cid star is always placed at address 0x2000 by StellarIP.


That way the software does cid_getstaroffset() to retrieve BAR of a star given a star ID (also part of cid_package). cid_package also gets things like firmware ID and so on this is why you can call cid_getconstellationid() and make sure the firmware running is the one expected by your software.


Typically you could see FMC30RFApp is supporting many carriers we can support all this from the same software mostly because sip_cid is in the firmware and always located at 0x2000.


I hope that helps!
Best Regards,
Arnaud

[/size][size=78%]  [/size]