Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

The following generated clock has no path to its masterclock

Status
Not open for further replies.

hanchen

Newbie level 3
Joined
Jan 26, 2010
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,329
Tool: Design comipler 2008.09 sp1
when i try to compile a very simple code (below):
module test_generated_clock(gclk,grst,out1,out2);
input gclk;
input grst;
output [1:0] out1;
output [1:0] out2;
reg [1:0] out1;
reg [1:0] out2;
wire clk_gen;
always@(posedge gclk or negedge grst)
begin
if (!grst)
out1<=2'b00;
else
out1<=out1+1;
end
assign clk_gen=out1[1];
always@(posedge clk_gen or negedge grst)
begin
if (!grst)
out2<=2'b00;
else
out2<=out2+1;
end
endmodule

I use the below script to compile this code:
source ./synopsys_dc_SMIC18.setup
set DESIGN "test_generated_clock"
read_verilog ./test_generated_clock.v
link

create_clock -period 25 -waveform {0 12.5} [get_ports {gclk}]

set_clock_transition -rise 1 [get_clocks {gclk}]
set_clock_transition -fall 1 [get_clocks {gclk}]
set_clock_uncertainty 2 [get_clocks {gclk}]
set_clock_latency 1 -max [get_clocks {gclk}]

set_dont_touch_network [get_ports {gclk}]
set_dont_touch_network [get_ports {grst}]

set_operating_conditions "slow" -library slow
set_wire_load_model -name "smic18_wl30" -library slow
set_wire_load_mode "enclosed"
set_min_library slow.db -min_version fast.db

change_names -hierarchy -rules BORG
create_generated_clock -name clock_gen -source gclk -divide_by 4 [get_pins out1_reg_1_/Q]

set_dont_touch_network [get_clocks clock_gen]
set_propagated_clock [get_clocks clock_gen]

set_input_delay 10 -clock "gclk" [get_ports {grst}]
set_input_delay 10 -clock "clock_gen" [get_ports {grst}]
set_dont_touch_network gclk

set_output_delay 10 -clock "gclk" [get_ports {out1*}]
set_output_delay 10 -clock "clock_gen" [get_ports {out2*}]

set_load 1 [get_ports {out1*}]
set_load 1 [get_ports {out2*}]

set_fix_hold [get_clocks {gclk}]
set_fix_hold [get_clocks {clock_gen}]


#report_timing -from [get_ports gclk] -to [get_pins out1_reg_1_/Q] -path only
#change_names -hierarchy -rules BORG
#write -f verilog -hierarchy -o ./export/$DESIGN\_netlist.sv

##################
when i run the "check_timing" i run to this warning:
dc_shell> check_timing

Information: Checking generated_clocks...
Warning: The following generated clock has no path to its master clock. (TIM-204)
------------------------------
clock_gen

Information: Checking loops...

Information: Checking no_input_delay...

Information: Checking unconstrained_endpoints...

Information: Checking pulse_clock_cell_type...
1

i man the command "check_timing", but gets few messages.
i try some way to avoid this warning, but i failed.
could anyone tell me why this warning come out ?
and is there any way to avoid this problem?

Thanks!
 

Re: The following generated clock has no path to its masterc

What I believe is that there exists no timing arcs between the two clocks, hence the warning. I also believe that you should use the create_generated_clock command to make a second clock.

In FPGA you would use a primitive to generate a new clock, and in ASIC you would probably use a oscillator/clock generator.

So to wrap it up, if you want to have two clocks in your design use create_clock and create_generated_clock to be able to time your design.
 

Re: The following generated clock has no path to its masterc

Thank you for you analysing! but I still have some problems.(I am in ASIC)
why there is no timing arcs from the registers clock pin to its Q pin? After compile, i found that JK FF was used from the netlist. Is it the reason......? Maybe i should try to avoid JK FF in this design in order to find the answer & check the lib file to identify it.

Second, I don't well understand you words "I also believe that you should use the create_generated_clock command to make a second clock".

johanlo said:
What I believe is that there exists no timing arcs between the two clocks, hence the warning. I also believe that you should use the create_generated_clock command to make a second clock.

In FPGA you would use a primitive to generate a new clock, and in ASIC you would probably use a oscillator/clock generator.

So to wrap it up, if you want to have two clocks in your design use create_clock and create_generated_clock to be able to time your design.
 

Re: The following generated clock has no path to its masterc

I believe you are using two clocks 1) gclk
2) grst

from where these clock signal are generated. for eg if your are going to implement the design on a FPGA board, which has a clock circuit called Master clock or on- board clock with certain frequency specified .

So your gclk and grst should be derived from Master clock or on-board clock .
-
By using Clock generate gclk and grst.
 

Re: The following generated clock has no path to its masterc

Thank you for you suggestion~~
i use signal 'grst' to reset my registers, and gclk is the clock signal of my design.
you mean that the tools(Design comipler) treat the signal 'grst' as a clock?

i understand your words that 'gclk and grst should be derived from Master clock or on-board clock'. But I have been confused that it is relation to my question"The following generated clock has no path to its masterclock".
Because when i compile an signal-clock design, this warning won't come out. This signal clock also should be derived from Master clock or on-board clock.

I think you consider that this warning come out because of the signals grst & gclk have no relation to their master signals.
I read the detail of the warning messages, and i think this warning means that the clk_gen has no path to its master clock gclk. so this is my problem.

Anyway, i will try your sugestion to read what the tools tell.


gharuda said:
I believe you are using two clocks 1) gclk
2) grst

from where these clock signal are generated. for eg if your are going to implement the design on a FPGA board, which has a clock circuit called Master clock or on- board clock with certain frequency specified .

So your gclk and grst should be derived from Master clock or on-board clock .
-
By using Clock generate gclk and grst.
 

Re: The following generated clock has no path to its masterc

I am sorry buddy I didn't get grst to be reset signal (which is similar to clock gclk) just went through your coding first time


but still I didn"t get this part

in your code is clk_gen which is declared to be wire

while in your Dc shell command the constrains are used on clock_gen.which does not appear in the code.

please do clear this part

Added after 8 minutes:





again you created your clock signal

"create_clock -period 25 -waveform {0 12.5} [get_ports {gclk}] "

then what about grst signal, which is a input port,

should we need create a signal by using similar constrain above ?

could you please enlighten me about these issue.

its been a long time i since used DC
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top