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
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
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.
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😅
Glad you are back!
this video helped me quite a lot. Thx!
Where can we get that first code, you have shown in the starting of the code, plz reply me
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.
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!
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
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/
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.
Nice short useful video
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😅