Xilinx multiplier core instantiation for Virtex4

Discussion in 'VHDL' started by D Stanford, Mar 23, 2007.

  1. D Stanford

    D Stanford Guest

    I'm running into some unexpectedly big problems instantiating some
    multiplier cores for a Virtex4 part. I'm porting a design originally
    in a Virtex2 part over to a Virtex4, and everything has run smoothly
    except the multiplier cores. I haven't had problems with FIFO cores or
    dualport RAM cores or ROMs, but the multipliers seem to cause a ton of

    For the Virtex4, we're using XST in ISE 8.2 for synthesis. The first
    problem was that mapping failed with an unexpected (ie unexplained)
    error. It took a while to isolate this to the VHDL files with the
    multiplier cores in them. So I regenerated the cores, using the Xilinx
    CoreGen tool.

    Still no luck. Now, the translator complains that the multiplier name
    called out in the EDN file doesn't exist.

    So I've switched to trying to instantiate them direclty, as the
    CoreGen documentation says is possible. Now the HDL compiler won't
    recognize mult_gen_v9_0 as a valid entity, even though the multiplier
    core documentation says that it should.

    So I have a couple questions from my experience

    1) Am I correct in presuming that the Virtex2 multiplier cores won't
    work with a Virtex4 part?

    2) Is there any generic advice (or more detail I can provide) on
    creating cores for XST synthesis using CoreGen?

    3) Is there any advice (or more detail I can provide) on directly
    instantiating the mult_gen_v9_0?
    D Stanford, Mar 23, 2007
    1. Advertisements

  2. D Stanford

    Duane Clark Guest

    Why not just infer the multipliers? In the past that may have been a
    problem, but XST will now infer them just fine.
    M <= X * Y; -- should be all that you need
    Duane Clark, Mar 23, 2007
    1. Advertisements

  3. D Stanford

    D Stanford Guest

    That's the next plan (plan D at this point).
    D Stanford, Mar 23, 2007
  4. D Stanford

    JK Guest

    I also got similar kind of problems.
    For these cores have u added xco files or vhd file generated by xco
    I added xco file to project instead of vhd file, n problem got solved.
    U can try both options...

    JK, Mar 24, 2007
  5. D Stanford

    D Stanford Guest

    That's really surprising to me. The .xco is the coregen project file.
    When you add it to your Xilinx ISE project it gives you good results
    with the multiplier cores?
    D Stanford, Mar 26, 2007
  6. D Stanford

    JK Guest

    I tried all the options when this multiplier core vhd file was giving
    When you work with Xilinx software, sometimes you need to work without
    applying mind... hahahaha
    Honestly, I haven't gone through this problem deeply, as adding xco
    file to project cleared all errors.

    JK, Mar 27, 2007
  7. D Stanford


    Nov 21, 2006
    Likes Received:
    May be I can add some more to it. I also faced similar problem in past. When one tires to copy a whole project from one directory to another, or for that matter from one device to another. The xco file does not reflects in the source window. We need to add them manually and remove the corresponding vhdl files. Only xco file is sufficient for all the cores.
    I am told that this will not be a problem in ISE9.1 release, have not tested though...
    quantum_dot, Mar 28, 2007
  8. D Stanford

    self Guest

    The .xco file is not the coregen project file it is just the definition
    file for the single core. Generally it is the .xco file you want to
    include in your project for implementation. The .vhd that comes out of
    coregen is just for simulation.

    If you don't want to include the .xco file in your project you can just
    add it's path to the "macro search path". Map will then find the .ngc
    netlist at map time.

    In any case, do not include the coregen .vhd output because that is not
    synthesizable code.

    self, Apr 28, 2007
  9. D Stanford


    May 4, 2007
    Likes Received:
    Virtex-4 parts contain components called DSP48s which do not exist within Virtex-II or earlier parts. That is why you must regenerate all multipliers in CoreGenerator and target your Virtex-4 device. As far as .xco and .edn files are concered, the best way to use them is to develop all Cores in the same folder and point the macro search path to them.
    scottcarl, May 10, 2007
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.