Martin et. al.,
I implemented my own block that produces a trigger signal when a
specific
tag is encountered, and I feed this into the detect port of the HPD
block.
This is an attempt to overcome the tag trigger issues we’ve been having
in
this email chain. The trigger_tag block simply outputs zeros until a
specified tag_key is found, at which point it outputs a 1 on that sample
and then continues outputting zeros. It has the same trigger behavior as
the Schmidt Cox block used to create the detect signal in the OFDM
example.
This has resolved the HPD block freezing issue, however, a new issue has
arisen. Now the block will output the correct header and payload for a
little while, and then randomly start passing the wrong header portion
through, even though the detect signal is still on the correct trigger
point at the input to the HPD block. I confirmed this by comparing the
HPD
port0 input with the HPD port1 input, confirming the detect peeks
correspond exactly with the port0 tags that signify a header start. Even
while the HPD block allows the wrong header portion through, the detect
signal is aligned perfectly with the header start at input0.
If you wouldn’t mind confirming my HPD block settings, I will detail
them
here. I don’t think this could be the issue, because I expect the block
would never work correctly if they were off, but better to be safe. The
input0 type is complex unpacked data. My header is 32 bits long packed.
I
correspondingly set the following:
Header Length (Symbols): 4Items per Symbol: 8
Guard Interval (items): 0
Output Format: Items
IO Type: Complex
Sampling Rate:
Now, to add on to this confusing block, I tried using the following
settings and it worked better than the above settings. However, looking
at
the source code, it makes no sense to me why it should work at all. This
is
because the payload size is calculated by using the packet_length read
off
the message passed in multiplied by the items_per_symbol variable. This
would correspond to a huge payload (12832 in my case, instead of
1288),
yet it works.
Header Length (Symbols): 1Items per Symbol: 32
Using the other possible combination that produces the correct header
length when multiplied together, it does not work for any length of
time.
Header Length (Symbols): 2Items per Symbol: 16
I’m starting to think there is a major bug in the HPD block when used
without the ‘Output Format Symbols’ mode. I say this because this is the
last difference between the OFDM example, which seems to work fine, and
my
own. At this point I’m stuck code diving into the HPD block to see if I
can
figure out what’s going on.
v/r,
Rich
On Wed, May 20, 2015 at 6:27 PM, Richard B. [email protected]