S
Stef
Guest
In a design, I have a number of counters that have an enable that is
only active every N periods of the clock signal. With only a clock of
200MHz in the timing constraints, the counters are assumed to run at
200MHz and timing fails. As these counters actually run at much lower
speed, I know they will work. But how to convince the tools (Lattice
iCEcube2) that all is OK?
I am trying to add multi-cycle constraints, but cannot get them to work.
The standard iCEcube timing constraints editor can only create
multi-cycle from input pin to output pin, and that does not even work. I
need to add a multi-cycle constraint on an internal counter. Preferrably
with some wildcard, as I have an array of counters, each with a number
of bits. Specifying each separtely would require a lot of lines.
One example of a failed path (from the iCEcube timing analyzer)
Start protection_inst.filter_array_3_filter_inst.filter_count_1_LC_5_5_1/lcout
End protection_inst.filter_array_3_filter_inst.filter_count_5_LC_5_5_5/in3
Reference gen_pll_wc_lattice_pll_inst.wc_lattice_pll_inst_pll/PLLOUTCORE
Setup Constraint 5262(p)
Path Slack -762(p)
Simply adding this does not work:
set_multicycle_path -to [get_cells {protection_inst.filter_array_3_filter_inst.filter_count_5_LC_5_5_5/in3}] 8
Synplify output:
protection_inst.filter_array_3_filter_inst.filter_count_5_LC_5_5_5/in3])
(multi path 8) was not applied to the design because none of the \'-to\'
objects specified by the constraint exist in the design
I\'ve tried get_nets and get_pins instead of get_cells, same result. Also
tried other parts of the instance names with wildcards, nothing found.
How to specify multi-cycle paths for the feedback of these internal
counters?
--
Stef
He who has the courage to laugh is almost as much a master of the world
as he who is ready to die.
-- Giacomo Leopardi
only active every N periods of the clock signal. With only a clock of
200MHz in the timing constraints, the counters are assumed to run at
200MHz and timing fails. As these counters actually run at much lower
speed, I know they will work. But how to convince the tools (Lattice
iCEcube2) that all is OK?
I am trying to add multi-cycle constraints, but cannot get them to work.
The standard iCEcube timing constraints editor can only create
multi-cycle from input pin to output pin, and that does not even work. I
need to add a multi-cycle constraint on an internal counter. Preferrably
with some wildcard, as I have an array of counters, each with a number
of bits. Specifying each separtely would require a lot of lines.
One example of a failed path (from the iCEcube timing analyzer)
Start protection_inst.filter_array_3_filter_inst.filter_count_1_LC_5_5_1/lcout
End protection_inst.filter_array_3_filter_inst.filter_count_5_LC_5_5_5/in3
Reference gen_pll_wc_lattice_pll_inst.wc_lattice_pll_inst_pll/PLLOUTCORE
Setup Constraint 5262(p)
Path Slack -762(p)
Simply adding this does not work:
set_multicycle_path -to [get_cells {protection_inst.filter_array_3_filter_inst.filter_count_5_LC_5_5_5/in3}] 8
Synplify output:
protection_inst.filter_array_3_filter_inst.filter_count_5_LC_5_5_5/in3])
(multi path 8) was not applied to the design because none of the \'-to\'
objects specified by the constraint exist in the design
I\'ve tried get_nets and get_pins instead of get_cells, same result. Also
tried other parts of the instance names with wildcards, nothing found.
How to specify multi-cycle paths for the feedback of these internal
counters?
--
Stef
He who has the courage to laugh is almost as much a master of the world
as he who is ready to die.
-- Giacomo Leopardi