I have just used an IP in the IP catalog called Multiply accumulate. This IP is supposed to multiply 2 inputs and accumulate the result. I made a control module for it(mac_control) where I instantiate this IP (mac: entity work.MAC port map...) and then I made my test bench. Everything compiled as it should but when I go to the simulation, it doesn't output anything.

I noticed that the port map pins that I set forcefully (for example, ce => '1', rst => '1', etc) were not displayed in the simulation. I don't mean that they they were marked as undefined, I am saying that there was just the black background where the signal should be. So I created internal signals which were initiated with the expected values (signal int_ce : std_logic := '1') and then I linked the signal to the port maps. This made the signals appear on the vivado simulator, but still ... no output.

Maybe I'm missing a library or something. Does anyonw know how to simulate the IP core?

EDIT: I also tried using the '*' and '+' operators but vivado told me that 0 definitions were found for those operators. I'm almost certain that this means that a library is missing. But I can't same the same for the main problem

EDIT2: I noticed something else. When I open the sources it lloks something like this:

tb -> multiplier.vhd -> mac.xci -> mac.vhd (this one has a red flag) -> xbip_multaccum_v2_0

I guess there may be something wroong with the mac.vhd. A red flag doesn't strike me as a good thing (it's a little red square at the bottom levt part of the icon in Vivado)

EDIT3: I'm using Vivado's simulator.

  • \$\begingroup\$ What simulator are you using? Vivado's? \$\endgroup\$
    – FarhadA
    Commented Jan 22, 2016 at 8:40
  • \$\begingroup\$ @FarhadA Yes. Vivado's simulator. Sorry it took me such a long time to answer. I was in meetings all day \$\endgroup\$
    – morcillo
    Commented Jan 22, 2016 at 17:52
  • \$\begingroup\$ @FarhadA I was just able to simulate using Vivado's simulator. I just had to change the IP being used. After reading the documentation for the millionth (is this use of the word ok?) time I noticed that it had a discontinued watermark. I changed the IP and was able to simulate it. But still ... it seems odd that there is an IP in the IP catalog that I can't simulate. OK, it's been discontinued, but if it's in my catalog I should be able to use it. At least that's what I think. \$\endgroup\$
    – morcillo
    Commented Jan 22, 2016 at 20:25
  • \$\begingroup\$ @FarhadA Do you know why this happens? If you do, please post your answer and I'll mark your post as the correct answer. Even though I "fixed" my problem I don't think I answered my question entirely, because I know how I fixed it, but I don't know why. \$\endgroup\$
    – morcillo
    Commented Jan 22, 2016 at 20:27

1 Answer 1


I was using a module that was not supported by Vivado. Apparently the machine I was working on had an old ISE installation and the cores got mixed up. That's why some modules were impossible to simulate and others worked perfectly from the get go.

I think it should've worked, but maybe the licenses didn't match or the sources were unavailable for Vivado. I don't think it's a licensing problem because Vivado didn't throw any license errors (I forced a licensing error by simulating the AXI BFM and Vivado told me I didn't have the license)


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.