Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.11.19 21:14
Оценка: 17 (8)
Привет всем,

Где-то с месяц назад я обещал здесь сделать в KiCAD простую платку для Spartan-7 FPGA, которую было бы можно собрать новичкам, а также использовать схему и разводку как основу для своих плат.

Сначала я хотел сделать простейшую "мигалку для LED", но потом подумал, что эта платка получится довольно бесполезной, потому решил добавить чип памяти DDR2. DDR2 (а не 3) выбрал потому, что так можно съэкономить один DC-DC конвертер, потому что она питается 1.8 В, и эта линия у меня и так есть на плате. Просто мне хотелось бы, чтобы платку можно использовать для чего-то помимо одноразовой мигалки диодами, а плата с памятью ИМХО куда более полезна. Разводку делаю под 2 гигабитный чип (128Мх16, то есть 256 Мбайт), но можно поставить и меньший объём, если захочется. Ещё есть мысль добавить коннектор HDMI OUT, чтобы можно было показывать чё-нить — он очень прост в реализации, и вполне в состоянии вывести 720p@60Hz, и, поднапрягжись, даже 1080p@60Hz. Остальные пины думаю вывести на обычные 2.54 мм header'ы, чтобы к ним можно было подключать всякие внешние штуки. В настоящий момент в схеме 124 детали, из них 103 — это конденсаторы и резисторы, а остальные — главные компоненты (ПЛИС, флеш-память, память DDR2, 3-канальный DC-DC конвертер, референс для встроенного АЦП, генератор тактовых сигналов), плюс по мелочи всякие LED, транзисторы, коннекторы и т.д.

В настоящий момент схема в целом готова (только HDMI ещё не добавил, и также не вывел все свободные пины на обычные 2.54 мм header'ы), также сделал разводку DDR2 (как самую сложную часть). В ближайшее время доделаю всё остальное, после чего закажу плату и проверю. Поскольку возможности KiCAD весьма ограничены по сравнению с Orcad Pro, которым я обычно пользуюсь, а те, что есть, подглючивают местами, я делал length matching для дорожек DDR2 полностью вручную. Так что мне и самому интересно, "заведётся" ли интерфейс или нет

Проект сделан в KiCAD версии 5.1.4 (текущая на момент написания этого поста). Библиотеку можно взять тут: https://github.com/asmi84/kicad-library сам проект тут: https://github.com/asmi84/kicad-projects (там пока только один проект). Плата и библиотечные символы ссылаются на 3D модели, которые есть в третьем репо, но он приватный из-за того, что лицензии на некоторые модели запрещают публичную публикацию.

Как я уже сказал, работа над проектом всё ещё ведётся, потому если вдруг у кого-то есть какие-то предложения/пожелания, или вопросы — высказывайте. Есть ещё где-то 30 свободных пинов, так что можно добавить ещё какую-нить 3.3 В периферию После того, как закончу с разводкой, я планирую собрать плату и проверить, будет ли всё работать или нет — потому желающим собрать себе такую же советую подождать немного При сборке можно не ставить память и прочие опциональные детали (я после завершения проекта выложу таблицу, где укажу, какие детали обязательны, а какие нет). Думаю, что реально уложиться в $100 за платы + детали для сборки одного экземпляра (правда, ещё нужен будет программатор, но его можно купить на алиэкспрессе, если совсем жаба душит — я использую вот этот от Digilent), но посмотрим, как оно выйдет в финале
[КУ] оккупировала армия.
Re: Делаем плату для FPGA с нуля для новичков
От: alex_public  
Дата: 05.11.19 13:13
Оценка:
Привет!

Я пока проектик не смотрел (времени особо нет сейчас). Хочу просто поинтересоваться пока: во сколько слоёв разводка и по каким нормам?
Re[2]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 05.11.19 14:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Я пока проектик не смотрел (времени особо нет сейчас). Хочу просто поинтересоваться пока: во сколько слоёв разводка и по каким нормам?

4 слоя, 0.1/0.1 мм дорожки, 0.2/0.45 мм виа. Делаю под процесс JLCPCB, у них самые дешёвые четырёхслойки на рынке ($29 за 10 штук размером до 10х10 см). Полная спецификация тут, структура платы (stackup) JLC2313.
[КУ] оккупировала армия.
Re: Делаем плату для FPGA с нуля для новичков
От: Iso12  
Дата: 23.11.19 11:28
Оценка:
Здравствуйте, koandrew, Вы писали:


K>Где-то с месяц назад я обещал здесь сделать в KiCAD простую платку для Spartan-7 FPGA, которую было бы можно собрать новичкам, а также использовать схему и разводку как основу для своих плат.


Очень интересная идея.
Из вопросов:
1) Как плата будет запитываться? USB или через блок питания?
2) Какой кварц планируете ставить?
2) Заливка софта на плату как планируете ?

Из предложений такие мысли:
1) Пару LED и пару кнопок.
2) Пару PMOD портов для переферии.
3)Можно было бы камеру подключить, через MIPI CSI например эту

Успехов
Re[2]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 23.11.19 14:18
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Очень интересная идея.

I>Из вопросов:
I>1) Как плата будет запитываться? USB или через блок питания?
Любой БП на 12 В.
I>2) Какой кварц планируете ставить?
Я всегда ставлю 100 МГц, т.к. с этой частоты удобно генерировать необходимые частоты для контроллера памяти DDR2 (166.667 МГц, 200 МГц), но вообще можно поставить любой, или даже добавить второй генератор — благо они все имеют стандартизированную распиновку.
I>2) Заливка софта на плату как планируете ?
Я пользуюсь вот этой штукой, она "одевается" прямо на коннектор JTAG. Но можно использовать и стандартный программер Xilinx (вроде как на али полно его клонов за три копейки).

I>Из предложений такие мысли:

I>1) Пару LED и пару кнопок.
На плате уже предусмотрено два RGB LED, а вот про кнопки спасибо что напомнили — я чего-то забыл про них.

I>2) Пару PMOD портов для переферии.

I>3)Можно было бы камеру подключить, через MIPI CSI например эту
У меня осталось 24 свободных пина, и ещё 4 пина в 1.8 вольтовом банке памяти. И я хочу по максимуму оставить их свободными, т.к. идея платы в том, чтобы конечные пользователи смогли легко её модифицировать под свои нужды.
Я посмотрел на схему Zybo — для MIPI нужно 16 пинов, а для PMOD — 8. Потому если я добавлю порт камеры и 1 ПМОД — то пины закончатся
Можно было бы, конечно, выбрать корпус с бОльшим количеством пинов, но тогда нужно будет делать 6-слойную плату, а это существенно дороже текущей четырёхслойки. Опять же, смысл проекта в том, чтобы быть доступным для реализации и модификации новичками, так что такое усложнение ИМХО ни к чему. По этой же причине я отказался от первоначальной своей идеи добавить гигабитный Ethernet.

Если этот проект "зайдёт", то тогда уже можно будет подумать о более сложной плате. Если взять шестислойку, то там откроются широчайшие возможности, т.к. на ней можно будет полностью развести 484-пиновый чип, который даст до 338 IO пинов. Но это будут уже несколько другие деньги — как в смысле цены платы ($100-150 за десяток), так и самих чипов (XC7S50-2FGGA484C стоит $64 и даст 250 user IO, а топовый XC7S100-2FGGA484 c 338 user IO — $120-140 в зависимости от температурной версии). Туда можно будет поставить и более серьёзную систему памяти (например пара 4-гигабитных чипов DDR3 256Mx16 даст 1 Гигабайт памяти при 32-битной шине данных и полосе в 32 * 400 * 2 = 25600 МБит/с), или вообще развести SODIMM-слот для DDR3, который даст ещё вдвое бОльшую полосу пропускания (т.к. у SODIMM 64-битная шина данных).
Ну или взять эквивалентный Artix-7, и там становятся доступны 4 трансивера до 6.6 Гбит/с каждый, на которых можно построить много всяких интересных интерфейсов (например, SATA-III, DislayPort 1.2, PCIE 2.0 x1/x2/x4, USB 3.0). Короче возможностей много
[КУ] оккупировала армия.
Отредактировано 24.11.2019 5:53 koandrew . Предыдущая версия .
Re: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 08.12.19 20:02
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Плата и библиотечные символы ссылаются на 3D модели, которые есть в третьем репо, но он приватный из-за того, что лицензии на некоторые модели запрещают публичную публикацию.


А почему не использовать символы, которые предоставляют бесплатно продавцы? Маузер, например?
Ад пуст, все бесы здесь.
Re: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 08.12.19 21:43
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Сначала я хотел сделать простейшую "мигалку для LED", но потом подумал, что эта платка получится довольно бесполезной, потому решил добавить чип памяти DDR2. DDR2 (а не 3) выбрал потому, что так можно съэкономить один DC-DC конвертер, потому что она питается 1.8 В, и эта линия у меня и так есть на плате. Просто мне хотелось бы, чтобы платку можно использовать для чего-то помимо одноразовой мигалки диодами, а плата с памятью ИМХО куда более полезна.


Кстати, а не проще использовать SRAM?
Ад пуст, все бесы здесь.
Re[2]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 01:10
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати, а не проще использовать SRAM?


Проще, но она очень дорогая для тех объёмов, которые нужны для хранения минимум пары фреймбуферов, и полосы пропускания, нужной для стриминга видео в реальном времени в память (подготовка нового фрейма) и одновременно из памяти (вывод текущего фрейма через HDMI OUT). Один чип DDR2 128Мх16 на частоте 333 МГц обеспечивает пиковую полосу в 333*2*2 = 1332 Мбайт/с и объём в 256 Мбайт при цене в $15 (на али можно найти и дешевле), достичь подобных параметров для SRAM будет просто невозможно в рамках этого проекта. Типовая частота SRAM 100 МГц потому, нужна будет очень широкая шина данных — 96 бит (шесть параллельных чипов в 16 бит каждый) дадут полосу в 100*2*6 = 1200 Мбайт/с. Для такой шины нужно будет намного больше пинов, чем у нас есть, да и разводка такого количества чипов SRAM будет весьма нетривиальной.

Единственный недостаток DDR2 — его контроллер займёт некоторую часть ресурсов FPGA (где-то 10% от чипа S50), но зато он уже есть готовый, и предоставляется производителем забесплатно, т.к. даром Но если какому-то проекту внешняя память не нужна, то и контроллер тоже не нужен, и потому можно свободно использовать все ресурсы FPGA.
[КУ] оккупировала армия.
Re[2]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 02:06
Оценка:
Здравствуйте, Codealot, Вы писали:

C>А почему не использовать символы, которые предоставляют бесплатно продавцы? Маузер, например?


Я уже обжигался на кривых символах, найденных в интернетах, потому с тех пор делаю символы самостоятельно. Плюс когда делаешь символы сам, то можно задать ему внешний вид, какой мне хочется.
[КУ] оккупировала армия.
Re[3]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 02:15
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Я уже обжигался на кривых символах, найденных в интернетах, потому с тех пор делаю символы самостоятельно. Плюс когда делаешь символы сам, то можно задать ему внешний вид, какой мне хочется.


Даже если они предоставлены производителем?
Ад пуст, все бесы здесь.
Re[4]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 02:42
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Даже если они предоставлены производителем?


Во-первых, я сомневаюсь, что символы на маузере/ДК предоставляются производителем — скорее всего они сами их делают, а во-вторых, у меня может быть отличное от авторов мнение относительно того, как они должны выглядеть. В любом случае их создание не занимает много времени, так что я не вижу тут особой экономии времени. Основное время почти всегда уходит на разводку, а не на схему.

Вот сейчас разводка немного застопорилась, ибо я развожу свою первую заказную плату:
  Картинка

Тут более 400 деталей, RF-разводка и толстая МКшка в корпуса BGA 0.8 мм, и габариты платы 20х13 см. Это с большим запасом самая большая плата, которую мне когда-либо приходилось разводить.


Я рассчитываю успеть всё доделать до праздников, чтобы в праздники заняться сборкой и тестированием.
[КУ] оккупировала армия.
Re[5]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 16:14
Оценка:
Здравствуйте, koandrew, Вы писали:

K>В любом случае их создание не занимает много времени, так что я не вижу тут особой экономии времени. Основное время почти всегда уходит на разводку, а не на схему.


Ну пока что многие символы — именно то, чего в проекте не хватает
Ад пуст, все бесы здесь.
Re[6]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 18:02
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Ну пока что многие символы — именно то, чего в проекте не хватает

Каких именно не хватает?
[КУ] оккупировала армия.
Re[7]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 18:33
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Каких именно не хватает?


U1, U2, U4, U5, U7, S1, S2, S3, X1, J2
Возможно, каких-то я еще не заметил.
Ад пуст, все бесы здесь.
Re[8]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 19:50
Оценка:
Здравствуйте, Codealot, Вы писали:

C>U1, U2, U4, U5, U7, S1, S2, S3, X1, J2

C>Возможно, каких-то я еще не заметил.

А ты подключил мою кастомную библиотеку отсюда?
[КУ] оккупировала армия.
Re[9]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 20:37
Оценка:
Здравствуйте, koandrew, Вы писали:

K>А ты подключил мою кастомную библиотеку отсюда?


Подключил, но не уверен что правильно. Ты ведь не написал, как ее подключать
Ад пуст, все бесы здесь.
Re[10]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 21:06
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Подключил, но не уверен что правильно. Ты ведь не написал, как ее подключать


Я же в заглавном посте написал, что её нужно использовать. Насчёт правильности — я настроил проект из предположения, что оба репозитория склонированы в одну папку:
c:\Personal\Src\github>dir /B
kicad-3dmodels
kicad-library
kicad-projects

Третий репозиторий — kicad-3dmodels — пока приватный, т.к. некоторые модели там поставляются с лицензиями, запрещающими публикацию.
По идее схема и плата должны нормально открыться даже без этих сторонних библиотек, т.к. копии используемых символов сохраняются локально в файле кэша проекта.

Вообще, если честно, я рассчитывал, что этим проектом будут пользоваться товарищи, владеющие основными приёмами работы в KiCAD, т.к. проект всё же на порядок сложнее типичных платок с МКшкой, где будет может пару десятков деталей. Тут же на настоящий момент 160 деталей. Делать ещё и туториал по KiCAD я не осилю, т.к. нет столько свободного времени, да и он ощутимо меняется от версии к версии.
[КУ] оккупировала армия.
Отредактировано 09.12.2019 21:09 koandrew . Предыдущая версия .
Re[11]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 22:31
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Я же в заглавном посте написал, что её нужно использовать. Насчёт правильности — я настроил проект из предположения, что оба репозитория склонированы в одну папку:


Я так и сделал. Не работает.
Работает, если прописать зависимость в явном виде, причем с префиксом my_parts а не kicad-library, что было бы логично.

K>Вообще, если честно, я рассчитывал, что этим проектом будут пользоваться товарищи, владеющие основными приёмами работы в KiCAD


А я рассчитывал, что в проекте не будет явных косяков типа сломанных зависимостей
Ад пуст, все бесы здесь.
Отредактировано 09.12.2019 22:33 Codealot . Предыдущая версия .
Re[12]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 22:42
Оценка:
Здравствуйте, Codealot, Вы писали:

C>А я рассчитывал, что в проекте не будет явных косяков типа сломанных зависимостей


Он должен по идее открыться и так. Ругаться будет, но открыть должен всё равно. То же касается и самой платы.
[КУ] оккупировала армия.
Re[13]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 23:01
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Он должен по идее открыться и так. Ругаться будет, но открыть должен всё равно. То же касается и самой платы.


Открывается, но вместо тех символов — квадрат и "???"
Ад пуст, все бесы здесь.
Re[14]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 09.12.19 23:14
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Открывается, но вместо тех символов — квадрат и "???"


Значит поломали
[КУ] оккупировала армия.
Re[15]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 09.12.19 23:37
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Значит поломали


Чтобы этого не происходило — надо добавить ссылку на либу. Тогда такой проблемы нет.
Ад пуст, все бесы здесь.
Re[16]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.12.19 14:51
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Чтобы этого не происходило — надо добавить ссылку на либу. Тогда такой проблемы нет.


Я только что проверил — KiCAD до сих пор не умеет в относительные пути к библиотекам (хотя к 3D моделям они работают нормально)
[КУ] оккупировала армия.
Re[17]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 10.12.19 18:47
Оценка: 3 (1)
Здравствуйте, koandrew, Вы писали:

K>Я только что проверил — KiCAD до сих пор не умеет в относительные пути к библиотекам (хотя к 3D моделям они работают нормально)


Надо писать так:
(sym_lib_table
  (lib (name my_parts)(type Legacy)(uri ${KIPRJMOD}/../../kicad-library/symbols/my_parts.lib)(options "")(descr ""))
)

Опен сорс, сэр
Ад пуст, все бесы здесь.
Re[18]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.12.19 20:44
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Опен сорс, сэр


Спасибо — пофиксил. Теперь осталось доразводить.
[КУ] оккупировала армия.
Re[19]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.12.19 21:00
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Спасибо — пофиксил. Теперь осталось доразводить.


Есть еще пара неясностей. Какой должна быть модель чипа QSPI Flash? Или это вообще без разницы?
J4 — он зачем?

И если уж плата довольно сильно разрослась — может, стоит туда и USB-JTAG поставить?
Ад пуст, все бесы здесь.
Re[20]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.12.19 06:27
Оценка: 6 (2)
Здравствуйте, Codealot, Вы писали:

C>Есть еще пара неясностей. Какой должна быть модель чипа QSPI Flash? Или это вообще без разницы?

Список поддерживаемых чипов тут: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug908-vivado-programming-debugging.pdf Appendix E таблица 43. Для чипа S25 нужно минимум 16 МБит, для S50 — 32 МБит. Я обычно ставлю 128 МБит (что-нить типа S25FL128LAGMFI010, или чего-то аналогичного, но в более компактном корпусе BGA-24, в текущем проекте я решил использовать BGA только там, где это абсолютно необходимо), ибо разница в цене не особо велика, а свободный объём можно использовать для хранения каких-то данных приложения (FPGA может получить доступ к флешке после завершения загрузки) — например, там часто хранят код для софт-процессора Microblaze (в этом случае в локальную память FPGA, которая является частью битстрима, зашивают небольшой загрузчик, который считывает основной код с флешки в основную RAM и запускает его на выполнение).

C>J4 — он зачем?

Это был прототип коннектора GPIO, сейчас я заменил его на "продакшен"-версию — 2х15, туда вывел все свободные пины FPGA (24 штуки), плюс питание 3,3 и 5 В.

C>И если уж плата довольно сильно разрослась — может, стоит туда и USB-JTAG поставить?

К сожалению, с этим всё сложно. Дело в том, что Vivado позволяет работать только со своими родными программаторами, плюс модулями от Digilent. Так что если хочется сделать плату со встроенным мостом USB-JTAG, то придётся покупать модуль у Digilent, однако он стоит столько же, сколько и отдельный кабель-программатор JTAG-HS3, так что тратить деньги на отдельные модули для каждой платы я не вижу смысла — мне проще обойтись одним кабелем JTAG-HS3. В принципе JTAG-часть можно завести и с неродным мостом, но все продвинутые фичи Vivado (дебаг железа, логический анализатор, удалённое управление некоторыми шинами внутри FPGA "наживую", заливка битстрима на флешку, и т.п.) работать не будут. Короче, оно того не стоит — лучше один раз купить кабель JTAG-HS3 и забыть про эту проблему навсегда.
----------
Я завершил разводку и заказал плату. Вроде всё проверил, но пришлось поторопиться, иначе плата не успеет приехать до рождественских плаздников. Так что пожелайте мне удачи
[КУ] оккупировала армия.
Re[21]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 13.12.19 16:18
Оценка: 2 (1)
Здравствуйте, koandrew, Вы писали:

K>Я завершил разводку и заказал плату. Вроде всё проверил, но пришлось поторопиться, иначе плата не успеет приехать до рождественских плаздников. Так что пожелайте мне удачи


Желаю
Ад пуст, все бесы здесь.
Re[22]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.12.19 18:05
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Желаю


Спасибо! Плату уже приняли к производству, так что процесс пошёл!

Сделал тут рендеры платы рейтрейсером, который добавили в KiCAD в 5 версии:
  Внимание! Большие фотки!


[КУ] оккупировала армия.
Re[23]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 13.12.19 20:59
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Сделал тут рендеры платы рейтрейсером, который добавили в KiCAD в 5 версии:


Это Спарта!!!????
Ад пуст, все бесы здесь.
Re[24]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.12.19 21:18
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>Это Спарта!!!????

Ну надо же было как-то назвать платку — вот такой вариант мне показался подходящим Плата "Спарта" с чипом "Спартан-7" (спартанец)

Кстати, тока сейчас заметил мелкий косяк — забыл добавить подписи к двум нижним кнопкам. Я уже поправил в файле борды.
[КУ] оккупировала армия.
Отредактировано 13.12.2019 21:24 koandrew . Предыдущая версия .
Re: Пришли платы ревизии А
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 24.12.19 04:48
Оценка: 6 (2)
Получил сегодня платы, и сразу же обнаружил косяк — у символа тройного DC-DC не хватает пина 21 (exposed pad), в итоге он просто "висит в воздухе"
У этого чипа этот пин не является силовым и нужен в основном для отвода тепла, так что по идее можно сделать перемычку с обратной стороны. Я уже поправил в гите и символ, и исправил плату (а заодно добавил открытую заливку "земли" на обратной стороне). Других ошибок вроде нет, так что думаю, стоит ли рискнуть и собрать эту плату, или всё же заказать вторую ревизию и проверять уже на ней.

Синдром первой ревизии strikes again

Сами платы выглядят отлично:
  Большие картинки

[КУ] оккупировала армия.
Отредактировано 24.12.2019 4:57 koandrew . Предыдущая версия .
Re[2]: Пришли платы ревизии А
От: Iso12  
Дата: 26.12.19 13:55
Оценка: 2 (1)
Здравствуйте, koandrew, Вы писали:

K>Получил сегодня платы, и сразу же обнаружил косяк — у символа тройного DC-DC не хватает пина 21 (exposed pad), в итоге он просто "висит в воздухе"


Как говорят , первый блин всегда комом.
Интересно как проверяете плату?

Успехов
Re[3]: Пришли платы ревизии А
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 27.12.19 14:58
Оценка:
Здравствуйте, Iso12, Вы писали:

I>Как говорят , первый блин всегда комом.

Да уж

I>Интересно как проверяете плату?

В смысле? Как обычно — мультиметром

I>Успехов

Спасибо! Заказал ревизию Б. Надеюсь в этот раз все пройдёт успешнее.
[КУ] оккупировала армия.
Отредактировано 28.12.2019 3:19 koandrew . Предыдущая версия .
Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 27.01.20 04:18
Оценка: 3 (1)
Прошу прощения за аццкие задержки — тут навалились заказы, и было не до чего.

Итак, сегодня я собрал ревизию B, и, как водится, без преключений не обошлось:
1. Светодиоды FPGA_DONE и POWER_GOOD подключены не в той полярности. Причём этот косяк кочует у меня из схемы в схему, просто при сборке я всегда ставил их наоборот, и потому всё работало
2. Кнопка сброса питания была подключена таким образом на схеме, что она оказалась закорочена Тоже хз, как я умудрился просмотреть это в схеме.

Все эти косяки я поправил на гитхабе, но поскольку я нашёл их уже после того, как собрал ревизию B, то пришлось исправлять прямо "наживую" Светодиоды я выпаял hot air gun'ом и перевернул, а КЗ у кнопки исправил, отрезав скальпелем лишние соединения.

В итоге плата ЗАВЕЛАСЬ! Уже проверил RGB-диоды, кнопки и, конечно, память DDR2. Собственно, мне больше всего было интересно проверить, что память заработает, т.к. всё остальное достаточно тривиально. Осталось только проверить HDMI OUT, в ближайшее время наваяю какой-нить простой тест.

Насчёт сборки: реально геморная часть тут — это 18 ОЧЕНЬ мелких кондёров типоразмера 0201, всё остальное вполне реально собрать вручную, если есть какое-либо увеличительное устройство. Если вдруг кто-то желает попробовать заменить их все на 0402 — я буду крайне признателен, если поделитесь результатом. Главное условие — нельзя двигать дорожки, относящиеся к DDR2, ибо их длина имеет значение.
Я залил на гитхаб сборочный документ, по которому я собственно и собирал (он сгенерирован самописной утилиткой, исходники её тоже на гитхабе в другом публичном репо). Также добавил в схему примечания по поводу чипа QSPI flash для хранения битстрима, и по поводу используемого чипа оперативки (я на свой экземпляр поставил максимально поддерживаемый объём — 2Гбит, или 256 Мбайт — но в принципе можно поставить и меньший объём, главное, чтобы шина была 16-битной).

В общем, если есть желающие сделать себе такую же, то можно уже заказывать ревизию C. Плата разведена под JLCPCB.com, при заказе ОЧЕНЬ ВАЖНО выбрать опцию "Impedance: YES", и выбрать stackup "JLC2313" (т.к. геометрия дорожек для DDR2 подобрана под этот стекап). Плата размером 72х89 мм, рекомендую выбрать Surface Finish: ENIG, итого 10 плат стоит в настоящий момент $43.5 (+ доставка).
И ещё — если поставите чип S50 и загрузите его по полной программе, вполне вероятно, что он будет серьёзно греться, потому рекомендую прикупить какой-нить небольшой радиатор, типа такого (этот хорош тем, что он не приклеивается, и его легко можно снять при необходимости).

  Большие фотки

[КУ] оккупировала армия.
Отредактировано 27.01.2020 18:52 koandrew . Предыдущая версия .
Re: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 28.01.20 05:42
Оценка:
Здравствуйте, koandrew, Вы писали:

Апдейт: проверил HDMI OUT — всё работает нормально, и даже выдаёт 1080p после оверклока (буфер специфицирован до 628 МГц, я его гоняю на 742,5 МГц). Правда греется чип аццки (я сбросил, когда температурный сенсор на кристалле начал зашкаливать за 90°С). Завтра попробую поставить радиатор. HDMI DDC тоже работает как положено.
[КУ] оккупировала армия.
Re: Собрал ревизию B
От: Codealot Земля  
Дата: 02.02.20 18:26
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>небольшой радиатор, типа такого (этот хорош тем, что он не приклеивается, и его легко можно снять при необходимости).


При такой цене то... они там совсем шизанулись, 23 бакса за крошечный кусок алюминия?
Ад пуст, все бесы здесь.
Re: Собрал ревизию B
От: Codealot Земля  
Дата: 02.02.20 22:33
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Также добавил в схему примечания по поводу чипа QSPI flash для хранения битстрима, и по поводу используемого чипа оперативки


Кстати — нигде не могу найти, какой частоты должен быть осциллятор.
Ад пуст, все бесы здесь.
Re[2]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 05:46
Оценка:
Здравствуйте, Codealot, Вы писали:

C>При такой цене то... они там совсем шизанулись, 23 бакса за крошечный кусок алюминия?


Это канаццкие баксы (1 американский ~ 1.3 канаццких), и это цена за комплект с радиатором, пластиковой "обёрткой" для чипа и металлической скобы для крепления радиатора.
[КУ] оккупировала армия.
Re[2]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 05:49
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати — нигде не могу найти, какой частоты должен быть осциллятор.


Я поставил 100 МГц, конкретно DSC6102CI2A-100.0000T т.к. из этой частоты удобно генерировать частоты в 166.667 и 200 МГц, необходимые для контроллера памяти DDR2. Но вообще ты можешь поставить любой, какой тебе нужен, лишь бы он был в корпусе 3.2х2.5 мм и имел совместимую распиновку.
[КУ] оккупировала армия.
Re[3]: Собрал ревизию B
От: Codealot Земля  
Дата: 03.02.20 06:20
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Это канаццкие баксы (1 американский ~ 1.3 канаццких), и это цена за комплект с радиатором, пластиковой "обёрткой" для чипа и металлической скобы для крепления радиатора.


Так это где-то 16 штатовских... у китайцев за те же деньги можно штук 100 подобных радиаторов купить.
Просто масштабы обдираловки впечатляют. По коннекторам я уже смотрел, разница в цене легко достигает 50 раз за коннекторы, которые скорее всего сделаны на одном и том же заводе. Интересно, по полупроводникам у них такая же маржа?
Ад пуст, все бесы здесь.
Re[4]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 17:25
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Так это где-то 16 штатовских... у китайцев за те же деньги можно штук 100 подобных радиаторов купить.

Может и так, но мне 100 не нужно, мне нужен один

C>Просто масштабы обдираловки впечатляют. По коннекторам я уже смотрел, разница в цене легко достигает 50 раз за коннекторы, которые скорее всего сделаны на одном и том же заводе. Интересно, по полупроводникам у них такая же маржа?

Не думаю. Но все пассивы я покупаю на lcsc.com — это по сути китайская версия Digikey, там помимо совсем китайских брендов есть и те же самые бренды, присутствующие на том же DK, тока гораздо дешевле. Например, полная катушка (10000 штук) 1% резисторов 0402 почти любого номинала на lcsc стоит всего $3-6, катушка 0603 или 0805 резисторов (на ней 2000-5000 деталей) стоит примерно столько же. При этом, если сроки не горят, то можно использовать относительно экономичные методы доставки типа e-packet'а (до меня идёт обычно 2-3 недели), но даже с экспресс-доставкой DHL всё равно выходит дешевле, чем покупать на Digikey/Mouser.
Так что я постепенно расширяю свой ассортимент резисторов 0402, и использую другие размеры только в случае особой необходимости (это обычно либо необходимость подбирать значение, а значит многократно впаивать-выпаивать, либо рассеиваемая мощность превышает пределы для 0402).
С кондёрами ситуация в целом похожая, однако там обычно нужно меньшее количество номиналов, все типовые номиналы (0.01/0.1/1/10 мкФ, 0.22/2.2/22 мкФ, 0.47/4.7 мкФ, плюс несколько танталовых кондёров на 47/100/220/330 мкФ) у меня уже есть. Правда, даже на lcsc они стоят существенно больше резисторов, потому ассортимент у меня поменьше.
А вот чипы, по моему опыту покупать в Китае нет особого смысла, за очень редкими исключениями.
[КУ] оккупировала армия.
Re[5]: Собрал ревизию B
От: Codealot Земля  
Дата: 03.02.20 19:24
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>А вот чипы, по моему опыту покупать в Китае нет особого смысла, за очень редкими исключениями.


А как насчет подборок типа этой? https://www.amazon.com/Assortment-oscillator-JRC4558-TDA2030-TDA2822/dp/B07V1PKDZS/
Ад пуст, все бесы здесь.
Re[6]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 19:48
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>А как насчет подборок типа этой? https://www.amazon.com/Assortment-oscillator-JRC4558-TDA2030-TDA2822/dp/B07V1PKDZS/


хз, я не любитель ретро, у меня блин FPGA наверное меньше размером, чем тамошние операционники Я использую только surface mount детали на своих платах, т.к. они лучше through-hole по всем параметрам. Впрочем, я занимаюсь только цифровой схемотой, хз, мож в аналоге и имеет смысл юзать таких динозавров.
[КУ] оккупировала армия.
Re[7]: Собрал ревизию B
От: Codealot Земля  
Дата: 03.02.20 21:06
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>хз, я не любитель ретро, у меня блин FPGA наверное меньше размером, чем тамошние операционники Я использую только surface mount детали на своих платах, т.к. они лучше through-hole по всем параметрам. Впрочем, я занимаюсь только цифровой схемотой, хз, мож в аналоге и имеет смысл юзать таких динозавров.


Я думал использовать для прототипирования на бредборде.
Ад пуст, все бесы здесь.
Re[8]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 21:30
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Я думал использовать для прототипирования на бредборде.


Ну хз — разве что для очень грубых прототипов. Ибо бредборды обычно шумят как военные оркестры, и если для цифровых сигналов это не страшно (по крайней мере пока частоты достаточно низкие), то вот для аналоговых это может быть проблемой. Плюс все эти дорожки в бредборде имеют далеко ненулевую ёмкость, что тоже не помогает делу, и, более того, из-за неё может получиться, что при переносе схемы с бредборда на плату окажется, что скурпулёзно подобранные ёмкости (например в фильтрах) оказываются неверными. Учитывая, что простые двухслойки стоят 5$ (а то и меньше), я не вижу смысла заморачиваться с бредбордами.
[КУ] оккупировала армия.
Re[9]: Собрал ревизию B
От: Codealot Земля  
Дата: 03.02.20 21:50
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Учитывая, что простые двухслойки стоят 5$ (а то и меньше), я не вижу смысла заморачиваться с бредбордами.


Проблемы с доставкой. В наших краях, обычной почтой это легко может занять и полгода (если вообще не потеряют), а курьерской службой — это уже совсем не 5 баксов.
Ад пуст, все бесы здесь.
Re[10]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 03.02.20 22:12
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Проблемы с доставкой. В наших краях, обычной почтой это легко может занять и полгода (если вообще не потеряют), а курьерской службой — это уже совсем не 5 баксов.


Ну дык закажи сразу несколько плат, чтобы "размазать" стоимость доставки по разным проектам. В любом случае мне думается, что цена деталей для этих плат будет больше, чем цена самих плат. Вот в плате из ОП топике набор деталей для только одного экземпляра платы стоит существенно больше, чем изготовление 10 плат + экспресс-доставка DHL. И это четырёхслойная плата! Чего уж говорить о двухслойках.
[КУ] оккупировала армия.
Re[11]: Собрал ревизию B
От: Codealot Земля  
Дата: 03.02.20 22:21
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Ну дык закажи сразу несколько плат, чтобы "размазать" стоимость доставки по разным проектам. В любом случае мне думается, что цена деталей для этих плат будет больше, чем цена самих плат. Вот в плате из ОП топике набор деталей для только одного экземпляра платы стоит существенно больше, чем изготовление 10 плат + экспресс-доставка DHL. И это четырёхслойная плата! Чего уж говорить о двухслойках.


Это да. Просто я думаю потренироваться немного на кошках, а потом уж возьмусь и за более сложную задачу.
Кстати, если делать в стиле dead bug — проблем с паразитными емкостями вроде должно быть поменьше?
Ад пуст, все бесы здесь.
Re[12]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.20 15:28
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Это да. Просто я думаю потренироваться немного на кошках, а потом уж возьмусь и за более сложную задачу.

Ну дело хозяйское

C>Кстати, если делать в стиле dead bug — проблем с паразитными емкостями вроде должно быть поменьше?

Чего делать в стиле dead bug?
[КУ] оккупировала армия.
Re[13]: Собрал ревизию B
От: Codealot Земля  
Дата: 04.02.20 15:47
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Чего делать в стиле dead bug?


Прототипы, естественно.
Ад пуст, все бесы здесь.
Re[14]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.20 16:25
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Прототипы, естественно.


Прототипы чего?
[КУ] оккупировала армия.
Re[15]: Собрал ревизию B
От: Codealot Земля  
Дата: 04.02.20 16:35
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Прототипы чего?


Хорошенько поразмыслив — сначала сделаю что-нибудь простое на микроконтроллере, потом CPLD, потом уже FPGA.
Ад пуст, все бесы здесь.
Re[16]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.20 16:52
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Хорошенько поразмыслив — сначала сделаю что-нибудь простое на микроконтроллере, потом CPLD, потом уже FPGA.

Советую пропустить второй этап. Ничего в них интересного нету.
Но вообще ИМХО ты рассуждаешь как-то наоборот — "вот у меня есть инструмент, чего бы мне с ним такого сделать?". А нужно — "у меня есть идея реализовать Х, для реализации можно использовать инструменты Y и Z". То есть задача всё же должна быть первична.

Но я так и не понял, что ты собрался паять dead bug. FPGAшку чтоли?
[КУ] оккупировала армия.
Re[17]: Собрал ревизию B
От: Codealot Земля  
Дата: 04.02.20 16:55
Оценка:
Здравствуйте, koandrew, Вы писали:

K>А нужно — "у меня есть идея реализовать Х, для реализации можно использовать инструменты Y и Z". То есть задача всё же должна быть первична.


Идей у меня много, но для начинающего они слишком сложны. Так что, пока ограничусь задачей, чтобы схема работала и соединялась с компом.

K>Но я так и не понял, что ты собрался паять dead bug. FPGAшку чтоли?


Микроконтроллер и CPLD. FPGA — уже сложновато будет
Ад пуст, все бесы здесь.
Re[18]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.20 17:07
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Идей у меня много, но для начинающего они слишком сложны. Так что, пока ограничусь задачей, чтобы схема работала и соединялась с компом.

Делись идеями. Будем вместе думать

C>Микроконтроллер и CPLD.

Нафига? Их же полно во вполне себе паябельных корпусах типа TSSOP, QFP. Соорудил себе breakout — и вперёд, экспериментировать.
C>FPGA — уже сложновато будет
Я бы сказал — глупо, а в ряде сценариев — просто невозможно.
[КУ] оккупировала армия.
Re[19]: Собрал ревизию B
От: Codealot Земля  
Дата: 05.02.20 02:58
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Делись идеями. Будем вместе думать


Например, есть желание поэкспериментировать с числодроблением на FPGA. Но для этого нужна плата с минимумом 8гб оперативки и быстрым соединением с компом.

K>Нафига? Их же полно во вполне себе паябельных корпусах типа TSSOP, QFP. Соорудил себе breakout — и вперёд, экспериментировать.


Вполне возможно. Но я же не умру, если сначала попробую dead bug? По моему, вполне работоспособный бомж-вариант
Ад пуст, все бесы здесь.
Re[20]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 05.02.20 15:38
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Например, есть желание поэкспериментировать с числодроблением на FPGA. Но для этого нужна плата с минимумом 8гб оперативки и быстрым соединением с компом.

Зачем тебе столько оперативки? Ты не забывай, что оперативка на FPGA используется совсем не так, как в GPGPU или в компе. На FPGA вся обработка происходит в потоковом режиме (то есть данные заливаются, обрабатываются и сливаются параллельно и одновременно), потому оперативка используется чаще всего просто как эластичный FIFO буфер, задача которого "сглаживать" импульсный характер источников данных и получателей результатов. Потому чаще всего объём оперативки не так важен, как доступная полоса пропускания. Именно поэтому на плату из ОП я поставил DDR2 — у меня была задача обеспечить наиболее широкую полосу пропускания при учёте всех ограничений (всего 50 пинов, максимальная скорость PHY — 333 MHz), и 2 * 2 * 333 * 10^6 ≈ 1270 Мбайт/с — это максимум, которого можно было добиться, и этого едва хватает, чтобы организовать двойную буферизацию в режиме 1080p@60Hz (нужно 1920 * 1080 * 4 * 60 * 2 ≈ 949 Мбайт/с). Заметь, тут нигде нет слова "объём", ибо нужный мне объём — это всего два-три кадра по 1920 * 1080 * 4 ≈ 7.9 Мбайт каждый, то есть даже 32 Мбайт мне было бы за глаза.

А ты наверняка думаешь, как привык делать на компе — "сначала мы загружаем всё в оперативку, потом — обрабатываем, и затем — сливаем обратно". Но такой подход применяется в компах от безысходности, ибо процессор не может делать всё это сразу и параллельно. Хотя это, строго говоря, не совсем так, ибо есть DMA, который может заливать/сливать данные в/из оперативки без участия ЦП, но не часто встретишь софт, который бы начинал обработку данных по мере их загрузки в память, а не ждал окончания загрузки до того, как начать обработку.

Насчёт быстрого соединения с компом — тут тоже есть масса вариантов, в примерном порядке возрастания геморройности: USB 3 (via FT601), Ethernet 1G, Ethernet 10G, PCI Express (реализовать весьма просто, но нужны драйвера под ОС компа). Выбирай, какой тебе нужно?

У меня в общем-то есть в планах соорудить платку с упором на полосу пропускания памяти (типа DDR3 на 64-битной шине, или даже пара таких контроллеров), на которой буду делать 3D ядро (как известно, им нужны широченные каналы в память), выходами HDMI, DisplayPort и коннектором PCI Express. Но пока это на будущее

C>Вполне возможно. Но я же не умру, если сначала попробую dead bug? По моему, вполне работоспособный бомж-вариант

Ну ок
[КУ] оккупировала армия.
Отредактировано 09.02.2020 3:17 koandrew . Предыдущая версия .
Re[21]: Собрал ревизию B
От: Codealot Земля  
Дата: 05.02.20 20:04
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Зачем тебе столько оперативки? Ты не забывай, что оперативка на FPGA используется совсем не так, как в GPGPU или в компе. На FPGA вся обработка происходит в потоковом режиме (то есть данные заливаются, обрабатываются и сливаются параллельно и одновременно), потому оперативка используется чаще всего просто как эластичный FIFO буфер, задача которого "сглаживать" импульсный характер источников данных и получателей результатов.


Просто не все алгоритмы сводятся к пайплайну. Если есть много случайных обращений к данным и оперативки недостаточно чтобы разместить данные, то латентность обращений убьет всю производительность на корню.
Но это я теоретически рассуждаю. Пока мне и так надолго есть, чем занять себя на досуге

K>Насчёт быстрого соединения с компом — тут тоже есть масса вариантов, в примерном порядке возрастания геморройности: USB 3 (via FT601), Ethernet 1G, Ethernet 10G, PCI Express (реализовать весьма просто, но нужны драйвера под ОС компа). Выбирай, какой тебе нужно?


Пожалуй, Ethernet 10G или PCI Express был бы идеален. А для USB 3 драйверы разве не нужны?
Ад пуст, все бесы здесь.
Re[22]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 05.02.20 20:39
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Просто не все алгоритмы сводятся к пайплайну. Если есть много случайных обращений к данным и оперативки недостаточно чтобы разместить данные, то латентность обращений убьет всю производительность на корню.

C>Но это я теоретически рассуждаю. Пока мне и так надолго есть, чем занять себя на досуге
Открою тебе секрет, но латентность современной оперативки такова, что "неожиданное" обращение к ней также убьёт всю производительность на корню На всякий случай напомню — для DDR4 типовая латентность интерфейса — 20 тактов если обращение выполняется в уже открытую строку, где-то вдвое больше, если в какую-то другую, но банк не занят, или втрое больше (>60 тактов), если нужно будет закрыть какую-то другую строку. Если ещё сверху добавить латентность контроллера памяти, плюс арбитража — то сотня наберётся очень легко. А если уж попадёшь на период рефреша — всё, тушите свет, сливайте воду
Так что алгоритм с "много случайных обращений" — херовый, придумывай поточный, где не было бы такой дури. Кстати, это тебе здорово поможет и для компа, и для GPGPU, ибо они тоже страдают от латентности памяти.

C>Пожалуй, Ethernet 10G или PCI Express был бы идеален. А для USB 3 драйверы разве не нужны?

Если для USB 3 использовать чипы FT600 или FT601 — то дрова предоставляются FTDI (производителем чипа) уже готовые и забесплатно, то есть даром. И они обеспечивают реальную полосу пропускания, которой почти хватает для стриминга RGB 1080p@60 в реальном времени (я тут как-то постил результаты своих тестов скорости этого решения). Ещё со стороны FPGA он предоставляет очень удобный FIFO-style интерфейс, так что интегрировать его в свой проект элементарно.
Всё другие варианты требуют существенно бОльшего объёма усилий, чтобы интегрировать. В некоторых типовых случаях для PCI Express можно обойтись предоставляемыми забесплатно IP (но не стоит забывать, что они скушают немало ресурсов FPGA), для Eth10G, насколько я знаю, придётся либо педалить своё решение, либо покупать готовое за много $$$.
[КУ] оккупировала армия.
Re[23]: Собрал ревизию B
От: Codealot Земля  
Дата: 05.02.20 22:18
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>DDR4 типовая латентность интерфейса — 20 тактов если обращение выполняется в уже открытую строку, где-то вдвое больше, если в какую-то другую, но банк не занят, или втрое больше (>60 тактов), если нужно будет закрыть какую-то другую строку. Если ещё сверху добавить латентность контроллера памяти, плюс арбитража — то сотня наберётся очень легко. А если уж попадёшь на период рефреша — всё, тушите свет, сливайте воду


А если сравнить это с латентностью получения данных даже (в лучшем случае) через PCIe, то сколько там будет тактов? Я думаю, там счет пойдет уже на сотни тысяч, если еще не хуже.

K>Так что алгоритм с "много случайных обращений" — херовый, придумывай поточный, где не было бы такой дури. Кстати, это тебе здорово поможет и для компа, и для GPGPU, ибо они тоже страдают от латентности памяти.


Реальность — она вообще довольно херовая штука, и в удобные алгоритмы укладывается далеко не всегда

K>Если для USB 3 использовать чипы FT600 или FT601 — то дрова предоставляются FTDI (производителем чипа) уже готовые и забесплатно, то есть даром. И они обеспечивают реальную полосу пропускания, которой почти хватает для стриминга RGB 1080p@60 в реальном времени (я тут как-то постил результаты своих тестов скорости этого решения). Ещё со стороны FPGA он предоставляет очень удобный FIFO-style интерфейс, так что интегрировать его в свой проект элементарно.




K>Всё другие варианты требуют существенно бОльшего объёма усилий, чтобы интегрировать. В некоторых типовых случаях для PCI Express можно обойтись предоставляемыми забесплатно IP (но не стоит забывать, что они скушают немало ресурсов FPGA)


Интересно, на что оно их жрет?
Ад пуст, все бесы здесь.
Отредактировано 05.02.2020 22:18 Codealot . Предыдущая версия .
Re[24]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 01:33
Оценка:
Здравствуйте, Codealot, Вы писали:

C>А если сравнить это с латентностью получения данных даже (в лучшем случае) через PCIe, то сколько там будет тактов? Я думаю, там счет пойдет уже на сотни тысяч, если еще не хуже.

Какая разница-то? Затыки всё равно будут такие, что никакого профита от параллельности не получится.

C>Реальность — она вообще довольно херовая штука, и в удобные алгоритмы укладывается далеко не всегда

Чаще всего таки просто фантазии автора оказывается недостаточно. Достаточно посмотреть на тысячи и тысячи алгоритмов, которые считались не параллелизуемыми, пока разработчиков конкретно не прижали к стенке и не заставили переделать так, чтобы можно было параллельно считать на GPGPU.

C>Интересно, на что оно их жрет?

На реализацию логики протокола конечно. Там, FSMы всякие, и вычислительные блоки, и т.п. Ты, видимо, плохо представляешь себе, с чем приходится иметь дело при работе с FPGA
[КУ] оккупировала армия.
Re[25]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 02:38
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Какая разница-то? Затыки всё равно будут такие, что никакого профита от параллельности не получится.


Если данные умещаются в памяти — все равно будет намного быстрее, чем когда за ними надо бегать очень далеко.

K>Чаще всего таки просто фантазии автора оказывается недостаточно. Достаточно посмотреть на тысячи и тысячи алгоритмов, которые считались не параллелизуемыми, пока разработчиков конкретно не прижали к стенке и не заставили переделать так, чтобы можно было параллельно считать на GPGPU.


Ну и в результате на GPGPU все равно ставят самую быструю оперативку по 16 гб

K>На реализацию логики протокола конечно. Там, FSMы всякие, и вычислительные блоки, и т.п. Ты, видимо, плохо представляешь себе, с чем приходится иметь дело при работе с FPGA


Примерно представляю. Просто плохо представляю, как устроен PCIe на низком уровне. Сильно сложнее чем Ethernet, например?
Ад пуст, все бесы здесь.
Re[26]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 03:01
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Если данные умещаются в памяти — все равно будет намного быстрее, чем когда за ними надо бегать очень далеко.

Чаще всего алгоритм можно перестроить таким образом, чтобы этого делать не пришлось.

C>Ну и в результате на GPGPU все равно ставят самую быструю оперативку по 16 гб

Однако заметь, что объём видеопамяти растёт очень медленно, а вот полоса пропускания — очень быстро. Подумай на досуге, почему По твоей логике должно было быть наоборот.

C>Примерно представляю. Просто плохо представляю, как устроен PCIe на низком уровне. Сильно сложнее чем Ethernet, например?

На канальном уровне несколько проще, т.к. он by design точка-точка. Но логически протокол PCIE — это DMA, то есть доступ к памяти, плюс поддержка out-of-band сигналов и всяких сервисных штук типа прерываний или power management прямо на уровне протокола. Там другая сложность — бешеная скорость и потому очень жёсткие требования по таймингам всей обрабатывающей логики. Если совсем на пальцам — на выходе трансивера у тебя есть поток байтов (или полуслов, или слов, в зависимости от скорости и количества линий), и признак, является ли символ "запятой" (специальным управляющим символом, который позволяет понять, где в сплошном потоке бит находятся границы байт), и твоя задача как-то переварить этот поток на полной скорости дабы определить, есть ли там собственно полезные данные или нет, и, если есть, то что это за данные.
Поищи в гугле по фразе "pci express 3.0 specification pdf" — там найдёшь спеку, почитай, если интересно. По крайней мере мне было любопытно почитать.
[КУ] оккупировала армия.
Re[27]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 03:24
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Чаще всего алгоритм можно перестроить таким образом, чтобы этого делать не пришлось.


Но далеко не всегда.

K>Однако заметь, что объём видеопамяти растёт очень медленно, а вот полоса пропускания — очень быстро. Подумай на досуге, почему По твоей логике должно было быть наоборот.


Почему это? Во первых, объемы видеопамяти растут не медленнее, чем объемы оперативки у компов. Во вторых, именно по твоей логике, полоса пропускания видеопамяти должна быть практически неважна — это ведь только буфер для сглаживания колебаний потока данных, который передается по PCIe

K>Там другая сложность — бешеная скорость и потому очень жёсткие требования по таймингам всей обрабатывающей логики. Если совсем на пальцам — на выходе трансивера у тебя есть поток байтов (или полуслов, или слов, в зависимости от скорости и количества линий), и признак, является ли символ "запятой" (специальным управляющим символом, который позволяет понять, где в сплошном потоке бит находятся границы байт), и твоя задача как-то переварить этот поток на полной скорости дабы определить, есть ли там собственно полезные данные или нет, и, если есть, то что это за данные.


Понятно. А аппаратные блоки разве эту проблему не решают?
Ад пуст, все бесы здесь.
Re[28]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 03:55
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Но далеко не всегда.

Гораздо чаще, чем кажется на первый взгляд Особенно когда есть широкая шина памяти.

C>Почему это? Во первых, объемы видеопамяти растут не медленнее, чем объемы оперативки у компов. Во вторых, именно по твоей логике, полоса пропускания видеопамяти должна быть практически неважна — это ведь только буфер для сглаживания колебаний потока данных, который передается по PCIe

Нет, по моей логике как раз нужна полоса пропускания — чтобы можно было кормить всю ту кучу параллельных исполнительных блоков в конвейере. В параллельных вычислениях страшны не сами по себе обращения к памяти, а их неупорядоченность. То есть, если ты знаешь, что на шаге 42 твоего конвейера тебе понадобятся данные X, то ты сможешь заранее запросить их таким образом, чтобы они "пришли" как раз к этому шагу. В видеоконвейере проблема решается несколько другим способом — когда исполнительные ядра доходят до обращения к памяти, это обращение производится, а ядра переключаются на другие задачи до тех пор, пока данные не придут.
Я недавно тут накопал вот такой цикл статей о том, как устроены видеоконвейеры, так сказать, из первых рук: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ Почитай, очень-очень любопытное чтиво!

C>Понятно. А аппаратные блоки разве эту проблему не решают?

По-разному бывает. Например в FPGA семейства Kintex-7 трансиверы физически поддерживают скорости PCI Express 3.0 (8Gbps на линию), однако аппаратный блок поддерживает только PCI Express 2.0 (5Gbps). Так что если хочется максимальной скорости — то придётся педалить код протокола самостоятельно. Да и аппаратный блок — тоже далеко не панацея, он всего лишь сам выцепляет пакеты из потока — обрабатывать их опять же придётся твоему коду.
[КУ] оккупировала армия.
Re[29]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 04:02
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Нет, по моей логике как раз нужна полоса пропускания — чтобы можно было кормить всю ту кучу параллельных исполнительных блоков в конвейере. В параллельных вычислениях страшны не сами по себе обращения к памяти, а их неупорядоченность. То есть, если ты знаешь, что на шаге 42 твоего конвейера тебе понадобятся данные X, то ты сможешь заранее запросить их таким образом, чтобы они "пришли" как раз к этому шагу. В видеоконвейере проблема решается несколько другим способом — когда исполнительные ядра доходят до обращения к памяти, это обращение производится, а ядра переключаются на другие задачи до тех пор, пока данные не придут.

K>Я недавно тут накопал вот такой цикл статей о том, как устроены видеоконвейеры, так сказать, из первых рук: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ Почитай, очень-очень любопытное чтиво!

Но для этого не нужны такие объемы видеопамяти, как ставят сейчас. На средней игровой видеокарте уже столько же памяти, как на среднем ноуте

K>По-разному бывает. Например в FPGA семейства Kintex-7 трансиверы физически поддерживают скорости PCI Express 3.0 (8Gbps на линию), однако аппаратный блок поддерживает только PCI Express 2.0 (5Gbps). Так что если хочется максимальной скорости — то придётся педалить код протокола самостоятельно. Да и аппаратный блок — тоже далеко не панацея, он всего лишь сам выцепляет пакеты из потока — обрабатывать их опять же придётся твоему коду.


А если ограничиться PCIe 2.0 x4 — как у Artix-7, это сильно геморно?
Ад пуст, все бесы здесь.
Re[30]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 04:17
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Но для этого не нужны такие объемы видеопамяти, как ставят сейчас. На средней игровой видеокарте уже столько же памяти, как на среднем ноуте

Ну как сказать. Нынче модны всякие 4к — а для них текстуры должны иметь бешеное разрешение. Плюс видеоконвейер — это всё же не алгоритм, а скорее сопроцессор (т.к. шейдерные блоки turing-complete). Мы же ведём речь о более или менее статичном алгоритме, под который как раз и затачивают железо (и при необходимости его меняют на ходу). Видеокарты не обладают такой гибкостью, т.к. аппаратная часть там фиксирована. Хотя Интел уже давно грозится выпустить зеоны с фабрикой FPGA на одном кристалле, на настоящий момент есть только комбинация ARM + FPGA. Впрочем, вроде как уже есть специализированные облака, где стоят FPGAшки. Я с этим особо не знаком, ибо мне оно как-то не нужно.

C>А если ограничиться PCIe 2.0 x4 — как у Artix-7, это сильно геморно?

В теории — не должно быть, а как оно на практике — я ещё не знаю, ибо не пробовал. Но надеюсь в ближайшее время попробовать.
[КУ] оккупировала армия.
Re[31]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 04:25
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Ну как сказать. Нынче модны всякие 4к — а для них текстуры должны иметь бешеное разрешение.


Не... для 4к нужны уже совсем не средние видеокарты, а там оперативки куда больше, чем 8 гб. А 8 гб — это именно столько, сколько сейчас ставят на средние ноуты.

K>Плюс видеоконвейер — это всё же не алгоритм, а скорее сопроцессор (т.к. шейдерные блоки turing-complete). Мы же ведём речь о более или менее статичном алгоритме, под который как раз и затачивают железо (и при необходимости его меняют на ходу).


Ну хорошо. Допустим, нужно отсортировать массив строк разной длины. Как тут избавиться от случайного доступа к памяти?

K>Хотя Интел уже давно грозится выпустить зеоны с фабрикой FPGA на одном кристалле, на настоящий момент есть только комбинация ARM + FPGA.


Похоже, что у Интел сейчас хватает куда более насущных проблем.
Ад пуст, все бесы здесь.
Re[32]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 04:36
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Не... для 4к нужны уже совсем не средние видеокарты, а там оперативки куда больше, чем 8 гб. А 8 гб — это именно столько, сколько сейчас ставят на средние ноуты.

Ну почему же? На той же 2070 super/2080/5700xt вполне можно играть в 4к, если поумерить свои аппетиты в плане настроек, а на них стоит по 8 Гб. Да и ноуты с 8 Гб у меня язык не поворачивается назвать средними — в моём таблете стоит 8 Гб, а ему летом уже будет 6 лет.

C>Ну хорошо. Допустим, нужно отсортировать массив строк разной длины. Как тут избавиться от случайного доступа к памяти?

в 12 ночи как-то не думается Но вроде как есть параллельные версии алгоритмов сортировки.

C>Похоже, что у Интел сейчас хватает куда более насущных проблем.

Ты видимо никогда не работал в больших конторах Там много всяких департаментов, и они занимаются разными проектами параллельно. Например, не так давно Интел вывел на рынок новую линейку FPGAшек Cyclone 10. Сейчас вот Agilex'ы вроде как начинают появляться, кстати, они производятся на 10 нм процессе
[КУ] оккупировала армия.
Re[33]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 04:51
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Да и ноуты с 8 Гб у меня язык не поворачивается назвать средними — в моём таблете стоит 8 Гб, а ему летом уже будет 6 лет.


Вполне средние, посмотри в любом магазине.

K>в 12 ночи как-то не думается Но вроде как есть параллельные версии алгоритмов сортировки.


Параллельные — да, но все равно используют разделяемую память.

K>Ты видимо никогда не работал в больших конторах Там много всяких департаментов, и они занимаются разными проектами параллельно. Например, не так давно Интел вывел на рынок новую линейку FPGAшек Cyclone 10. Сейчас вот Agilex'ы вроде как начинают появляться, кстати, они производятся на 10 нм процессе


В настолько больших — точно нет.
Ад пуст, все бесы здесь.
Re[34]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 14:26
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Вполне средние, посмотри в любом магазине.

Смотрел. Типовой размер — 16 Гб, 8 только в девайсах начального уровня, ну или девайсах предыдущих поколений.

C>Параллельные — да, но все равно используют разделяемую память.

Ну дык на чипе FPGA есть некоторое количество очень быстрой SRAM, которую можно использовать как кэш. Тока вот её обычно не так уж и много

C>В настолько больших — точно нет.

Все эти разговоры про "Интел всё" — бред сивой кобылы. У них столько бабла, что они могут купить сто контор калибра АМД.
[КУ] оккупировала армия.
Re[35]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 16:12
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Смотрел. Типовой размер — 16 Гб, 8 только в девайсах начального уровня, ну или девайсах предыдущих поколений.


Наверно, те магазины в какой-то совсем другой реальности. Потому что в моей реальности, на девайсах начального уровня — 4 гб

K>Ну дык на чипе FPGA есть некоторое количество очень быстрой SRAM, которую можно использовать как кэш. Тока вот её обычно не так уж и много


Отож. В общем, к чему я это всё. 8 гб памяти — это совсем не так и много.
Ад пуст, все бесы здесь.
Re[36]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 16:31
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Наверно, те магазины в какой-то совсем другой реальности. Потому что в моей реальности, на девайсах начального уровня — 4 гб

Может наоборот — твоя реальность где-то в районе барахолки б/у?

C>Отож. В общем, к чему я это всё. 8 гб памяти — это совсем не так и много.

Я это к тому, что девплат, где стоит стока (или больше) памяти, почти нет, несмотря на то, что некоторые из этих плат стоят многие тысячи баксов, то есть не поставили её явно не ради того, чтобы сэъкономить 40-50$ на чипах памяти.
[КУ] оккупировала армия.
Re[37]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 16:45
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Может наоборот — твоя реальность где-то в районе барахолки б/у?


Типа вот этой барахолки? https://www.amazon.com/Newest-Flagship-HP-Pentium-Keyboard/dp/B07XF1JWBM/

K>Я это к тому, что девплат, где стоит стока (или больше) памяти, почти нет, несмотря на то, что некоторые из этих плат стоят многие тысячи баксов, то есть не поставили её явно не ради того, чтобы сэъкономить 40-50$ на чипах памяти.


Знаешь, что такое порочный круг в доказательстве?
Ад пуст, все бесы здесь.
Re[38]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 18:17
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Типа вот этой барахолки? https://www.amazon.com/Newest-Flagship-HP-Pentium-Keyboard/dp/B07XF1JWBM/

Ага. По ссылке — редкостное Г, самый лоу-энд.

C>Знаешь, что такое порочный круг в доказательстве?

Ага. А ещё у меня есть кое-какой опыт реализации алгоритмов на FPGA, и я вот что-то не припомню случая, когда мне бы не хватило памяти, а вот полосы пропускания в/из памяти мне не хватает регулярно. Потому я и раздумываю сделать платку с кучкой дешёвых чипов памяти, которые не дадут большой объём, но обеспечат широкую полосу пропускания. Что-нить типа четырёх гигабитных чипов DDR3 (64Мх16), которые в сумме дадут всего 512 МБайт объёма, но зато 8*2*400М ~ 6 ГБайт/с полосы. А поскольку всё это будет работать всего на 400 МГц, можно особо не заморачиваться по поводу разводки. При этом плату можно будет развести под восьмигигабитные модули, и, если вдруг когда-то понадобится большой объём, то поставив их, получится аж 4 ГБайт Правда, каждый такой чип стоит $26 (сейчас глянул на DK), в то время как гигабитный чип — всего $3.9. Считайте сами, как грится
[КУ] оккупировала армия.
Re[39]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 18:58
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Ага. По ссылке — редкостное Г, самый лоу-энд.


Дык я и написал — начальный уровень

K>Ага. А ещё у меня есть кое-какой опыт реализации алгоритмов на FPGA, и я вот что-то не припомню случая, когда мне бы не хватило памяти, а вот полосы пропускания в/из памяти мне не хватает регулярно.


Всё зависит от задачи. Есть и такие FPGA-платы, на которые ставят по 32 гига.

K>Правда, каждый такой чип стоит $26 (сейчас глянул на DK), в то время как гигабитный чип — всего $3.9. Считайте сами, как грится


Дурят нашего брата. 4 x $26 — за такие деньги или самую малость дороже можно купить DDR3 DIMM-ок уже на 32Gb.
Ад пуст, все бесы здесь.
Re[40]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 19:52
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Дык я и написал — начальный уровень

ХЗ, мне кажется там даже сама ОС будет работать через пень колоду.

C>Всё зависит от задачи. Есть и такие FPGA-платы, на которые ставят по 32 гига.

Не сомневаюсь, но я таких пока не встречал.

C>Дурят нашего брата. 4 x $26 — за такие деньги или самую малость дороже можно купить DDR3 DIMM-ок уже на 32Gb.

Ну дык купи катушку с 2000 чипами — тебе их тоже продадут в несколько раз дешевле Тока мне-то какой с этого толк, мне стока чипов не нужно, да и денег стока тратить жалко.
Никто тут никого не дурит — просто оптом всегда дешевле.
[КУ] оккупировала армия.
Отредактировано 06.02.2020 19:53 koandrew . Предыдущая версия .
Re[41]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 20:57
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>ХЗ, мне кажется там даже сама ОС будет работать через пень колоду.


На самообслуживание винды и не слишком тяжеловесные проги хватит. VPS-кам начального уровня так и вообще всего 512 мб дают

K>Не сомневаюсь, но я таких пока не встречал.


https://www.alpha-data.com/dcp/products.php?product=adm-pcie-8k5

K>Ну дык купи катушку с 2000 чипами — тебе их тоже продадут в несколько раз дешевле Тока мне-то какой с этого толк, мне стока чипов не нужно, да и денег стока тратить жалко.

K>Никто тут никого не дурит — просто оптом всегда дешевле.

Дык цена за DIMM-ки — тоже розничная.
Ад пуст, все бесы здесь.
Re[42]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 21:12
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>https://www.alpha-data.com/dcp/products.php?product=adm-pcie-8k5

Ну вот и покупай себе её

C>Дык цена за DIMM-ки — тоже розничная.

Толку-то мне от этих диммов? Их на плату не припаяешь.
[КУ] оккупировала армия.
Re[43]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 21:22
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Ну вот и покупай себе её


Мне такая навороченная не нужна, и стоит дофига

K>Толку-то мне от этих диммов? Их на плату не припаяешь.


А поставить слот сильно сложно?

Кстати, что касается USB3 и FT600/FT601 — а как у них передача данных туда и обратно выглядит со стороны хоста?
Ад пуст, все бесы здесь.
Отредактировано 06.02.2020 21:34 Codealot . Предыдущая версия .
Re[44]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 21:43
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Мне такая навороченная не нужна, и стоит дофига



C>А поставить слот сильно сложно?

Не то, чтобы сложно, но эти модули физически здоровые, а потому требуют бОльшую плату, которая стоит бОльших денег. Поэтому-то большинство моих шестислоек 10х10 см или меньше — место на многослойках очень дорогое, и чем сложнее плата — тем дороже. Как ты понимаешь, разместить коннекторы под модули длиной в ЕМНИП 133 мм на плате 10х10 см как-то не выйдет.
Как компромисс, можно попробовать использовать SODIMM, но у них ЕМНИП 8 Гб потолок, да и это только в двухранговом режиме, который снижает максимальную частоту (впрочем, для Spartan-7/Artix-7 это несущественно, т.к. они могут крутить память максимум на 400 МГц). Правда, большинство коннекторов SODIMM "лежачие" или "полулежачие", а потому меньшую длину (по сравнению с "полным" UDIMM) футпринта компенсируют его бОльшей шириной.
[КУ] оккупировала армия.
Re[44]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.02.20 22:00
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати, что касается USB3 и FT600/FT601 — а как у них передача данных туда и обратно выглядит со стороны хоста?

Со стороны компа? Есть либы, поставляемые FTDI, для C/C++ и дотнета (мож есть ещё для чего — хз). Код выглядит примерно так (пишу по памяти, так что за 100% верность не ручаюсь, но порядок операций таков):
//получаем список всех подключённых девайсов по некоторому критерию (серийный номер, имя девайса, и т.п.)
var allChips = EnumerateDevicesBySomeCriteria(criteria);
// выбираем нужный
var deviceInfo = allChips[selectedIndex];
//инициализируем соединение
var device = new device(deviceInfo);
//усё готово, можно отправлять/принимать данные
//....
obj.Send(buffer);
//или 
obj.Receive(buffer);

В буквальном смысле всего несколько строк кода.
[КУ] оккупировала армия.
Re[45]: Собрал ревизию B
От: Codealot Земля  
Дата: 06.02.20 22:13
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Не то, чтобы сложно, но эти модули физически здоровые, а потому требуют бОльшую плату, которая стоит бОльших денег. Поэтому-то большинство моих шестислоек 10х10 см или меньше — место на многослойках очень дорогое, и чем сложнее плата — тем дороже. Как ты понимаешь, разместить коннекторы под модули длиной в ЕМНИП 133 мм на плате 10х10 см как-то не выйдет.


Интересно, а если сделать плату на 4-5 см длиннее при той же ширине? Раза в полтора дороже?
Ад пуст, все бесы здесь.
Re[46]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 07.02.20 13:42
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Интересно, а если сделать плату на 4-5 см длиннее при той же ширине? Раза в полтора дороже?


Меньше, чем в полтора, но разница ощутима. Хотя 5 см думается будет маловато, учитывая, что разъём имеет длину в 150 мм, плюс нужно оставить хотя бы по 1-2 см по краям на разводку.
[КУ] оккупировала армия.
Re[47]: Собрал ревизию B
От: Codealot Земля  
Дата: 07.02.20 15:12
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Меньше, чем в полтора, но разница ощутима. Хотя 5 см думается будет маловато, учитывая, что разъём имеет длину в 150 мм, плюс нужно оставить хотя бы по 1-2 см по краям на разводку.


Кстати, подумалось — а нельзя разместить его снизу платы?
Ад пуст, все бесы здесь.
Re[48]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 07.02.20 15:35
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Кстати, подумалось — а нельзя разместить его снизу платы?

Это как?
[КУ] оккупировала армия.
Re[49]: Собрал ревизию B
От: Codealot Земля  
Дата: 07.02.20 16:18
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Это как?


Я имею в виду двусторонний монтаж. Если использовать к примеру горизонтальный разъем для SODIMM и припаять его с нижней стороны платы.
Ад пуст, все бесы здесь.
Re[50]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 07.02.20 16:32
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Я имею в виду двусторонний монтаж. Если использовать к примеру горизонтальный разъем для SODIMM и припаять его с нижней стороны платы.

Под FPGAшкой находятся куча фильтрующих кондёров, плюс сама разводка там очень плотная, так что не факт, что удастся всё развести без увеличения количества слоёв. А если потребуется увеличение количества слоев до 10 (потому что 8-слойка имеет такое же количество сигнальных слоёв, как и 6-слойка), то это будет намного дороже, чем если просто сделать плату больше.
[КУ] оккупировала армия.
Re[51]: Собрал ревизию B
От: Codealot Земля  
Дата: 07.02.20 17:11
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Под FPGAшкой находятся куча фильтрующих кондёров, плюс сама разводка там очень плотная


А если немного в стороне?
Ад пуст, все бесы здесь.
Re[52]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 07.02.20 17:18
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>А если немного в стороне?

Не пробовал. Возьми да попробуй Если не знаешь, как получить распиновку памяти на FPGA — создай отдельную тему, я покажу, как сам делаю. Ну или RTFM — UG586, раздел Design Guidelines, DDR3 SDRAM (в текущей версии страница 192 и дальше по тексту).
[КУ] оккупировала армия.
Re[53]: Собрал ревизию B
От: Codealot Земля  
Дата: 07.02.20 17:25
Оценка: -1 :)
Здравствуйте, koandrew, Вы писали:

K>Не пробовал. Возьми да попробуй Если не знаешь, как получить распиновку памяти на FPGA — создай отдельную тему, я покажу, как сам делаю. Ну или RTFM — UG586, раздел Design Guidelines, DDR3 SDRAM (в текущей версии страница 192 и дальше по тексту).


Попробую. Но позже
Ад пуст, все бесы здесь.
Re[54]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 07.02.20 18:10
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Попробую. Но позже


Ну ок — потом — значит потом (С)
[КУ] оккупировала армия.
Re: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 11.02.20 00:10
Оценка:
Здравствуйте, koandrew, Вы писали:

Кстати, можешь посоветовать хорошую литературу по теме?
Ад пуст, все бесы здесь.
Re[2]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.20 01:39
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Кстати, можешь посоветовать хорошую литературу по теме?


По какой теме? Как разрабатывать платы для FPGA? Или как создавать для них проекты?
[КУ] оккупировала армия.
Re[3]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 11.02.20 05:12
Оценка:
Здравствуйте, koandrew, Вы писали:

K>По какой теме? Как разрабатывать платы для FPGA? Или как создавать для них проекты?


Какое-нибудь не слишком хардкорное введение в то, как работают FPGA на уровне схемотехники. И как разрабатывать PCB.
Ад пуст, все бесы здесь.
Re[4]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.20 19:10
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Какое-нибудь не слишком хардкорное введение в то, как работают FPGA на уровне схемотехники. И как разрабатывать PCB.


Я пользовался UG483 + генератором чеклистов XMP277 + подсматривал в схемы готовых платок, которые сумел найти в сети.
По большому счёту у интеграции FPGA на плату есть три аспекта: 1) обеспечение питания, 2) обеспечение успешной "загрузки" FPGA битстримом из какого-то внешнего источника 3) подключение внешней периферии.

1. Чипы Artix-7/Spartan-7 требуют две обязательных линии питания: питание "ядра" Vccint (почти всегда 1.0 ± 5% В), и "вспомогательная" линия Vccaux в 1.8 ± 5% В. Есть ещё отдельные шары для питания блочной памяти (BlockRAM) Vccbram, но во всех известных мне случаях их подключали к той же линии, что и ядро, ибо им тоже нужно 1.0 ± 5% В.
Тут основная сложность — чип может потреблять довольно значительный ток по линии Vccint (порядка нескольких ампер), потому линейные регуляторы "не катят" (прикинь, какая мощность будет рассеиваться на типовом LDO при входном напряжении даже в 5 В, а выходном — 1 В при токе в 2 А!), так что нужны импульсники, да не абы какие, а такие, которые могут обеспечить требуемую точность (5%) по напряжению во всём диапазоне потребляемого тока, и при этом обладающие низким уровнем шума и пульсаций (меньше 50 мВ пик-пик в диапазоне 0-20 МГц). Косяки с этим конвертером — чуть ли не самая популярная причина неработоспособности свежеразработанной платы. Так что я при использовании каждого нового для себя чипа конвертера DC-DC обязательно сначала делаю маленькую платку только с этим конвертером (и его обвязкой, само собой), и проверяю, что он работает как положено, либо на первом экземпляре платы собираю только эти источники и убеждаюсь, что все нужные напряжения присутствуют и их параметры соответствуют требованиям.

2. FPGA имеет кучу разных способов загрузки, но на практике чаще всего применяются два — загрузка с чипа QSPI Flash, либо через JTAG, причём последний метод всегда активен вне зависимости от настроек, выставленных на пинах конфигурации. За подробностями идти читать UG470. Собственно, с точки зрения схемотехники здесь важно правильно всё подключить, возможных gotchas тут два — неверная установка пинов типа загрузки (M0-M2), а также несоответствие логического уровня на шаре CFGBVS напряжению конфигурации. Самый простой способ — посмотреть, как это сделано на какой-нить из существущих и заведомо рабочих плат, и сделать также Я так и сделал изначально, потом только незначительно корректировал эту часть схемы под фактические условия (например, если хотелось использовать 1.8-вольтовую флешку вместо стандартной 3.3-вольтовой)

3. Это отдельная и очень обширная тема, так что двумя словами тут обойтись, а также бездонный источник проблем типа "FPGA определяется и грузится, но не "видит" какой-то периферийный чип". В самом минимальном изложении это так: все пользовательские шары FPGA (user I/O) разделены на банки по 50 шаров, и для каждого из этого банков можно индивидуально выбрать напряжение питания и, соответственно, напряжения логических уровней. Про всё это очень обстоятельно и подробно написано в UG471.

Как-то так. Очень тяжело общими словами объять такие обширные темы, так что если вдруг есть конкретные вопросы — задавай.
[КУ] оккупировала армия.
Re[5]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 11.02.20 23:00
Оценка:
Здравствуйте, koandrew, Вы писали:

K>подсматривал в схемы готовых платок, которые сумел найти в сети.


Можешь поделиться? Я уже нашел кое-какие, но там все простые платы — только на Lattice, а на Xilinx только сложные, и все схемы в формате картинок или pdf

K>Как-то так. Очень тяжело общими словами объять такие обширные темы, так что если вдруг есть конкретные вопросы — задавай.


Просто я надеялся, что есть какие-то книги. А так, для начинающих — много, хардкора — тоже много, а в середине ничего нет.
Ад пуст, все бесы здесь.
Re[6]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.02.20 01:20
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Можешь поделиться? Я уже нашел кое-какие, но там все простые платы — только на Lattice, а на Xilinx только сложные, и все схемы в формате картинок или pdf Image: horror.gif

Посмотри на сайте Digilent: Arty A7, Arty S7, Arty Z7 — нажми кнопку "Schematic". Все эти платы довольно просты для FPGA.
Само собой они в PDF — а в чём ещё тебе нужно?

C>Просто я надеялся, что есть какие-то книги. А так, для начинающих — много, хардкора — тоже много, а в середине ничего нет.

Да нету ничего в разводке под FPGA такого особенного, отличающегося от разводки аналогичного интерфейса для процессора или SoC, потому бери книги, где обсуждаются вопросы разводки высокоскоростных интерфейсов вообще — эта информация будет применима в равной степени как к FPGA, так и к любым другим чипам, реализующим такой же интерфейс. Ничего сложного в этих разводках нету, просто надо соблюдать определённые правила.
[КУ] оккупировала армия.
Re[7]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.02.20 16:29
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Само собой они в PDF — а в чём ещё тебе нужно?


Проект для какого-нибудь CAD-а
Ад пуст, все бесы здесь.
Re[8]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.02.20 17:14
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Проект для какого-нибудь CAD-а

Зачем? PDF-ы читаются так же легко, и при этом не требуют какого-то особого софта. Можно изучать схемы даже на телефоне, сидя "в заведении"
Впрочем, Xilinx публикует полные исходники своих плат. Так что можешь скачать и посмотреть. Только вот ИМХО смотреть там особенно не на что.
[КУ] оккупировала армия.
Re[9]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.02.20 18:10
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Зачем? PDF-ы читаются так же легко, и при этом не требуют какого-то особого софта.


Есть поиск. Есть возможность подсветить именованные соединения. Так удобнее.

K>Можно изучать схемы даже на телефоне, сидя "в заведении"


Месье знает толк...

K>Впрочем, Xilinx публикует полные исходники своих плат. Так что можешь скачать и посмотреть. Только вот ИМХО смотреть там особенно не на что.


А я и не знал. Надо посмотреть.
Ад пуст, все бесы здесь.
Re[10]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.02.20 18:18
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Есть поиск. Есть возможность подсветить именованные соединения. Так удобнее.

Мне и в PDF удобно. "Закалка, сноровка, тренировка" (С) творят чудеса!
Да и потом — что делать, если они опубликуют исходники не в том CAD'е, которым ты пользуешься? Уж лучше PDF — его хотя бы открыть везде можно.

C>Месье знает толк...

А ты попробуй — глядишь, понравится

C>А я и не знал. Надо посмотреть.

ЕМНИП их исходники в Оркаде. По крайней мере те, которые я смотрел. Если нет полного Оркада, то можно взять бесплатный Allergo Viewer. И ещё, насколько я помню, для скачивания требуется пройти бесплатную регистрацию.
[КУ] оккупировала армия.
Re[11]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.02.20 18:48
Оценка:
Здравствуйте, koandrew, Вы писали:

K>ЕМНИП их исходники в Оркаде. По крайней мере те, которые я смотрел. Если нет полного Оркада, то можно взять бесплатный Allergo Viewer. И ещё, насколько я помню, для скачивания требуется пройти бесплатную регистрацию.


Пока вижу только PDF-ки.
Ад пуст, все бесы здесь.
Re[12]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.02.20 19:32
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Пока вижу только PDF-ки.


Например: https://www.xilinx.com/products/boards-and-kits/sp701.html#documentation, вкладка Documentation, смотри XTP553 — SP701 Schematics (v1.0) и XTP554 — SP701 Allegro Board (v1.0), снизу у них есть ссылки на архивы (например, rdf0508-sp701-schematic-source.zip или rdf0511-sp701-allegro-board-source.zip).
[КУ] оккупировала армия.
Re[13]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.02.20 19:48
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Например: https://www.xilinx.com/products/boards-and-kits/sp701.html#documentation, вкладка Documentation, смотри XTP553 — SP701 Schematics (v1.0) и XTP554 — SP701 Allegro Board (v1.0), снизу у них есть ссылки на архивы (например, rdf0508-sp701-schematic-source.zip или rdf0511-sp701-allegro-board-source.zip).


Ага. Но там внутри PDF-ки, а не файлы для оркада.
Ад пуст, все бесы здесь.
Re[14]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.02.20 19:59
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Ага. Но там внутри PDF-ки, а не файлы для оркада.

Нет. Качай архивы, которые я указал выше.
[КУ] оккупировала армия.
Re[15]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 12.02.20 20:22
Оценка: :)
Здравствуйте, koandrew, Вы писали:

K>Нет. Качай архивы, которые я указал выше.


А, теперь вижу.
Ад пуст, все бесы здесь.
Re: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 13.02.20 00:52
Оценка: -1
Здравствуйте, koandrew, Вы писали:

Кстати, почему чип XC7S50-FTGB196? Более дешевые не справляются с HDMI, или есть еще какие-то причины?
Ад пуст, все бесы здесь.
Re[2]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.02.20 05:00
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати, почему чип XC7S50-FTGB196? Более дешевые не справляются с HDMI, или есть еще какие-то причины?

Несколько причин:
1. Этот чип — самый прожорливый из всего семейства, мне важно было убедиться, что используемый мной DC-DC конвертер сумеет обеспечить нужный ток
2. Лично я предпочитаю иметь плату с "толстым" и быстрым чипом для своих экспериментов. Ибо если вдруг для какого-то проекта этот чип окажется оверкиллом, то всегда можно спуститься пониже и купить чип поменьше, а вот в обратную сторону этот подход не работает

Вообще можно поставить на плату любой чип из семейства, есть только один ньюанс — если хочешь установить чип DDR2, то нужно использовать минимум S25, во-первых, потому, что в S6 и S15 нет встроенного АЦП, который используется контроллером памяти для компенсации температуры (один из каналов АЦП подключен к температурному датчику, расположенному на кристалле), а во-вторых, этот контроллер сам по себе использует 3.7К LUT и 3.2K FF, что составляет 10% и 5% соответственно от ресурсов S50, соответственно, для S25 это будет 20 и 10%, что уже ощутимо.
Если память устанавливать не планируется, то можно ставить хоть самый медленный S6. Что касается HDMI, для 1080p@60 я гоняю чип быстрее, чем позволяет спецификация, так что я хз, будет ли это работать на других чипах, но 720p@60 или 1080p@24 точно будет работать даже на самом медленном чипе. Другой вопрос, что без памяти под фреймбуфер придётся генерировать картинку "на лету", и это, несомненно, внесёт свои ограничения на то, что можно будет такого изобразить в этом видео. Но я знаю, что некоторые наоборот любят такие ограничения, ибо это заставляет придумывать нестандартные решения Например, думаю, можно будет реализовать текстовый режим, ибо его фреймбуфер совсем маленький, и он скорее влезет в память, имеющуюся на чипе, вместе с битмапом шрифта. Или реализовать какой-нить графический режим с палитрой.

Собственно, для тех, кто совсем новичок в сборке подобных плат, я бы посоветовал на первую плату поставить самый дешёвый S6, чтобы попрактиковаться в пайке. А потом уже собрать второй экземпляр с такими деталями, какие хочется. Впрочем, по моему глубокому убеждению, самое сложное для пайки на этой плате — это не FPGA и даже не память DDR2, а кучка 0201 кондёров, а также TSSOP с "земляным" контактом внизу. Первые — потому что очень мелкие, вторые — потому что этот контакт "сидит" на "земле" и потому его придётся долго прогревать до температуры пайки, ибо его функция как раз и состоит в том, чтобы обеспечивать отвод тепла от чипа.
[КУ] оккупировала армия.
Отредактировано 13.02.2020 5:27 koandrew . Предыдущая версия .
Re[3]: Делаем плату для FPGA с нуля для новичков
От: Codealot Земля  
Дата: 13.02.20 17:09
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>Собственно, для тех, кто совсем новичок в сборке подобных плат, я бы посоветовал на первую плату поставить самый дешёвый S6, чтобы попрактиковаться в пайке. А потом уже собрать второй экземпляр с такими деталями, какие хочется.


Кстати — ты собирался написать, какие компоненты обязательны и какие нет.
Ад пуст, все бесы здесь.
Re[4]: Делаем плату для FPGA с нуля для новичков
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.02.20 22:27
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати — ты собирался написать, какие компоненты обязательны и какие нет.


U3 — нужен только для S25 и выше (реФеренс для встроеного АЦП)
U6 — нужен для HDMI OUT и вывода +5 out порта расширения
R10-R15, R18-R26, R30-R32, Q2-Q4, D2, D3 — нужно для RGB LED
U5, C45-C51, C53, C55, C57, R35-R40 — нужно для DDR2
U7, J3, R41-R57, C64-C67, D4 — нужно для HDMI OUT

Ещё для младших FPGAшек можно поставить меньше мелких 0201 кондёров (смотри UG493, таблица 2-1, страница 14 в текущей редакции).

Всё остальное нужно в любом случае.
[КУ] оккупировала армия.
Re[23]: Собрал ревизию B
От: Codealot Земля  
Дата: 17.02.20 18:25
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>В некоторых типовых случаях для PCI Express можно обойтись предоставляемыми забесплатно IP (но не стоит забывать, что они скушают немало ресурсов FPGA)


Кстати, что это за случаи?
Ад пуст, все бесы здесь.
Re[24]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 18.02.20 16:55
Оценка: 3 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати, что это за случаи?


1) используешь чипы вендора, который предоставляет такие IP
2) эти самые IP реализуют сценарии, которые тебе нужны в твоём проекте
3) на используемом тобой чипе достаточно ресурсов, чтобы использовать этот модуль

Типовой сценарий — это отображение некой части адресного пространства, доступного внутри FPGA, на системное адресное пространство со стороны хоста PCIE (PCIE Root Complex в терминологии спеки), и обработка транзакций шины PCIE, направленных на обеспечение двухстороннего обмена данными между локальной "памятью" (в кавычках потому, что это не обязана быть именно физическая память) и окном в системном адресном пространстве, куда она отображена. А также поддержка некоторых дополнительных фич PCIE типа прерываний или управления питанием.
[КУ] оккупировала армия.
Re[25]: Собрал ревизию B
От: Codealot Земля  
Дата: 19.02.20 21:05
Оценка: -1
Здравствуйте, koandrew, Вы писали:

Кстати, как паяешь BGA? А то я почитал разные мануалы и там везде кто в лес, кто по дрова.
Ад пуст, все бесы здесь.
Re[26]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 19.02.20 21:34
Оценка: 2 (1)
Здравствуйте, Codealot, Вы писали:

C>Кстати, как паяешь BGA? А то я почитал разные мануалы и там везде кто в лес, кто по дрова.


В печке Т-962, немного допиленой напильником и откалиброванной. До того, как купил печку, паял феном.
[КУ] оккупировала армия.
Re[27]: Собрал ревизию B
От: Codealot Земля  
Дата: 20.02.20 00:16
Оценка: -1
Здравствуйте, koandrew, Вы писали:

K>В печке Т-962, немного допиленой напильником и откалиброванной. До того, как купил печку, паял феном.


Без solder mask?
А, еще пишут про flux pen. Используешь?
Ад пуст, все бесы здесь.
Отредактировано 20.02.2020 2:50 Codealot . Предыдущая версия .
Re[28]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 20.02.20 03:15
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Без solder mask?

Это как?

C>А, еще пишут про flux pen. Используешь?

Нет. Я предпочитаю вязкий гелеобразный флюс.
[КУ] оккупировала армия.
Re[29]: Собрал ревизию B
От: Codealot Земля  
Дата: 20.02.20 04:39
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Это как?


Одни пишут, что достаточно намазать контакты флюсом и поверхностное натяжение сделает всё остальное. (есть сомнение, что это сработает для чипов с маленьким расстоянием между контактами). Еще некоторые пользуются специальным трафаретом для нанесения флюса. Еще есть специальный лак, который наносится для защиты соседних дорожек от случайного затекания на них припоя. Сам лак наносится при изготовлении платы или позже вручную. У тебя на плате слоя SolderMask вроде нет, если я правильно понимаю.
В обшем, я в растерянности от количества сложностей
Ад пуст, все бесы здесь.
Re[30]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 20.02.20 05:29
Оценка: 3 (1) :)
Здравствуйте, Codealot, Вы писали:

C>Одни пишут, что достаточно намазать контакты флюсом и поверхностное натяжение сделает всё остальное. (есть сомнение, что это сработает для чипов с маленьким расстоянием между контактами). Еще некоторые пользуются специальным трафаретом для нанесения флюса.

Так и есть. Если паять BGAшки феном, то припой не нужен — намазываешь футпринт от души гелевым флюсом, ставишь чип примерно ровно (ошибка плейсмента должна быть меньше половины расстояния между шарами), и греешь до расплавления всех шаров — когда это случится, то чип заметно "просядет", т.к. поддерживающие его шары расплавятся, плюс чип сам собой выровняется за счёт того, что расплавленый припой "потянет" его за контактные площадки на плате и чипе.

C>Еще есть специальный лак, который наносится для защиты соседних дорожек от случайного затекания на них припоя. Сам лак наносится при изготовлении платы или позже вручную. У тебя на плате слоя SolderMask вроде нет, если я правильно понимаю.

А что по-твоему такое зелёное на плате? Промышленных плат без solder mask не бывает (за оооочень редкими исключениями типа микроволновых плат и подобной экзотики), и уж конечно на моей плате они есть (слои F. Mask и B.Mask).

C>В обшем, я в растерянности от количества сложностей

Есть мнение, что существенную часть этих сложностей ты сам себе придумал Если есть конкретные вопросы — задавай, чем смогу — помогу.
[КУ] оккупировала армия.
Отредактировано 20.02.2020 13:46 koandrew . Предыдущая версия .
Re[31]: Собрал ревизию B
От: Codealot Земля  
Дата: 20.02.20 17:01
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Так и есть. Если паять BGAшки феном, то припой не нужен — намазываешь футпринт от души гелевым флюсом


То есть просто намазываешь, без трафарета?
Ад пуст, все бесы здесь.
Re[32]: Собрал ревизию B
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 20.02.20 17:38
Оценка:
Здравствуйте, Codealot, Вы писали:

C>То есть просто намазываешь, без трафарета?


Ага. Трафарет нужен только если паять всю плату сразу в печке.
[КУ] оккупировала армия.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.