4DSP Support Forum

Products => FMC Products => FMC150 => Topic started by: bouain on December 18, 2013, 11:07 AM

Title: Cmd_in wormhole of type cmd_in
Post by: bouain on December 18, 2013, 11:07 AM
Hi all,
I use the Zc706 with FMC150.
I found in the document the following information:
Cmd_in_cmdin  Input 
with:
[63..60]  = command word
[59..32]  = address
[31..0]    = data
So, When can I find the information about the configuration of command. Because I think in the reference design the command it's the API use it like GenerateWaveform16. But I want to change this command to VHDL, so I will use it manually .
Any help please?
Mokhtar
Title: Re: Cmd_in wormhole of type cmd_in
Post by: arnaudNL on December 18, 2013, 11:21 AM
Dear Mokhtar,


Check the sip_mac_engine star in the firmware source code, it processes cmd packets coming from the host. You can also check the sip_mac_engine documentation. We do not have specific documentation about wormholes but they are VERY self explanatory if you spend time looking at the source code.


I hope that helps,
Arnaud
Title: Re: Cmd_in wormhole of type cmd_in
Post by: bouain on December 18, 2013, 12:03 PM
Hi Arnaud,
Thank you for your reply.
I can't find the sip_mac_engine or its document. Where can I find it ?
 
Thank you,
Mokhtar
Title: Re: Cmd_in wormhole of type cmd_in
Post by: arnaudNL on December 18, 2013, 03:49 PM
Dear Mokhtar,


Sorry for that I realize you are using the zedboard interface. In this case you can refer to SD167 star description document.


Refering to both chapter 5.3 and the host interface C reference code you should be able to understand what the communication looks like.


The interface between the Zynq fabric and the Arm core is a xilinx streaming FIFO.


Best Regards,
Arnaud
Title: Re: Cmd_in wormhole of type cmd_in
Post by: bouain on December 19, 2013, 12:28 PM
Hi Arnaud,
Yes I read this, but I mean the information about the configuration of command :
Cmd_in_cmdin  Input 
with:
[63..60]  = command word
[59..32]  = address
[31..0]    = data
For example: when I select the DAC0 what is the command corresponds to this to put it in command word, address and data. So, the information about the command when I manually configure it without the API (such as like GenerateWaveform16).
Thank you,
Mokhtar.
Title: Re: Cmd_in wormhole of type cmd_in
Post by: arnaudNL on December 20, 2013, 04:59 AM
Mohktar,


GenerateWaveform16() does not use API, it only creates a waveform in a buffer,


The host software uses addresses obtained using cid_getstaroffset(), these are the address going on the command bus.


You will need to create the list of read/write to be done in order to use the reference design without "life support" and this is not covered by standard technical support; You have the source code and the documentation, the simulation and you can run the host executable.


Best Regards,
Arnaud
Title: Re: Cmd_in wormhole of type cmd_in
Post by: bouain on December 20, 2013, 05:55 AM
Hi Arnaud,
Thank you again for your reply.
I fact, I need only the document that explains the value of command (word and data). What is the value of each commande allows to controle the board and the FMC150? I need just the document.
For example:
[63..60]  = command word =0x01000
[59..32]  = address
[31..0]    = data=0x5500

Thank you,
Mokhtar
Title: Re: Cmd_in wormhole of type cmd_in
Post by: arnaudNL on December 20, 2013, 06:56 AM
Mokhtar,


I am not sure if you don't understand what I am saying, but we don't have that.


What you have is a full reference design (hardware, software and firmware) you can refer to in order to answer such questions. Typically if you would do what I offered you (looking at the host interface source code) you would have seen sip.c and things like STELLAR_OP_READ which is one of the command.


I think you are slightly underestimating the efforts required in order to get such a design in hand. You will need to understand (or at least look at) the source code of both firmware and software in order to do your integration work and you cannot rely on us clearing up every single of your concerns, this is YOUR job.


Best Regards,
Arnaud
Title: Re: Cmd_in wormhole of type cmd_in
Post by: Peter Spear on February 24, 2014, 05:30 PM
I found the following in sipif.h. I think it what you were looking for (at least it was what I was looking for):

/**
 * A read command, we write a read command and receive a packet pack with the value.
 */
#define STELLAR_OPCODE_READ                2            // Host -> Fw   ( Read a register )
#define STELLAR_OPCODE_WRITE            3            // Host -> Fw   ( Write a register )
#define STELLAR_OPCODE_WRITE_ACK        4            // Fw   -> Host ( Ack a register write )
#define STELLAR_OPCODE_WRITE_DATA        5            // Host -> Fw   ( Host is going to send data )
#define STELLAR_OPCODE_WRITE_DATA_ACK    6            // Fw   -> Host ( Ack a data receiving )   
#define STELLAR_OPCODE_READ_ACK            7            // Fw   -> Host ( Ack a register read )
#define STELLAR_OPCODE_READ_DATA        8            // Host -> Fw   ( Host is asking for data)
#define STELLAR_OPCODE_READ_DATA_ACK    9            // Fw   -> Host ( Ack a data receiving )
#define STELLAR_OPCODE_READ_TO_ACK        10            // Fw   -> Host ( Ack a register read in case of timeout on the sip address range )

Peter
Title: Re: Cmd_in wormhole of type cmd_in
Post by: Peter Spear on February 24, 2014, 05:46 PM
Hmm, looks like that was not it. This looks more like it (from 4fm.h)

#define PKT_CMD_MAILBOX                    0
#define PKT_CMD_WRITE                    1
#define PKT_CMD_READ                    2
#define PKT_CMD_QUEUESTATUS                3
#define PKT_CMD_READACK                    4

That matches the codes in cid_stellar_cmd.vhd:

constant cmd_mbx     :std_logic_vector(3 downto 0) :=x"0";
constant cmd_rd      :std_logic_vector(3 downto 0) :=x"2";
constant cmd_wr      :std_logic_vector(3 downto 0) :=x"1";
constant cmd_rd_ack  :std_logic_vector(3 downto 0) :=x"4";

Peter
Title: Re: Cmd_in wormhole of type cmd_in
Post by: arnaudNL on February 25, 2014, 08:55 AM
Dear Peter,


That is correct. The sipif layer having many more command supported. The 4FM.h has the actual command bus commands. Note that we generally only supports PKT_CMD_WRITE and PKT_CMD_READ the others were more legacy/custom project specifics.


Best Regards,
Arnaud
Title: Re: Cmd_in wormhole of type cmd_in
Post by: arnaudNL on June 13, 2014, 07:23 AM
This topic is being closed because the issue is considered as resolved by 4DSP. Feel free to create a new topic for any further inquiries.