|
Общие вопросы |
|
|
|
Apr 27 2016, 10:48
|
Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917

|
Доброго времени суток. Я начал вторую итерацию своего обучения ПЛИС (XILINX). И появилось множество вопросов. Вот есть простая VHDL модель, отлаженная в симуляторе.
Какие шаги чтобы ее подконтрольно "залить" в ПЛИС нужно пройти? Просто обозначить контакты и прошить, это опять не то, как я понял. С чего начинается (какие шаги) создание проекта с целью загрузить прошивку из готовой VHDL модели?
timing constraints как ими пользоваться? Есть ли литература /статьи (документацию начал читать). Как оценить проект по временным параметрам? Как узнать время hold, setup в проекте? Как узнать возможны нарушения по временам и устранить их?
Как возможно устранить всякие возможные проблемы , которые могут всплыть?
Я пока пользуюсь ISE и ориентируюсь на xilinx spartan 6 серии . _______________________________________________________ Проект создается через Planahead или ISE profect navigator? Какую документацию необходимо изучить и держать под рукой включая на софт(документации много для себя пока держу несколько, связанных с DSP, IO.) В общем хочется научиться так же на базовой уровне пользоваться ПО для ПЛИС, чтобы перед прошивкой быть в проекте уверенным и понимать на что он способен и какие ограничения имеет.
Приму любые толковые ссылки на статьи/литературу/обучалки/советы
PS. чтобы не засорять вторым топиком, еще один вопрос задам тут. Я столкнулся с такой ситуацией. Один и тоже проект на одно и том же кристалле в одной точке дает разные (две платы-два кристалла -одна и та же конфигурация) результаты. Т.к. проект не мой , но я как раз изучаю схожие вопросы, я хочу данный проект проверить на временные параметры. Как вот в таких ситуациях, когда используешь чужие проекты их сопровождаешь и устраняешь неисправности? (проект схемотехнический, в смысле не описан языком. ). И как оформлять свои проекты, чтобы их удобней и самому сопровождать и другим? Тк. кроме vhdl кода еще же нужно прикладывать какие-то данные (насйтроки среды и т.п.)
|
|
|
|
|
 |
Ответов
|
Apr 28 2016, 07:34
|
Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917

|
Так .. Т.к. мои проекты маленькие и простые с ними проблем пока нету. Я взял проект (не свой (писал выше об этом)) Включил timing constraints на тактовую частоту (хотя там несколько глоб сигналов...на каждый глобальный свой констрайн или минимально необходимо тактовый основной ограничить?) Подождал пока соберется проект . и Полезли ошибки Static Timing. Как понять и как использовать эту информацию (я пока в общих чертах понимаю)? Как определить на какой частоте тогда соберется проект? Какими путями возможно решения таких проблем ? Как найти пути, которые подсвечиваются красным и исправить ситуацию? вот к примеру,  Каков алгоритм действий в таких ситуациях?
|
|
|
|
|
Apr 28 2016, 08:49
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(go2winner @ Apr 28 2016, 10:34)  Каков алгоритм действий в таких ситуациях? Решайте проблемы по мере их поступления. Конкретно меня смущает название источника клока - XLXN_9945 - что это? Зайдите в Tools->constraints editor и посмотрите, какие ограничения подчеркнуты красным (это то, что используется в качестве тактового сигнала, но реальные значения в ограничениях не прописаны). Вся логика должна быть синхронна, а это либо гэйтед клок (как уже писали), либо вообще какой-то сигнал, не имеющий к тактовому отношения. Теперь к клоку назначения - Inv_100 - классический переход сигнала от одного тактового домена в другой, т.е. Ваш сигнал зарождается на частоте XLXN_9945 и поступает в домен, работающей на частоте Inv_100. Вы вообще это планировали (если да, то каким образом реализован переход из одного тактового домена в другой)? to GorbyЦитата При временнОй симуляции (моделировании) схема работает "как настоящая", со всеми аппаратными задержками и проч. УзнАете много нового. За 10 лет практики в области именно fpga ни разу не видел разработчика, который бы занимался симуляцией на уровне выше функционального с пользой для дела (чиста для себя поиграться да, сам gate-моделированием занимался). Для работоспособности достаточно функционального моделирования, правильное описание всех ограничений и отсутствие временных ошибок на анализаторе. ЗЫ go2winner Для понимания процесса прохода сигнала по критическому пути ниже того, что Вы привели должен быть отчет о прохождении сигнала (следующие строчки). Там будет подробная интересная информация. А так на куске отчета видно только, что сигнал идет от триггера до триггера.
|
|
|
|
|
Apr 28 2016, 11:54
|
Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917

|
Цитата(bogaev_roman @ Apr 28 2016, 08:49)  Проект не мой, я сам вписал ограничение на глобальную тактовую частоту (там еще пару глобальных сигналов есть, но их пока не трогал) Сначала о том , как получены вышепредставленые иллюстрации . Я взял проект (не свой, да еще и схемотехнический, но общую логику работы понимаю) внес в него ограничения (до этого их не было) Код NET "GEN_100MHz" TNM_NET = GEN_100MHz; TIMESPEC TS_GEN_100MHz = PERIOD "GEN_100MHz" 100 MHz HIGH 50%; и откомпилировал (как вы советовали выше) Потом зашел в пункт Static Timing . Собственно там есть n-ое количество крестиков. Вот пытаюсь осознать, как сначало извлечь оттуда побольше информации , а потом, как ею воспользоваться для устранения минусов. Код Maximum Data Path at Slow Process Corner: XLXI_7012/Q0 to XLXI_1112/Q_0 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X29Y6.CQ Tcko 0.430 NB0 XLXI_7012/Q0 SLICE_X27Y6.C4 net (fanout=15) 0.780 NB0 SLICE_X27Y6.C Tilo 0.259 XLXN_40258 XLXI_8788/Mmux_D11111 SLICE_X27Y6.B6 net (fanout=4) 0.353 Sel_B11 SLICE_X27Y6.B Tilo 0.259 XLXN_40258 XLXI_10176 SLICE_X29Y5.C1 net (fanout=3) 0.741 Set_command SLICE_X29Y5.C Tilo 0.259 B3_Mux<2> XLXI_5856 SLICE_X31Y2.A3 net (fanout=8) 1.528 CE_AT SLICE_X31Y2.A Tilo 0.259 ARX_CH6<3> XLXI_8115 SLICE_X32Y2.CE net (fanout=1) 0.347 XLXN_22878 SLICE_X32Y2.CLK Tceck 0.314 ARX_CH5<3> XLXI_1112/Q_0 ------------------------------------------------- --------------------------- Total 5.529ns (1.780ns logic, 3.749ns route) (32.2% logic, 67.8% route) Огромное спасибо. я даже не заметил (точнее не знал о колонке с путями). На самом деле часть этого проекта неработоспособна (как раз временные задержки), поэтому я его использую. Как раз данный путь показывает неработоспособный кусок (из -за задержек.).... Как это схемно выглядит...я рисунок приведу этого пути..... (коряво, но суть понятна)  ну и все в таком духе...теперь как интегрпетировать все результаты? Код Slack (setup path): -11.755ns (requirement - (data path - clock path skew + uncertainty)) К примеру clock path skew и slack setup...почему значение отрицательное? Пойду пока почитаю.. в книге была глава динамическая дисциплина...насколько помню я могу влиять только на задержку комбинационной схемы....более ни на что другое. Получаются данные слишком поздно приходят?
Сообщение отредактировал go2winner - Apr 28 2016, 12:08
|
|
|
|
|
Apr 28 2016, 12:49
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(go2winner @ Apr 28 2016, 14:54)  Получаются данные слишком поздно приходят? Да, но проблема не в этом. Каким тактовым сигналом тактируется триггер XLXI_7012/Q0? Вы его не задали в ограничениях и анализатор не знает как это интерпретировать и развести. В результате получаете непонятно что. Проверьте, то о чем я уже писал. Просто такое ощущение, что у Вас несколько частот, несвязанных между собой (триггер источник работает на одной, приемный на другой) Цитата Tools->constraints editor и посмотрите, какие ограничения подчеркнуты красным (это то, что используется в качестве тактового сигнала, но реальные значения в ограничениях не прописаны)
|
|
|
|
Сообщений в этой теме
go2winner Общие вопросы Apr 27 2016, 10:48 bogaev_roman Начните с простого - назначьте пины и определитесь... Apr 27 2016, 11:31 go2winner Цитата(bogaev_roman @ Apr 27 2016, 11:31)... Apr 27 2016, 12:11  Maverick Цитата(go2winner @ Apr 27 2016, 15:11) Ещ... Apr 27 2016, 12:46  bogaev_roman Цитата(go2winner @ Apr 27 2016, 15:11) То... Apr 27 2016, 12:55   Jackov Цитата(bogaev_roman @ Apr 27 2016, 15:55)... Apr 27 2016, 15:05    Bad0512 А вообще неплохо бы определиться нужен ли вам ресе... Apr 28 2016, 05:18     go2winner Цитата(Bad0512 @ Apr 28 2016, 05:18) А во... Apr 28 2016, 06:59      Bad0512 Цитата(go2winner @ Apr 28 2016, 12:59) Ст... Apr 28 2016, 07:14 Bad0512 Цитата(go2winner @ Apr 28 2016, 13:34) Та... Apr 28 2016, 08:10  go2winner Цитата(Bad0512 @ Apr 28 2016, 08:10) Судя... Apr 28 2016, 08:27   Bad0512 Цитата(go2winner @ Apr 28 2016, 14:27) Т.... Apr 28 2016, 09:04  Gorby Цитата(bogaev_roman @ Apr 28 2016, 10:49)... Apr 28 2016, 09:45   Bad0512 Цитата(Gorby @ Apr 28 2016, 15:45) А я во... Apr 28 2016, 09:50   andrew_b Цитата(Gorby @ Apr 28 2016, 12:45) А я во... Apr 28 2016, 11:56    go2winner Цитата(bogaev_roman @ Apr 28 2016, 12:49)... Apr 28 2016, 13:15     bogaev_roman Цитата(go2winner @ Apr 28 2016, 16:15) Та... Apr 28 2016, 13:56      go2winner Цитата(bogaev_roman @ Apr 28 2016, 13:56)... Apr 28 2016, 14:23       bogaev_roman Цитата(go2winner @ Apr 28 2016, 17:23) То... Apr 28 2016, 14:59       Bad0512 Цитата(go2winner @ Apr 28 2016, 20:23) ка... Apr 29 2016, 05:27 Gorby Цитата(go2winner @ Apr 27 2016, 12:48) Я ... Apr 28 2016, 07:36 go2winner Цитата(Gorby @ Apr 28 2016, 07:36) Тут Вы... Apr 28 2016, 08:02  Gorby Цитата(go2winner @ Apr 28 2016, 10:02) Я ... Apr 28 2016, 10:25   Bad0512 Цитата(Gorby @ Apr 28 2016, 16:25) То ест... Apr 28 2016, 10:33   bogaev_roman Цитата(Gorby @ Apr 28 2016, 13:25) То ест... Apr 28 2016, 10:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|