Hi Heystek,

You would need to increase the BRAM depth to one that can store all your
data - currently, because the address width is 10, it can only store 2^10
(1024) points and you're trying to write 6020. So you would need to
increase the address width to an appropriate size.

Morag

On Thu, Nov 25, 2021 at 8:05 PM Heystek Grobler <heystekgrob...@gmail.com>
wrote:

> Hey Morag
>
> The BRAM has an address width 10 and a data width of 32.
>
> Should I increase it?
>
> Heystek
>
> On 25 Nov 2021, at 19:52, Morag Brown <mbr...@sarao.ac.za> wrote:
>
> Hi Heystek,
>
> How big is the BRAM in your design? Does it have enough space to
> accommodate the amount of data you're trying to write to it?
>
> Morag
>
> On Thu, Nov 25, 2021 at 6:59 PM Heystek Grobler <heystekgrob...@gmail.com>
> wrote:
>
>> Hey Morag and Jack
>>
>> Thank you for the suggestions.
>>
>> I played around a little bit. if I create the sine wave the same as you
>> Morag, then it works. I am able to write it to the bram, read it back from
>> the bram, unpack it and get the same signal back. As soon as I use the sine
>> wave that I require for my application, then it breaks again.
>>
>> Here is what I achieved using your sine wave Morag (ps iI changed my
>> design to 32 bit):
>>
>> <Screenshot 2021-11-25 at 18.49.04.png>
>>
>>
>> <Screenshot 2021-11-25 at 18.49.34.png>
>>
>> <Screenshot 2021-11-25 at 18.49.58.png>
>>
>> When I use my sign wave, then it does not work:
>>
>> <Screenshot 2021-11-25 at 18.55.45.png>
>>
>> <Screenshot 2021-11-25 at 18.56.02.png>
>>
>> <Screenshot 2021-11-25 at 18.56.14.png>
>>
>> <Screenshot 2021-11-25 at 18.56.43.png>
>>
>> The only thing that changed is the sine wave. is there something that I
>> am missing?
>>
>> Thanks for the help! I really appreciate it!
>>
>> Heystek
>>
>>
>> On 25 Nov 2021, at 14:57, Morag Brown <mbr...@sarao.ac.za> wrote:
>>
>> I think that's because the functions used in both *In[15]* and *In[16]* do
>> the same thing. See the screenshots below to see what I mean. So you
>> construct the raw bytes data in *In[15]* and then try to pack that as an
>> integer in *In]16}*, which won't work because *struct.pack('>i',A_y) *expects
>> data of type *int* while you're actually giving it data of type bytes.
>> To pack the data using *struct.pack()* you would need to pass it an *int* (or
>> array of *ints* and tell it how many points you're packing). I think
>> (someone please correct me if I'm wrong) that you only need to do one or
>> the other to get the correct raw data to be written to BRAM.
>>
>> <Screenshot from 2021-11-25 14-55-29.png>
>> <Screenshot from 2021-11-25 14-55-39.png>
>>
>> I also see you're scaling up by 2^31, but I think your BRAM is data width
>> is 16 bits, so you'd likely want to scale by 2^15?
>>
>> Morag
>>
>> On Thu, Nov 25, 2021 at 12:46 PM Heystek Grobler <
>> heystekgrob...@gmail.com> wrote:
>>
>>> Hey Jack and Morag
>>>
>>> thank you for the advice and help! i am still getting errors and is
>>> stuck. Below is the new errors:
>>>
>>> <Screenshot 2021-11-25 at 12.41.43.png>
>>>
>>> <Screenshot 2021-11-25 at 12.42.53.png>
>>>
>>> I have also attached the new script I am working on.
>>>
>>> Could it be that I am generating the sine wave incorrectly? I have about
>>> 600 000 000 points that I am working with.
>>>
>>> I keep getting “cannot convert argument to integer when running
>>> struct.pack.
>>>
>>> Thanks for the help!
>>>
>>> Heystek
>>>
>>>
>>> On 23 Nov 2021, at 14:31, Jack Hickish <jackhick...@gmail.com> wrote:
>>>
>>> Hi Heystek,
>>>
>>> Assuming your BRAM is set for 32-bit wide, you probably want to be
>>> writing the values with 31 bits below the binary point -- i.e. normalized
>>> to the range [-1, 1)  (aka simulink FIx32_31). In this case the packed
>>> values would be:
>>>
>>> struct.pack('>i', int(floating_point_sine_value * 2**31))
>>>
>>> Though, be careful, because +1.0 isn't included in this number
>>> representation (the maximum is 1 - 2**-31) , so you might want to include
>>> some saturation logic (or scale up by a value less than 2**31).
>>>
>>> For what it's worth, you can pack an entire numpy array with: 
>>> floating_point_numpy_array.astype('>i').tobytes()
>>> ,which saves looping and appending to a binary string.
>>>
>>> Does that help?
>>>
>>> Cheers
>>> Jack
>>>
>>> On Mon, 22 Nov 2021 at 18:10, Heystek Grobler <heystekgrob...@gmail.com>
>>> wrote:
>>>
>>>> Hey Jack
>>>>
>>>> I am also well thank you. We are starting to go back to the observatory
>>>> (HartRAO) again.
>>>>
>>>> Here is  a snippets of the python code that I am using as well as my
>>>> simulink design:
>>>>
>>>> The first nipped is where I create the sine wave:
>>>>
>>>> The second snipped is where I plot the sine wave:
>>>>
>>>>
>>>> The third snipped is where I pack the sine wave array:
>>>>
>>>>
>>>> The fourth snipped is where I write the packed data to the BRAM:
>>>>
>>>>
>>>> Snipped 5 is where I want to use the sine wave and cosine wave:
>>>>
>>>>
>>>> But to check that it is working, I have created the simple design in
>>>> snipped 6:
>>>>
>>>>
>>>> I have also attached my simulink design and python script.
>>>>
>>>> Thank you for the help!
>>>>
>>>> Heystek
>>>>
>>>>
>>>> On 22 Nov 2021, at 18:55, Jack Hickish <jackhick...@gmail.com> wrote:
>>>>
>>>> Hi Heystek,
>>>>
>>>> All good here (in London), Thanks. Hope things are going ok with you
>>>> too!
>>>>
>>>> I've taken this back on list for the benefit of others. Do you have:
>>>>
>>>> a) a snippet of some python code which you're using at the moment
>>>> b) A Simulink snippet of the BRAM you're trying to write to, indicating
>>>> how the bram is configured and how its data are being used?
>>>>
>>>> Cheers
>>>> Jack
>>>>
>>>> On Mon, 22 Nov 2021 at 16:52, Heystek Grobler <heystekgrob...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hey Jack
>>>>>
>>>>> How are you? It has been a while since we last spoke.
>>>>>
>>>>> I am really struggling to pack data into binary format for my design.
>>>>> I was wondering if you have time if you can please help me with it. I have
>>>>> no clue if what i am doing is correct and there is no one around me with
>>>>> the knowledge to help me.
>>>>>
>>>>> All that I want to do is too pack a sine wave that I already
>>>>> generated, and write it to a BRAM.
>>>>>
>>>>> I hope to hear from you soon!
>>>>>
>>>>> Heystek
>>>>
>>>>
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "casper@lists.berkeley.edu" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to casper+unsubscr...@lists.berkeley.edu.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/8791F6EA-204B-4BCC-B0DC-3CAD3D928A05%40gmail.com
>>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/8791F6EA-204B-4BCC-B0DC-3CAD3D928A05%40gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "casper@lists.berkeley.edu" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to casper+unsubscr...@lists.berkeley.edu.
>> To view this discussion on the web visit
>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TdWxe-sOF31vMDZxPbO37UwQFLTVHhJwbuZqXpwE6Gbsw%40mail.gmail.com
>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TdWxe-sOF31vMDZxPbO37UwQFLTVHhJwbuZqXpwE6Gbsw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "casper@lists.berkeley.edu" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to casper+unsubscr...@lists.berkeley.edu.
>> To view this discussion on the web visit
>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/5B9A4F5B-4F61-4CF6-AC06-6BD3432B11AB%40gmail.com
>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/5B9A4F5B-4F61-4CF6-AC06-6BD3432B11AB%40gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To view this discussion on the web visit
> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TfPZw9xvQbrTbB0Vyq%2BnQwpeFaeBLy9zG0D2Hi%2BqtHd_w%40mail.gmail.com
> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TfPZw9xvQbrTbB0Vyq%2BnQwpeFaeBLy9zG0D2Hi%2BqtHd_w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups "
> casper@lists.berkeley.edu" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to casper+unsubscr...@lists.berkeley.edu.
> To view this discussion on the web visit
> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/7268EAFF-680E-4659-AF96-727243B0E5F4%40gmail.com
> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/7268EAFF-680E-4659-AF96-727243B0E5F4%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"casper@lists.berkeley.edu" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to casper+unsubscr...@lists.berkeley.edu.
To view this discussion on the web visit 
https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TcAoOWf9%2BU5Xv2w63hx7F6ANtEjoR5F5-AQa0HPMGTW_Q%40mail.gmail.com.

Reply via email to