Jump to content

    

Dantist2k17

Участник
  • Content Count

    58
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Dantist2k17

  • Rank
    Участник

Recent Profile Visitors

944 profile views
  1. Речь о физ синтезе. Максимальная для setup, минимальная для hold.
  2. В том и загвоздка, что ячейки называются одинаково, т.к. это одни и те же ячейки (физически), просто отхарактеризованны на разных частотах. А каким образом указать синтезатору на то, с какими корнерами работать в определенных частях проекта. Впервые столкнулся с подобной необходимостью. Обычно все по накатанной схеме: create_library_set -name 065_wc -timing lib/lib_wcs_fast.lib create_library_set -name 065_bc -timing lib/lib_bcs_fast.lib create_constraint_mode -name my_constraint_mode -sdc_files sdc/main.sdc create_rc_corner -name my_rc_corner_wc \ -T 85.0 \ -cap_table file_name_worst.captable \ -qx_tech_file file_name create_rc_corner -name my_rc_corner_bc \ -T -65.0 \ -cap_table file_name_best.captable \ -qx_tech_file file_name create_delay_corner -name my_delay_corner_max -library_set 065_wc -rc_corner my_rc_corner_wc create_delay_corner -name my_delay_corner_min -library_set 065_bc -rc_corner my_rc_corner_bc create_analysis_view -name my_analysis_view_setup -constraint_mode my_constraint_mode -delay_corner my_delay_corner_max create_analysis_view -name my_analysis_view_hold -constraint_mode my_constraint_mode -delay_corner my_delay_corner_min init_design -setup my_analysis_view_setup -hold my_analysis_view_hold
  3. Не уверен что подберет. Warning : Multiply-defined library cell. [LBR-22] : Library-cell name collision (LIB1/AND2 and LIB2/AND2). Deleting (LIB2/AND21).
  4. Требований по раздельной реализации нет. Не подумал я о том, что синтезатор сам разрулит. А про CPF надо будет почитать, не знаком. Спасибо.
  5. Приветствую. Есть дизайн, модули в котором должны работать на разных частотах (50 МГц и 1250 МГц). Есть две библиотеки, отхарактеризованные на соответствующие частоты. Вопрос: как объяснить innovus-у, чтобы он работал с разными библиотеками при физическом синтезе соответствующих модулей? В genus-е использовал create_library_domain, альтернативу для innovus найти не смог.
  6. Отключение блоков с последующим сбросом в зависимости от режима работы. Схема небольшая, но частота высокая, поэтому все в ручном режиме.
  7. Добрый день. Помогите разобраться c STA. Имеется модуль на verilog, прикрепляю структурную схему. В модуль "руками" вставлена библиотечная ячейка clock gate. Логический синтез провожу в DC. Задаю следующие SDC: set period 0.8 create_clock -name pll_clk -period $period [get_ports pll_clk] create_generated_clock -name clk_div10 -source [get_ports pll_clk] -edges {10 20 30} [get_ports div10/clk_out] В report_timing наблюдаю: Startpoint: register_en_clk_reg[3] (rising edge-triggered flip-flop clocked by pll_clk) Endpoint: counter_clk10_reg[0] (rising edge-triggered flip-flop clocked by clk_div10') Path Group: clk_div10 Path Type: max Point Incr Path -------------------------------------------------------------------------- clock pll_clk (rise edge) 7.20 7.20 clock network delay (ideal) 0.00 7.20 register_en_clk_reg[3]/C (FDCEX1) 0.00 7.20 r register_en_clk_reg[3]/QB (FDCEX1) 0.64 7.84 f U23/O (INVGX2) 0.07 7.91 r U27/O (XOR2X2) 0.23 8.14 f counter_clk10_reg[0]/D (FDCX1) 0.00 8.14 f data arrival time 8.14 clock clk_div10' (rise edge) 7.60 7.60 clock network delay (ideal) 0.00 7.60 counter_clk10_reg[0]/C (FDCX1) 0.00 7.60 r library setup time -0.27 7.33 data required time 7.33 -------------------------------------------------------------------------- data required time 7.33 data arrival time -8.14 -------------------------------------------------------------------------- slack (VIOLATED) -0.81 Мой вопрос заключается в следующем: почему я не вижу в report_timing задержку на clock gate ячейке? Ведь clk_div10 = clk_gate(clk_div10_int) Это связано с тем что нет clock tree и не установлен set_propagated_clock? В случае установки set_propagated_clock [all_clocks] появляется задержка clock network delay (propagated) = 0.86, но чем конкретно она сформирована не указывается.
  8. Я не вижу вариантов кроме банального сравнения каждого с каждым.
  9. Приветствую. Прошу совета в решении следующей задачки. Имеется модуль с несколькими параметрами, количество параметров произвольное, необходимо выбрать максимальный из них по значению. module main #( parameter TW1 = 100, parameter TW2 = 80, parameter TW3 = 8, parameter TW4 = 534 )( output a, output b, output c, input d, input e); endmodule
  10. Была (есть) проблема, связанная с тем, что Yosys ругался на lib триггера, в котором при описании ff (IQ,IQB) { ... } next_state определяется выражением, например: next_state: (CE*D + !CE*IQ); а не просто как: next_state: D; Как мне рассказали программисты, проанализировавшие исходный код Yosys, там явно указано о том, что подобные выражения текущая версия не поддерживает, мол в разработке. Так что судя по всему дело не в либах. Однако сам Yosys имеет на вооружении команду dff2dffe, которая оптимизирует схему, выявляя ff с мультиплексорами в обратной связи и заменяя их на ffe. При этом в выходной netlist пишутся примитивы \$_DFFE_PP_. Всегда можно сделать автозамену, но это как-то...
  11. Добрый день. Разыскивается пример lib файла с описание FDE триггера для Yosys. Есть ли на форуме те, кто может проконсультировать по работе в Yosys?