Topic: What are cid registers?  (Read 3796 times)

kcfarleyswmacb December 05, 2013, 06:08 PM

  • Member
  • *
  • Posts: 45
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;
 
 

arnaudNL December 06, 2013, 07:24 AM (#1)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 7110
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]