J
Joseph
Guest
Hi all,
I am synthesizing a well known add-shift multiplication routine. I have the Multiplier register Q ,an addition register A and a Carry register C (the carry of the adder) which are concatenated together to give the multiplication results. For the shifting part I am writing the following code:
Q <= A(0) & Q(3 downto 1);
A <= C & A(3 downto 1);
That should perform a right shift in both A and Q. This is being done in a clocked process so registers are being created (that is working). When synthesizing using Xilinx and simulating using ISIM the right shift is being performed but the LSB of Q never has the correct value.
Am I coding it incorrectly in Xilinx?
Regards,
Joseph
I am synthesizing a well known add-shift multiplication routine. I have the Multiplier register Q ,an addition register A and a Carry register C (the carry of the adder) which are concatenated together to give the multiplication results. For the shifting part I am writing the following code:
Q <= A(0) & Q(3 downto 1);
A <= C & A(3 downto 1);
That should perform a right shift in both A and Q. This is being done in a clocked process so registers are being created (that is working). When synthesizing using Xilinx and simulating using ISIM the right shift is being performed but the LSB of Q never has the correct value.
Am I coding it incorrectly in Xilinx?
Regards,
Joseph