Перейти к содержанию
    

SDC @ Quartus что не так с параметризацией ?

Всем добра.


Пытаюсь "параметризовать" 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 } ]

 

Или в виде картинки
image.thumb.png.6ebcc1eef8eb13ef80e482f598d0946d.png

 

Вопрос: ЧЯДНТ?
Проект с почти всеми комплектующими прилагаю.

TestSDC.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$ tclsh
% set a 1
1
% puts { $a $a }   
 $a $a

Ergo: внутри {} переменные не подставляются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, так прошло:

    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 } ]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только зачем? Вроде бы по умолчанию именно такой меандр и есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цель - вплести сюда скважность в %.
Примерно так: шаг 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 } ]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так я же и говорю: скважность 2 по умолчанию. Зачем её дополнительно задавать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я хочу не по умолчанию. Ну вот захотелось мне так. Из серии: "а, вдруг, война, а я уставший?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...