I think I have come across this problem before. When you slice "window_out", the result is interpreted as unsigned, and signed x unsigned multiplication is interpreted as unsigned. My solution to this was something like "mic_data*$signed(window_out[0:-WINDOW_FRAC]);" This has worked for me in the past.
This is correct. If you slice one of the multiplicands you need to type cast it. I originally thought this was a Vivado synthesis issue, but I believe this is true even for Synplify/ProtoCompiler.
Hi, With the DSP48E1, I can multiply 23-bit signed and 18-bit signed values Now I have a 23-bit unsigned value and my 18-bit value is unsigned (just like a 19-bit signed with only positive values) Is it possible to configure the DSP slice accordingly? If not, is there an elegant way to pre-process the multiplicands or post-process the product in order to arrive at the correct result? Thanks!
You should be able to use the same resources for signed or unsigned. I recommend using the multiplier IP core to try out your configuration and see what resources it shows. Usually one of the tabs will allow you to choose to use a DSP slice, and how many your multiplication will use up.
@@FPGAsforBeginners After a few days of trying out all the options, I came out to this conclusion which is DSP 18-bit signed only or 17-bit unsigned. walk around by doing what this thread says. support.xilinx.com/s/question/0D52E00006iHjc5SAC/dsp48e-multiplication-of-25-bit-signed-and-18-bit-unsigned-value-possible?language=en_US
Good videos, very helpful. I started to work in the field as a freshers last month. Please do tell if you need my help in any videos. Help for you, knowledge for me😅
Hm. I am suspecting the same problem with a code i am writing. Got a lot of multiplications and divisions of signed numbers in an equation and the result comes out wrong. I tried to avoid core ip as much as i can to make things simpler.... Thanks for the hint.
After Installing vivado 2019.1 on ubuntu, I have to set up the license and when I go to help>manage license in vivado and then in manage license search paths, I get "Linux users will need to make these settings outside of this application" and I can't edit the license. Can you please help me resolve the issue
this video helped me quite a lot. Thx!
Glad you are back!
I think I have come across this problem before. When you slice "window_out", the result is interpreted as unsigned, and signed x unsigned multiplication is interpreted as unsigned. My solution to this was something like "mic_data*$signed(window_out[0:-WINDOW_FRAC]);" This has worked for me in the past.
This is correct. If you slice one of the multiplicands you need to type cast it. I originally thought this was a Vivado synthesis issue, but I believe this is true even for Synplify/ProtoCompiler.
Yup. This should be pinned.
Where can we get that first code, you have shown in the starting of the code, plz reply me
Hey Stacey!
Could you tell me how can I understand this wizardry. This all looks absolutely bonkers. But I wish to learn.
Is the ability to have multiple block diagrams in one project a new feature in 2021.1? I am using 2020.1. Thanks for the videos, they're great!
Nice short useful video
Hi,
With the DSP48E1, I can multiply 23-bit signed and
18-bit signed values
Now I have a 23-bit unsigned value and my 18-bit
value is unsigned (just like a 19-bit signed with
only positive values)
Is it possible to configure the DSP slice
accordingly?
If not, is there an elegant way to pre-process the
multiplicands or post-process the product in order
to arrive at the correct result?
Thanks!
You should be able to use the same resources for signed or unsigned. I recommend using the multiplier IP core to try out your configuration and see what resources it shows. Usually one of the tabs will allow you to choose to use a DSP slice, and how many your multiplication will use up.
@@FPGAsforBeginners After a few days of trying out all the options, I came out to this conclusion which is DSP 18-bit signed only or 17-bit unsigned. walk around by doing what this thread says. support.xilinx.com/s/question/0D52E00006iHjc5SAC/dsp48e-multiplication-of-25-bit-signed-and-18-bit-unsigned-value-possible?language=en_US
Good videos, very helpful. I started to work in the field as a freshers last month. Please do tell if you need my help in any videos. Help for you, knowledge for me😅
Hm. I am suspecting the same problem with a code i am writing. Got a lot of multiplications and divisions of signed numbers in an equation and the result comes out wrong. I tried to avoid core ip as much as i can to make things simpler.... Thanks for the hint.
After Installing vivado 2019.1 on ubuntu, I have to set up the license and when I go to help>manage license in vivado and then in manage license search paths, I get "Linux users will need to make these settings outside of this application" and I can't edit the license.
Can you please help me resolve the issue
You probably need to edit one of your environment variables in your bashrc. XILINXD_LICENSE_FILE or LM_LICENSE_FILE usually/