Zversky 19 9 мая Опубликовано 9 мая · Жалоба Всем добра. Пытаюсь "параметризовать" create_clock таким образом: # clk with period 20ns results in frequency 50MHz set clk50MHz_period 20.0000 set clk50MHz_first_rising_edge 0.000 set clk50MHz_next_falling_edge 10.000 create_clock \ -name "clk50MHz" \ -period $clk50MHz_period \ -waveform { \ $clk50MHz_first_rising_edge \ $clk50MHz_next_falling_edge \ } \ [ get_ports { CLOCK_50 } ] Получаю: Warning (332049): Ignored create_clock at TestSDC.sdc(54): Time value "$clk50MHz_first_rising_edge" is not valid Info (332050): create_clock \ -name "clk50MHz" \ -period $clk50MHz_period \ -waveform { \ $clk50MHz_first_rising_edge \ $clk50MHz_next_falling_edge \ } \ [ get_ports { CLOCK_50 } ] Или в виде картинки Вопрос: ЧЯДНТ? Проект с почти всеми комплектующими прилагаю. TestSDC.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 9 мая Опубликовано 9 мая · Жалоба $ tclsh % set a 1 1 % puts { $a $a } $a $a Ergo: внутри {} переменные не подставляются. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zversky 19 9 мая Опубликовано 9 мая · Жалоба Спасибо, так прошло: set clk50MHz_first_rising_edge 0.000 set clk50MHz_next_falling_edge 10.000 set clk50MHz_waveform [ list $clk50MHz_first_rising_edge $clk50MHz_next_falling_edge ] create_clock \ -name "clk50MHz" \ -period $clk50MHz_period \ -waveform $clk50MHz_waveform \ [ get_ports { CLOCK_50 } ] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 10 мая Опубликовано 10 мая · Жалоба Только зачем? Вроде бы по умолчанию именно такой меандр и есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zversky 19 10 мая Опубликовано 10 мая · Жалоба Цель - вплести сюда скважность в %. Примерно так: шаг 1 set clk50MHz_first_rising_edge 0.000 set clk50MHz_next_falling_edge [ expr $clk50MHz_period / 2 ] set clk50MHz_waveform [ list $clk50MHz_first_rising_edge $clk50MHz_next_falling_edge ] create_clock \ -name "clk50MHz" \ -period $clk50MHz_period \ -waveform $clk50MHz_waveform \ [ get_ports { CLOCK_50 } ] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 10 мая Опубликовано 10 мая · Жалоба Так я же и говорю: скважность 2 по умолчанию. Зачем её дополнительно задавать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zversky 19 10 мая Опубликовано 10 мая · Жалоба Я хочу не по умолчанию. Ну вот захотелось мне так. Из серии: "а, вдруг, война, а я уставший?" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться