A few years ago I used the Library of Parameterized Modules from Altera (now Intel). I am now using Xilinx/Vivado, and I can't seem to find any equivalent.

For example, I used to instantiate counters left, right, and center. I find it hard to believe that Vivado doesn't have this facility... but I can't find it!

Am I missing something here?

  • \$\begingroup\$ I have written a lot of HDL code and never wanted to instance a counter. I just write three or four line of code and often the counter disappears within the rest of the sequential logic. "Am I missing something here?" Maybe HDL has moved on a bit. I would say that in HDL it is just not worth the hassle to instance a counter. It really gets awful if you need to set, clear, increment etc. depending on a state variable. But that is just my opinion... \$\endgroup\$
    – Oldfart
    Commented Aug 5, 2019 at 16:48
  • 1
    \$\begingroup\$ This right here is exactly why I try to avoid as much vendor specific stuff as possible... It doesn't necessarily save much time in the short term, but it can cause lots of headaches later \$\endgroup\$ Commented Aug 6, 2019 at 17:42

1 Answer 1


With Vivado you can do this one of four ways:

  • Define the counter with HDL (uses fabric and LUTs)
  • Instance a DSP48 with HDL
  • Use block design Binary Counter, instance as 'fabric'
  • Use block design Binary Counter, instance as 'DSP48'

You can also define your own parameterized RTL blocks if you need something more exotic than that.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.