|
Общие вопросы |
|
|
|
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 27 2016, 11:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Начните с простого - назначьте пины и определитесь с тактовой частотой (для начала используйте всего один временной домен). Все ограничения пропишите в .ucf файле (может либо хелпом воспользоваться, либо переводом Зотова), топовый (головной модуль) подключите в ISE. Для проверки рабоспособнтсти используйте ChipScope. Ну, к примеру, простой проект счетчика(по хорошему синхросигнал требуется пропустить через pll, но в простейшем случае неважно) (verilog): Код module cnt_8 ( input clk, output tst_led );
reg [7:0] counter;
always @(posedge clk) counter<=counter+1;
assign tst_led=|counter;
endmodule Для данного случая, требуется назначить вход тактовой частоты и какой-нибудь тестовый выход (исходя из документации). Далее прописываете в UCF-файле ограничения: Код NET "clk" TNM_NET = "clk"; TIMESPEC TS_clk = PERIOD "сlk" 8.138 ns HIGH 50%;//тактовая частота 122,88МГц от осциллятора NET "clk" LOC = AF20;//назначение ноги NET "tst_led" LOC = L23;//назначение ноги Создаете новый модуль Chipscope и выводите необходимые сигналы для проверки работоспособности на железе -задаете опорную частоту, глубину, триггеры и т.д. (project->new_source->chip scope....). Компилируете все и после окончания проверяете, выполнились ли Ваши временные ограничения (design overview->static timing-> отсутствие временных ошибок, т.е. нет путей, подсвеченных красным цветом). Если временных ошибок нет, проверяете работоспособность с помощью chipscope. Если алгорим работает в соответствии с заданным, проект работоспособен.
|
|
|
|
|
Apr 27 2016, 12:11
|
Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917

|
Цитата(bogaev_roman @ Apr 27 2016, 11:31)  Я пока на этом и остановился, перед тем, как написал сюда. Т.е. сделал простой проект назначил Ucf файле тактовую и ножки. Только chipscope не пользовался. Как часто им оперируют? Сяду, попробую ,посмотрю , как им оперировать. Еще вопрос. Вот есть асинхронный сброс . Но откуда он берется для начальной инициализации (сигнал) ? Обычно я, не думая, в тестбенче делал начальный короткий импульс сброса. А в железе как? кто дает этот начальный короткий импульс для инициализации? , Или нужно заранее в архитектуре при объявлении сигналов и т.п. определять начальные значения , а ассинхронный сигнал только для кнопки reset? Тут мне в общем тоже не понятно немного.
|
|
|
|
|
Apr 27 2016, 12:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(go2winner @ Apr 27 2016, 15:11)  Только chipscope не пользовался. Как часто им оперируют? Сяду, попробую ,посмотрю , как им оперировать. С помощью внутреннего анализатора можно посмотреть большинство сигналов, т.е. тоже самое, что Вы делаете с помощью симулятора. Для счетчика, к примеру, вытащить все разряды - сформировать из них шину - сделать тип шины unsignement - вывести на waveform и увидеть пилу в режиме реального времени (ну или почти), т.е. это просто один из способов отладки в железе. Цитата Еще вопрос Один из способов следующий - пускать тактовую частоту на pll, в ней задействовать выход locked и его использовать в качестве сброса. В жизни это означает, что после загрузки прошивки в плисину тактовая частота поступает на pll и требуется некоторое минимальное время (указано в документации) для ее стабилизации на выходе, после чего автоматически выставляется сигнал locked, до этого момента все находится под сбросом. В случае, если Вы, в качестве сброса хотите применить внешнюю кнопку/джампер требуется поставить защиту от дребезга, В некоторых случаях применяется и софтовый сброс - переданный по какому-либо (uart,ethernet) интерфейсу например с ПК.
|
|
|
|
|
Apr 27 2016, 15:05
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(bogaev_roman @ Apr 27 2016, 15:55)  пускать тактовую частоту на pll, в ней задействовать выход locked и его использовать в качестве сброса Дополню. Этот locked изменяется асинхронно относительно тактовой частоты выдаваемой с PLL, потому его хорошо бы синхронизировать, пропустив через D-триггер.
Сообщение отредактировал Jackov - Apr 27 2016, 15:05
|
|
|
|
Сообщений в этой теме
go2winner Общие вопросы Apr 27 2016, 10:48  Maverick Цитата(go2winner @ Apr 27 2016, 15:11) Ещ... Apr 27 2016, 12:46    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 go2winner Так ..
Т.к. мои проекты маленькие и простые с ним... Apr 28 2016, 07:34 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 bogaev_roman Цитата(go2winner @ Apr 28 2016, 10:34) Ка... Apr 28 2016, 08:49  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, 08:49)... Apr 28 2016, 11:54   bogaev_roman Цитата(go2winner @ Apr 28 2016, 14:54) По... Apr 28 2016, 12:49    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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|