_sda 0 5 сентября, 2008 Опубликовано 5 сентября, 2008 · Жалоба Скачал у Альтеры пример clock_enable_multicycle.qar,а он похоже не работающий.Ибо setup relationship у него равен одному такту,а должен быть равен двум. http://www.altera.com/support/examples/dow..._multicycle.qar вот их строчки из .sdc create_clock -name fast_clk -period 10.000 -waveform { 0.000 5.000 } [get_ports {fast_clk}] create_generated_clock -name clk_div_2 -source [get_ports {fast_clk}] -divide_by 2 [get_pins {enable_reg|q}] #Setup multicycle of 2 to enabled driven destination registers set_multicycle_path 2 -to [get_fanouts [get_pins enable_reg|q*] -through [get_pins -hier *|*ena*]] -end -setup #Hold multicycle of 1 to enabled driven destination registers set_multicycle_path 1 -to [get_fanouts [get_pins enable_reg|q*] -through [get_pins -hier *|*ena*]] -end –hold Как-то их подправить,видимо,нужно.Как? Сразу бросается в глаза что clk_div_2 совсем не клок,а enable.А ещё что? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 8 сентября, 2008 Опубликовано 8 сентября, 2008 · Жалоба Неужели никто констрейны не пишет? Вы хоть поругайте,если вопрос невнятно задал. Как правильно обконстрейнить схему с использованием enable? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 сентября, 2008 Опубликовано 11 сентября, 2008 · Жалоба посмотрел этот пример, странный какой то. клок используется только один, и констрейн ставится по данным, на одинаковом клоке. немного поигрался с этим проектом, посмотрел mnl_timequest_cookbook.pdf и quartusii_handbook.pdf , поправил немного sdc файл, что бы заработал. ИМХО я бы описал так : set_multicycle_path 2 -from [get_pins -hier enable_reg|regout] -to [get_pins -hier *|*ena*] -setup -end set_multicycle_path 1 -from [get_pins -hier enable_reg|regout] -to [get_pins -hier *|*ena*] -hold -end и никаких create_generated_clock а в базовом sdc цифры 2 и 1 стоят правильные. A multicycle constraint relaxes setup or hold relationships by the specified number of clock cycles based on the source (-start) or destination (-end) clock. An end multicycle constraint of 2 extends the worst-case setup latch edge by one destination clock period. Hold multicycle constraints are based on the default hold position (the default value is 0). An end hold multicycle constraint of 1 effectively subtracts one destination clock period from the default hold latch edge. А вообще, если нет больших проблем с тактовой и ресурсом, я почти не ставлю мультициклы. Удачи!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 11 сентября, 2008 Опубликовано 11 сентября, 2008 · Жалоба посмотрел этот пример, странный какой то. клок используется только один, и констрейн ставится по данным, на одинаковом клоке. У меня сейчас тоже похожий узел в проекте будет,с enable на одном клоке.Тактовая частота очень высокая. Спасибо!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 11 сентября, 2008 Опубликовано 11 сентября, 2008 · Жалоба Нет,не работает. regout нужно заменить на q,но всё равно setup relationship равен одному такту,а должен быть равен двум тактам. Картинка должна быть примерно такой: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 сентября, 2008 Опубликовано 15 сентября, 2008 · Жалоба Нет,не работает. regout нужно заменить на q,но всё равно setup relationship равен одному такту,а должен быть равен двум тактам. я собирал под второй кулон, у него в тригерах выход regout а не q. таймквест мне ошибок, на альтеровском дизайне не давал %). Если хотите вышлите мне ваш референсный проект, поковыряю поподробнее. Кстати вы принимаете решение о том что констрейн не работает на основе чего ? У вас setup/hold не выполняется ? или просто картинка не так отрисовывается ? Нарушение мультицикла это именно нарушение setup/hold, а не точная задержка сигнала на 1 такт. %)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 16 сентября, 2008 Опубликовано 16 сентября, 2008 · Жалоба я собирал под второй кулон, у него в тригерах выход regout а не q. таймквест мне ошибок, на альтеровском дизайне не давал %). Если хотите вышлите мне ваш референсный проект, поковыряю поподробнее. Кстати вы принимаете решение о том что констрейн не работает на основе чего ? У вас setup/hold не выполняется ? или просто картинка не так отрисовывается ? Нарушение мультицикла это именно нарушение setup/hold, а не точная задержка сигнала на 1 такт. %)) 1).Я собирал под циклон-3,при указанных параметрах клока и без констрейнов все слаки положительные.Чтобы получить отрицательные слаки я уменьшил период клока до 6 нс. 2).Вот картинка с Альтеровскими строчками мультицикла: 3).Вот картинка с Вашими строчками мультицикла: Видно что разницы нет.Что Вы на это скажете? http://edisk.ukr.net/get/346740/mc_pic2.qar Расширение .htm нужно изменить на .qar Схемотехнику проекта не менял,только файл .sdc. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 сентября, 2008 Опубликовано 16 сентября, 2008 · Жалоба Видно что разницы нет.Что Вы на это скажете? Расширение .htm нужно изменить на .qar ну что тут можно сказать, надо копать %) по линку мне выдает COOKIE_EMPTY. Кинул мыло в личку, лучше вышлите так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 16 сентября, 2008 Опубликовано 16 сентября, 2008 · Жалоба ну что тут можно сказать, надо копать %) по линку мне выдает COOKIE_EMPTY. Кинул мыло в личку, лучше вышлите так. Выслал проект на почту "диод". Уж очень хочется получить картинку,похожую на эту,с положительным слаком. Я сейчас могу это сделать только для всех узлов запитанных от клока,а нужно избирательно,только в те узлы в которые заводится ena. Удачи!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 17 сентября, 2008 Опубликовано 17 сентября, 2008 · Жалоба Я сейчас могу это сделать только для всех узлов запитанных от клока,а нужно избирательно,только в те узлы в которые заводится ena. ну в общем поломал я голову, подумал с учетом некорректности предоставленного альтерой дизайна. И вот что заметил : 1. Что же именно валиться : а валится путь с регистров, работающих на полном клоке, до выходных проводов-"виртуальных регистров", по понятию тайм квеста.(См. путь в sample1). И ведь по сути так и есть, мултицикловость в нашем случае относиться к данным, а не к сигналу enable. Он то как раз должен идти на полном клоке. 2. Поступил очень просто, мышью на этот путь + правая кнопка и set multycycle path-> в sdc закоментил старые строки вписал такие : set_multicycle_path -from {x_times_y[*]} -to {xy_out[*]} -setup -start 2 set_multicycle_path -from {x_times_y[*]} -to {xy_out[*]} -hold -start 1 set_multicycle_path -from {a_times_b[*]} -to {ab_out[*]} -setup -start 2 set_multicycle_path -from {a_times_b[*]} -to {ab_out[*]} -hold -start 1 и вуаля (см. sample2) И ведь если подумать так оно и должно быть. Данный пример не корректен. Блок умножителя с регистрами работает на полной тактовой и сигнал enable нужен для мультиплексирования потоков. Мультициклы начинаются до регистров и после регистров умножителя. И прописывать их надо как пути по данным. Но вот как сие дело распространить на логический блок перед/за умножителем надо подумать. To be continue %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 17 сентября, 2008 Опубликовано 17 сентября, 2008 · Жалоба To be continue %) Класс,я как-то о таком решении не подумал:-(( Однако при сложном проекте ручками нужно будет все шины прописывать...Или вводить префиксы/постфиксы. Видимо должна всё таки быть возможность указать то же самое через ENA, не зря Альтеровцы применили ключевое слово -through(правда,криво применили). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 1 октября, 2008 Опубликовано 1 октября, 2008 · Жалоба немножко оффтопик, но по теме будьте осторожны в документе mnl_timequest_cookbook.pdf :: Quartus II TimeQuest Timing Analyzer Cookbook :: System Synchronous Output #create the output maximum delay for the data output from the FPGA that #accounts for all delays specified set_output_delay -clock virt_sys_clk -max [expr $CLKs_max + $BD_max - $tSU - $CLKd_min] [get_ports {data_in[*]}] ошибка. должно быть так set_output_delay -clock virt_sys_clk -max [expr $CLKs_max + $BD_max + $tSU - $CLKd_min] [get_ports {data_in[*]}] причем в других доках Constraining SOPC Designs v1[1].0.doc и an433.pdf :: Constraining and Analyzing Source-Synchronous Interfaces примеры приведены правильно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 1 октября, 2008 Опубликовано 1 октября, 2008 · Жалоба Спасибо,примем к сведению.Точно data_in?Не data_out? А по моей теме пока сдвигов нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 октября, 2008 Опубликовано 2 октября, 2008 · Жалоба Спасибо,примем к сведению.Точно data_in?Не data_out? А по моей теме пока сдвигов нет? пример вставлен копи пастом, в оригинале data_in (похоже что подобные кукбуки у альтер пишутся не гуру и нормально не рецензируются %() По вашей теме пока не до этого, внезапно нагрузили модернизацией пары чужих проектов, пришлось даже хобби отложить %( Но к теме еще вернемся %)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 2 октября, 2008 Опубликовано 2 октября, 2008 · Жалоба o'k! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться