H
hanchen
Guest
Инструмент: Проектиране comipler 2008,09 sp1
, когато се опитвам да съставят един много прост код (по-долу):
модул test_generated_clock (gclk, grst, out1, out2);
вход gclk;
вход grst;
продукция [1:0] out1;
продукция [1:0] out2;
обл [1:0] out1;
обл [1:0] out2;
тел clk_gen;
Винаги @ (posedge gclk или grst negedge)
започвам
ако (! grst)
out1 <= 2'b00;
в противен случай
out1 <= out1 1;
приключвам
присвоите clk_gen = out1 [1];
Винаги @ (posedge clk_gen или grst negedge)
започвам
ако (! grst)
out2 <= 2'b00;
в противен случай
out2 <= out2 1;
приключвам
endmodule
Да използвам по-долу скрипт за съставяне на този код:
източник ./synopsys_dc_SMIC18.setup
Сценография "test_generated_clock"
read_verilog. / test_generated_clock.v
връзка
create_clock период от 25-Waveform 12,5 (0) [get_ports (gclk)]
set_clock_transition-доведат 1 [get_clocks (gclk)]
set_clock_transition срутване 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 "бавен" библиотека бавно
set_wire_load_model име "smic18_wl30"-бавно библиотека
set_wire_load_mode "затворени"
set_min_library slow.db-min_version fast.db
change_names-йерархия правилата BORG
create_generated_clock име clock_gen източник 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-часовник "gclk" [get_ports (grst)]
set_input_delay 10-часовник "clock_gen" [get_ports (grst)]
set_dont_touch_network gclk
set_output_delay 10-часовник "gclk" [get_ports (out1 *)]
set_output_delay 10-часовник "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-от [get_ports gclk] до [get_pins out1_reg_1_ / Q]-пътека само
# change_names-йерархия правилата BORG
# запис е Verilog-йерархия-о. / износ / $ Дизайн \ _netlist.sv
##################
когато стартирате "check_timing" аз тичам към това предупреждение:
dc_shell> check_timing
Информация: Проверка generated_clocks ...
Предупреждение: Следният текст, генерирани часовник не е пътя към господаря си часовник.(ТИМ-204)
------------------------------
clock_gen
Информация: Проверка на електрически вериги ...
Информация: Проверка no_input_delay ...
Информация: Проверка unconstrained_endpoints ...
Информация: Проверка pulse_clock_cell_type ...
1
човек аз командата "check_timing", но получава няколко съобщения.
аз опитвам някакъв начин да се избегне това предупреждение, но не успя.
може ли някой да ми каже защо това предупреждение излезе?
и има ли някакъв начин да се избегне този проблем?
Благодарности!
, когато се опитвам да съставят един много прост код (по-долу):
модул test_generated_clock (gclk, grst, out1, out2);
вход gclk;
вход grst;
продукция [1:0] out1;
продукция [1:0] out2;
обл [1:0] out1;
обл [1:0] out2;
тел clk_gen;
Винаги @ (posedge gclk или grst negedge)
започвам
ако (! grst)
out1 <= 2'b00;
в противен случай
out1 <= out1 1;
приключвам
присвоите clk_gen = out1 [1];
Винаги @ (posedge clk_gen или grst negedge)
започвам
ако (! grst)
out2 <= 2'b00;
в противен случай
out2 <= out2 1;
приключвам
endmodule
Да използвам по-долу скрипт за съставяне на този код:
източник ./synopsys_dc_SMIC18.setup
Сценография "test_generated_clock"
read_verilog. / test_generated_clock.v
връзка
create_clock период от 25-Waveform 12,5 (0) [get_ports (gclk)]
set_clock_transition-доведат 1 [get_clocks (gclk)]
set_clock_transition срутване 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 "бавен" библиотека бавно
set_wire_load_model име "smic18_wl30"-бавно библиотека
set_wire_load_mode "затворени"
set_min_library slow.db-min_version fast.db
change_names-йерархия правилата BORG
create_generated_clock име clock_gen източник 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-часовник "gclk" [get_ports (grst)]
set_input_delay 10-часовник "clock_gen" [get_ports (grst)]
set_dont_touch_network gclk
set_output_delay 10-часовник "gclk" [get_ports (out1 *)]
set_output_delay 10-часовник "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-от [get_ports gclk] до [get_pins out1_reg_1_ / Q]-пътека само
# change_names-йерархия правилата BORG
# запис е Verilog-йерархия-о. / износ / $ Дизайн \ _netlist.sv
##################
когато стартирате "check_timing" аз тичам към това предупреждение:
dc_shell> check_timing
Информация: Проверка generated_clocks ...
Предупреждение: Следният текст, генерирани часовник не е пътя към господаря си часовник.(ТИМ-204)
------------------------------
clock_gen
Информация: Проверка на електрически вериги ...
Информация: Проверка no_input_delay ...
Информация: Проверка unconstrained_endpoints ...
Информация: Проверка pulse_clock_cell_type ...
1
човек аз командата "check_timing", но получава няколко съобщения.
аз опитвам някакъв начин да се избегне това предупреждение, но не успя.
може ли някой да ми каже защо това предупреждение излезе?
и има ли някакъв начин да се избегне този проблем?
Благодарности!