LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Timing error in my fpga code

Solved!
Go to solution

Hi dan_u and T-REX$, 

              I double checked the top level clock in the FPGA project and it is 40 MHZ. For the 80 MHZ, I have a derived clock added to the project. I am working on the xilinx log. It takes some time for my computer and give me the log. I will update this information soon. 

0 Kudos
Message 11 of 22
(1,570 Views)

I have attached the timing errors and also the device utilization with this. 

0 Kudos
Message 12 of 22
(1,561 Views)

This is the xilinx log.

0 Kudos
Message 13 of 22
(1,560 Views)

Show the configuration of DC and RMS Measurement blocks.

0 Kudos
Message 14 of 22
(1,541 Views)

Hi Kumar,

 

Well, it looks like you're using up all of the multipliers on the device with just these 6 DC-RMS VIs. If you can deal with less numerical precision, it may help to cast your Analog Input values to a different fixed point configuration that uses less resources. A second option would be to try inserting extra registers between the IO and the "Fixed" multiplier resources. Usually this only matters within an SCTL, but with all multipliers being used, it looks like the compiler might be seeing some congestion issues. Basically, just insert a Feedforward Node (a feedback node with the direction changed) after all of the AIO, but before the DC-RMS VIs. Finally, do you still get compilation errors if you remove one (or two, or 3) of the lines your calculating? How many of these can you do before you start running into timing violations?

Cheers!

TJ G
0 Kudos
Message 15 of 22
(1,536 Views)

Hi, The following picture shows the configuration.

 

I am trying to measure RMS of a 60 HZ sinusoidal waveform with NI 9205 AI.

0 Kudos
Message 16 of 22
(1,527 Views)

Hi T-REX$, 

         I am trying to find that number. I will update soon. 

 

-Kumar

0 Kudos
Message 17 of 22
(1,525 Views)

Seems like I can use around 4 RMS blocks without timing error. I would really like to use six RMS blocks. Is there any way that I can use six RMS blocks without creating the timing error. 

0 Kudos
Message 18 of 22
(1,507 Views)
Solution
Accepted by topic author kprabaka

As I mentioned before, I would try adding another register between the IO and the RMS calculation. Looks something like this:

FXPConvertwithRegisters.png

 

Also, your data-type coming off of the module is FXP<+-, 26, 5>. If you can get this down to 18-bits wide instead of 26, it should save you some multipliers since the ones on your device are 18x18. I don't know what the requirements for your measurement are, but it could solve some issues if your system can tolerate some loss in precision or range (no need to go +-16V if you're only looking at a 5V signal).

Cheers!

TJ G
Message 19 of 22
(1,496 Views)

Hi T-REX$, 

       Thank you for your help. Your suggestion worked. I am able to compile my code without any error. 

 

Regards,

Kumar

0 Kudos
Message 20 of 22
(1,481 Views)