FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 12-29-2003, 09:14 AM
One Day & A Knight
Guest
 
Posts: n/a
Default This design contains an RPM macro bm_0 which is to be automatically placed, but it contains TBUF elelements that are not allowed during automatic placement of RPMs?

Hi, there:

I want to know how to fix this kind of problem?


Phase 1.1
ERROR:Place:205 - This design contains an RPM macro bm_0 which is to be
automatically placed, but it contains TBUF elelements that are not allowed
during automatic placement of RPMs. You must either pick an absolute
location for the macro using a LOC constraint, or remove the TBUF element
from the macro.

ERROR:Place:205 - This design contains an RPM macro bm_1 which is to be
automatically placed, but it contains TBUF elelements that are not
allowed
during automatic placement of RPMs. You must either pick an absolute
location for the macro using a LOC constraint, or remove the TBUF element
from the macro.

WARNING:Place:204 - Routed macros (nmc's) have been found in this design.
The
placer will need to verify that routing does not attempt to use already
used
resources every time these macros are moved. This may significantly slow
down run time. If the macros are designed such that it is impossible to
place the routed macros in a way that will cause the routing to overlap
then
set the environment variable "PAR_NOMACROROUTECHECKING" and the placer
will
run much faster. The routing will still be checked at the end of the run
and
if the same routing resourse is required by multiple macros then a fatal
error will occur.




Reply With Quote
  #2 (permalink)  
Old 12-29-2003, 11:58 AM
Sean Durkin
Guest
 
Posts: n/a
Default Re: This design contains an RPM macro bm_0 which is to be automaticallyplaced, but it contains TBUF elelements that are not allowed during automaticplacement of RPMs?

One Day & A Knight wrote:

> Hi, there:
> I want to know how to fix this kind of problem?
>
> Phase 1.1
> ERROR:Place:205 - This design contains an RPM macro bm_0 which is to be
> automatically placed, but it contains TBUF elelements that are not allowed
> during automatic placement of RPMs. You must either pick an absolute
> location for the macro using a LOC constraint, or remove the TBUF element
> from the macro.

It tells you right there: "You must pick an absolute location for the
macro"...

Looks like you're using a bus macro here. Those will not be placed
automatically, you have to position them manually with
floorplanner/PACE. Or you can just put a corresponding location
constraint into your .UCF, something like this:

INST "bm_0" LOC = "TBUF_X0Y0" ;

This would place the busmacro with the instance name "bm_0" in the lower
left corner of the FPGA. Of course you have to do this for every
instance, with different locations.

Where you have to put it depends on what you want to do with it.
Usually, you use bus macros to communicate between two modules of a
design, so you place the macro so it straddles the border between the
two modules it's supposed to connect.

--
Sean Durkin
Fraunhofer Institute for Integrated Circuits (IIS)
Am Wolfsmantel 33, 91058 Erlangen, Germany
http://www.iis.fraunhofer.de

mailto:23[email protected]
([23 , 42] <=> [durkinsn , fraunhofer])
Reply With Quote
  #3 (permalink)  
Old 12-29-2003, 02:08 PM
A Day & A Knight
Guest
 
Posts: n/a
Default Re: This design contains an RPM macro bm_0 which is to be automatically placed, but it contains TBUF elelements that are not allowed during automatic placement of RPMs?

Thanks, Durkin.

However that is the thing I don't understand. In my UCF file I put
constraints like these in the UCF file.
1) INST "bm_0" LOC = "TBUF_X0Y0" ;
2) INST "bm_0" LOC = "TBUF_X0Y0:TBUF_X0Y7" ; # Since I use all four
pins.
I tried both cases but I always end up in this error 205, and Xilinx Answers
don't have this error

I have another question. How come the XST GUI's Properties ask for a .XCF
file? Is that similar
to .UCF? How do I compile my verilog codes with XST GUI while control the
bus-delimiter with
() instead of the default <>?

Also, how come in the GUI, the UCF&XCF is in XST, while in commandline mode,
the UCF is in NGDBuild?
Why so many exceptions and so much inconsistency in ISE 6.1!

In my procedure, I have only XST (ISE6.1.03) in my PC, so I used command
line XST to make
sure that the bus delimiter is (), then in commandline to run the NGDBuild
with -uc my_top.ucf...then
return back to GUI to do MAP and P&R...

Only P&R doesn't work!

I think I need to try out the manual placement.

Best Regards,



"Sean Durkin" <[email protected]> wrote in message news:[email protected]
> One Day & A Knight wrote:
>
> > Hi, there:
> > I want to know how to fix this kind of problem?
> >
> > Phase 1.1
> > ERROR:Place:205 - This design contains an RPM macro bm_0 which is to be
> > automatically placed, but it contains TBUF elelements that are not

allowed
> > during automatic placement of RPMs. You must either pick an absolute
> > location for the macro using a LOC constraint, or remove the TBUF

element
> > from the macro.

> It tells you right there: "You must pick an absolute location for the
> macro"...
>
> Looks like you're using a bus macro here. Those will not be placed
> automatically, you have to position them manually with
> floorplanner/PACE. Or you can just put a corresponding location
> constraint into your .UCF, something like this:
>
> INST "bm_0" LOC = "TBUF_X0Y0" ;
>
> This would place the busmacro with the instance name "bm_0" in the lower
> left corner of the FPGA. Of course you have to do this for every
> instance, with different locations.
>
> Where you have to put it depends on what you want to do with it.
> Usually, you use bus macros to communicate between two modules of a
> design, so you place the macro so it straddles the border between the
> two modules it's supposed to connect.
>
> --
> Sean Durkin
> Fraunhofer Institute for Integrated Circuits (IIS)
> Am Wolfsmantel 33, 91058 Erlangen, Germany
> http://www.iis.fraunhofer.de
>
> mailto:[email protected]
> ([23 , 42] <=> [durkinsn , fraunhofer])



Reply With Quote
  #4 (permalink)  
Old 12-29-2003, 03:35 PM
Sean Durkin
Guest
 
Posts: n/a
Default Re: This design contains an RPM macro bm_0 which is to be automaticallyplaced, but it contains TBUF elelements that are not allowed during automaticplacement of RPMs?

A Day & A Knight wrote:

> Thanks, Durkin.
> However that is the thing I don't understand. In my UCF file I put
> constraints like these in the UCF file.
> 1) INST "bm_0" LOC = "TBUF_X0Y0" ;
> 2) INST "bm_0" LOC = "TBUF_X0Y0:TBUF_X0Y7" ; # Since I use all four
> pins.
> I tried both cases but I always end up in this error 205, and Xilinx Answers
> don't have this error

Version 1) should suffice. For each macro there is one pin defined as
the reference, and that pin is used to place the macro. All the other
pins of the macro are then fixed, because the routing and placement is
specified in the macro itself, relative to the reference pin.

Version 2) should give you an error, since TBUF_X0Y0:TBUF_X0Y7 is an
ambiguous location, so that should not work at all, as I understand it.

Since you don't get an error other than 205 when using version 2, and it
still says "RPM macro bm_0 which is to be AUTOMATICALLY placed", even
though you have placed it manually in the .UCF, I suspect that ISE
doesn't really use your .UCF-file at all.

How did you add the .UCF to your design? You should just add it as a
source file (just like your verilog source codes), and assign it to your
top-level design file when asked.

> I have another question. How come the XST GUI's Properties ask for a .XCF
> file? Is that similar to .UCF?

The .XCF is for synthesis, the .UCF is for mapping and the place and
route process. In the .XCF you can put special constraints for XST, like
if it should optimize away equivalent registers, automatically add
IO-buffers and things like that. The .XCF is for use with XST,
exclusively and does not work with FPGA Express and other synthesis
tools (at least as far as I know).

In the .UCF you put more global things, like which IOBs to use, timing
constraints for your clock signals, area constraints for modules etc.,
i.e. things that relate to the implementation of your design, that is
mapping, placing and routing. A .UCF can be used with tools from other
vendoers as well.

> How do I compile my verilog codes with XST GUI while control the
> bus-delimiter with () instead of the default <>?

In Project Navigator, select your top-level design file, right-click on
"Synthesize", and chose "Properties". After scrolling down (!) you can
specify the "Bus delimiter" in the "Synthesis Options" tab.

> Also, how come in the GUI, the UCF&XCF is in XST, while in commandline mode,
> the UCF is in NGDBuild?

As I stated above, the .UCF should be added to the design just like your
verilog source codes, not in the XST settings. It's possible that your
..UCF is simply ignored when added in the XST settings, which would
explain your problem.

> Why so many exceptions and so much inconsistency in ISE 6.1!
> In my procedure, I have only XST (ISE6.1.03) in my PC, so I used command
> line XST to make
> sure that the bus delimiter is (), then in commandline to run the NGDBuild
> with -uc my_top.ucf...then
> return back to GUI to do MAP and P&R...
> Only P&R doesn't work!

P&R needs a .PCF (physical constraints file) to work. This .PCF is
generated automatically from your .UCF during mapping. Normally, par
looks for a file named <your_design>.pcf or <your_design_map>.pcf in the
working directory, and uses that automatically. If it's not there, it
tries to place everything itself. I suspect that this is what happens in
your case. Check and see if a .PCF file is generated somewhere along the
way.

But I guess if you run the entire flow in the GUI (after changing the
bus delimiter like described above), everything will work fine
automatically.

--
Sean Durkin
Fraunhofer Institute for Integrated Circuits (IIS)
Am Wolfsmantel 33, 91058 Erlangen, Germany
http://www.iis.fraunhofer.de

mailto:[email protected]
([23 , 42] <=> [durkinsn , fraunhofer])
Reply With Quote
  #5 (permalink)  
Old 12-30-2003, 07:56 AM
One Day & A Knight
Guest
 
Posts: n/a
Default Re: This design contains an RPM macro bm_0 which is to be automaticallyplaced, but it contains TBUF elelements that are not allowed during automaticplacement of RPMs?

Thank you Durkin!

The BUS Delimiter/Hierarchy separater/etc. can only be found Advanced
mode...I was not aware of this mode in ISE6.1...

I managed to place & route a bus macro...it seems to me, a BM is a 4SX2S
rectangular box, but previously I
placed them in a gap with 1 slices wide between my two modules, so it caused
some mistakes. I treated it like
a 1SX8S verticle pole...

Now I managed to run a synthesis and P&R successfully all in GUI. Thank you
for your reply.

Lastly, is there any options to limit the amount of RAM in ISE? My PC has
only 256MB and is not sufficient for a
50K ASIC gate design. ISE tends to eat as much as that is available.

Best Regards,
Kelvin





Sean Durkin <[email protected]> wrote in message news:[email protected]
> A Day & A Knight wrote:
>
> > Thanks, Durkin.
> > However that is the thing I don't understand. In my UCF file I put
> > constraints like these in the UCF file.
> > 1) INST "bm_0" LOC = "TBUF_X0Y0" ;
> > 2) INST "bm_0" LOC = "TBUF_X0Y0:TBUF_X0Y7" ; # Since I use all four
> > pins.
> > I tried both cases but I always end up in this error 205, and Xilinx

Answers
> > don't have this error

> Version 1) should suffice. For each macro there is one pin defined as
> the reference, and that pin is used to place the macro. All the other
> pins of the macro are then fixed, because the routing and placement is
> specified in the macro itself, relative to the reference pin.
>
> Version 2) should give you an error, since TBUF_X0Y0:TBUF_X0Y7 is an
> ambiguous location, so that should not work at all, as I understand it.
>
> Since you don't get an error other than 205 when using version 2, and it
> still says "RPM macro bm_0 which is to be AUTOMATICALLY placed", even
> though you have placed it manually in the .UCF, I suspect that ISE
> doesn't really use your .UCF-file at all.
>
> How did you add the .UCF to your design? You should just add it as a
> source file (just like your verilog source codes), and assign it to your
> top-level design file when asked.
>
> > I have another question. How come the XST GUI's Properties ask for a

..XCF
> > file? Is that similar to .UCF?

> The .XCF is for synthesis, the .UCF is for mapping and the place and
> route process. In the .XCF you can put special constraints for XST, like
> if it should optimize away equivalent registers, automatically add
> IO-buffers and things like that. The .XCF is for use with XST,
> exclusively and does not work with FPGA Express and other synthesis
> tools (at least as far as I know).
>
> In the .UCF you put more global things, like which IOBs to use, timing
> constraints for your clock signals, area constraints for modules etc.,
> i.e. things that relate to the implementation of your design, that is
> mapping, placing and routing. A .UCF can be used with tools from other
> vendoers as well.
>
> > How do I compile my verilog codes with XST GUI while control the
> > bus-delimiter with () instead of the default <>?

> In Project Navigator, select your top-level design file, right-click on
> "Synthesize", and chose "Properties". After scrolling down (!) you can
> specify the "Bus delimiter" in the "Synthesis Options" tab.
>
> > Also, how come in the GUI, the UCF&XCF is in XST, while in commandline

mode,
> > the UCF is in NGDBuild?

> As I stated above, the .UCF should be added to the design just like your
> verilog source codes, not in the XST settings. It's possible that your
> .UCF is simply ignored when added in the XST settings, which would
> explain your problem.
>
> > Why so many exceptions and so much inconsistency in ISE 6.1!
> > In my procedure, I have only XST (ISE6.1.03) in my PC, so I used command
> > line XST to make
> > sure that the bus delimiter is (), then in commandline to run the

NGDBuild
> > with -uc my_top.ucf...then
> > return back to GUI to do MAP and P&R...
> > Only P&R doesn't work!

> P&R needs a .PCF (physical constraints file) to work. This .PCF is
> generated automatically from your .UCF during mapping. Normally, par
> looks for a file named <your_design>.pcf or <your_design_map>.pcf in the
> working directory, and uses that automatically. If it's not there, it
> tries to place everything itself. I suspect that this is what happens in
> your case. Check and see if a .PCF file is generated somewhere along the
> way.
>
> But I guess if you run the entire flow in the GUI (after changing the
> bus delimiter like described above), everything will work fine
> automatically.
>
> --
> Sean Durkin
> Fraunhofer Institute for Integrated Circuits (IIS)
> Am Wolfsmantel 33, 91058 Erlangen, Germany
> http://www.iis.fraunhofer.de
>
> mailto:[email protected]
> ([23 , 42] <=> [durkinsn , fraunhofer])




Reply With Quote
  #6 (permalink)  
Old 12-30-2003, 10:01 AM
Sean Durkin
Guest
 
Posts: n/a
Default Re: This design contains an RPM macro bm_0 which is to be automaticallyplaced,but it contains TBUF elelements that are not allowed during automaticplacementof RPMs?

One Day & A Knight wrote:
> Thank you Durkin!
> The BUS Delimiter/Hierarchy separater/etc. can only be found Advanced
> mode...I was not aware of this mode in ISE6.1...

Ah, yes, I should've thought about that. But that's always the first
option you set after installing...

> I managed to place & route a bus macro...it seems to me, a BM is a 4SX2S
> rectangular box, but previously I
> placed them in a gap with 1 slices wide between my two modules, so it caused
> some mistakes. I treated it like
> a 1SX8S verticle pole...

You can just load it into FPGAEditor and look at it.

> Lastly, is there any options to limit the amount of RAM in ISE? My PC has
> only 256MB and is not sufficient for a
> 50K ASIC gate design. ISE tends to eat as much as that is available.

Not that I know of...

--
Sean Durkin
Fraunhofer Institute for Integrated Circuits (IIS)
Am Wolfsmantel 33, 91058 Erlangen, Germany
http://www.iis.fraunhofer.de

mailto:[email protected]
([23 , 42] <=> [durkinsn , fraunhofer])
Reply With Quote
  #7 (permalink)  
Old 12-31-2003, 02:35 PM
A Day & A Knight
Guest
 
Posts: n/a
Default Re: This design contains an RPM macro bm_0 which is to be automatically placed, but it contains TBUF elelements that are not allowed during automatic placement of RPMs?

Hi, Durkin:

I am a little confused with the partial reconfiguration flow.

In the Active module implementation, I found that I must use the *.NGO file.
However .NGO file is only
available when I use EDIF file as input, and XST cannot produce EDIF file.

Does it mean I have no choice but to use something other than XST (e.g.
Synplicity) to synthesize my designs?

ngdbuild -p xc2v250-fg256-4 -modular module -active iq_gen
.../../top1/initial/sig_gen.ngo

Best Regards,
Kelvin





"Sean Durkin" <[email protected]> wrote in message news:[email protected]
> One Day & A Knight wrote:
>
> > Hi, there:
> > I want to know how to fix this kind of problem?
> >
> > Phase 1.1
> > ERROR:Place:205 - This design contains an RPM macro bm_0 which is to be
> > automatically placed, but it contains TBUF elelements that are not

allowed
> > during automatic placement of RPMs. You must either pick an absolute
> > location for the macro using a LOC constraint, or remove the TBUF

element
> > from the macro.

> It tells you right there: "You must pick an absolute location for the
> macro"...
>
> Looks like you're using a bus macro here. Those will not be placed
> automatically, you have to position them manually with
> floorplanner/PACE. Or you can just put a corresponding location
> constraint into your .UCF, something like this:
>
> INST "bm_0" LOC = "TBUF_X0Y0" ;
>
> This would place the busmacro with the instance name "bm_0" in the lower
> left corner of the FPGA. Of course you have to do this for every
> instance, with different locations.
>
> Where you have to put it depends on what you want to do with it.
> Usually, you use bus macros to communicate between two modules of a
> design, so you place the macro so it straddles the border between the
> two modules it's supposed to connect.
>
> --
> Sean Durkin
> Fraunhofer Institute for Integrated Circuits (IIS)
> Am Wolfsmantel 33, 91058 Erlangen, Germany
> http://www.iis.fraunhofer.de
>
> mailto:[email protected]
> ([23 , 42] <=> [durkinsn , fraunhofer])



Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Fatal: (vsim-3613) Top-level instantiation of Verilog optimized cell'delaybuf' is not allowed. gck Verilog 1 11-29-2008 12:54 PM
Help automatically arraying cells Marc Reinig Verilog 1 08-02-2005 01:02 AM
Simvision, how may I make it automatically convert a VCD file into TRN? Kelvin Verilog 5 11-22-2004 02:11 AM


All times are GMT +1. The time now is 02:49 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved