06-17-2019 11:31 PM
I'm doing a prototype in Spartan6 in ISE.
There are some donttouch modules in ASIC design, so I want them also preserved in circuit.
First I use (*KEEP = "TRUE"*) before the module, but I found in map and PAR they still optimize the logic.
So I change it to (* KEEP_HIERARCHY = "TRUE"*) before the module.
But it report some warnings:
MapLib:328 - Block i_top/i_fdes/i_fp/i_xor64_donttouch is not a recognized logical block. The mapper will continue to process the design
but there may be design problems if this block does not get trimmed .
Warning : MapLib - Logic Gating not supported for hierarchical instances. Use -ignore_keep_hierarchy. Instance :
Is that means the logic is not been preserved??
Also I want to ask that how can I know the module I want to preserve is optimized or not?? how can i know the keep property is successfully set or not?
Thank you!
06-19-2019 05:45 PM
The warning looks to indicate you're applying KEEP_HIERACHY to invalid objects. It's expected to be specified on hierarchical instances, whereas i_top/i_fdes/i_fp/i_xor64_donttouch seems to be gating logic.
In ISE, if you want to preserve specific nets/signals, you may apply SAVE NET FLAG constraint.
(* S = "TRUE"*)
06-17-2019 11:33 PM
I also tried (*DONT_TOUCH = TRUE*) before the module, there are no warnings , but I dont know is it works or not..
06-18-2019 06:28 PM
could someone help me ?
how can I know the modules are keep or not ?
06-18-2019 09:43 PM
Post implementation, you can open the design in PlanAhead from ISE and check the modules and its connection.
--Syed
06-19-2019 05:45 PM
The warning looks to indicate you're applying KEEP_HIERACHY to invalid objects. It's expected to be specified on hierarchical instances, whereas i_top/i_fdes/i_fp/i_xor64_donttouch seems to be gating logic.
In ISE, if you want to preserve specific nets/signals, you may apply SAVE NET FLAG constraint.
(* S = "TRUE"*)
07-02-2019 07:15 PM
Thank you for your reply.
I finally find the reason that one input of this module always be zero.
But one more question,
I try (DONT_TOUCH = "TRUE") constraint before the wire declaration in donttouch module , is it same as (S = "TRUE")?
Best Regards
07-02-2019 07:19 PM
Hi, @iamsocute ,
DONT_TOUCH property is only for Vivado Design Suite, and ISE cannot recognize this property.
07-02-2019 08:04 PM
But in synthesis log , it prints out "set property DONT_TOUCH = TRUE for signal <o> ".
And in PlanAhead, there is a "DONT_TOUCH" in attributes property and be selected.
So it makes me confused.
Thank you !
07-02-2019 08:31 PM
All the supported synthesis attributes in ISE are listed in UG687.
PlanAhead is predecessor for Vivado, and some Vivado proerpty has been added into it for testing purpose. You are not encouraged to use such unsupported attributes in ISE flow.
07-02-2019 08:35 PM
Thank you very much.
What's more , is the S property works during the whole process ?
I want to save the signal during the whole process (synthesis, translate , map and PAR)
I used to use KEEP property, but it only works in synthesis process.
Best regards.
07-02-2019 08:41 PM
Which user guide should I refer to when I want to attribute in whole process(especially synthesis, MAP and PAR)?
And where can I report bug ?
I got some PhyDesignRules:367 Warnings when I check the MAP message in Summary.
But in the left "Design" Block, the MAP has a green success notation.
Thank you