Этого треда уже нет.
Это копия, сохраненная 31 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
d.jpg77 Кб, 500x920
ПЛИС Иван 316943 В конец треда | Веб
Доброго времени суток. Вкатываюсь в ПЛИС (есть altera cyclone IV пока для тестов), планирую делать диплом на нём (3й курс сейчас бакалавр информатики и вычислительной техники) но не могу придумать - что таки собрать, может у кого-какая идея была когда-то но руки не дошли, или просто сейчас какая-то ассоциация... Паяльник держать умею, сложность потяну достаточно высокую, критично лишь время год остался)
Иван 2 316945
ап
3 316948
>>16945

>ап


Ты не сильно умный, как я погляжу. Ту ли ты профессию выбрал? Может дворником тебе более комфортно будет?
https://2ch.hk/ra/res/127314.html (М)
4 316964
>>16943 (OP)
Ебани логический анализатор каналов на восемь с парой мегабайт записи, распознаванием паттернов и совместимостью с распространенными программами анализа. Можно, чтобы еще и светодиодом моргал.
5 316971
>>16943 (OP)
учи лучше джаву. На плисах будешь залупу последнюю без соли доедать
6 317009
>>16971
нихуя ты долбаёб братишка, земля тебе пухом.
ВО первых - джава для петухов.
Во вторых - мне похуй на зарплату ибо я уже положил крест на свою жизнь и в дальнейшем буду преподом дискретной математики.
В третьих - плис это ахуенно интересно и если твоих пропитанных джавапарашей мозгов не хватает чтобы понять как оно и зачем - это не значит что направление тлен
7 317040
>>17009

>плис это ахуенно интересно и если твоих пропитанных джавапарашей мозгов не хватает чтобы понять как оно и зачем - это не значит что направление тлен



Если бы ты понимал как оно и зачем то не задавал бы здесь тупых вопросов. Про то, что продублировал тред и бампаешь в тематике я вообще молчу. Залетное озлобленное говно из /b видно с порога.

>мне похуй на зарплату ибо я уже положил крест на свою жизнь


Похуй на зп, пока твой мозг пропитан говном и юношеским максимализмом, со временем это пройдет, но чтоб не было поздно я дал тебе бесплатный совет - просто сравни количество вакансий и вилку зп на hh.ru по fpga и java и все поймешь.
8 317899
>>16948

> https://2ch.hk/ra/res/127314.html (М)


Тот тред уже достиг бамплимита и медленно тонет. Надо либо новый оффициальный™ тред делать, либо сюда перекатываться и бортануть ОПа, раз уж создали.
9 317906
>>17899

>либо сюда перекатываться


Давай перекатываться. Задам свой вопрос тут.

ПЛИСаны, я не понял, вот я насинтезировал конфигурацию и залил ее в эту вашу FPGA, отключил питание и все пропало? Это мне надо отдельный контроллер мутить, чтобы каждый раз конфигураци. закидывать в нее?
10 317912
>>17906
Обычно ставят специальное ПЗУ, иногда загружают из микроконтроллера. Если у тебя отладочная плата, то там должно быть ПЗУ.
11 317913
>>17906
Почти. Потребуется отдельное, специально обученное ПЗУ с SPI интерфейсом:
https://www.eevblog.com/forum/microcontrollers/cyclone-v-configuration-using-spi/
12 317914
>>17912

>Если у тебя отладочная плата,


Нет, хочу мутить частотомер, а тут начитался про то что FPGA_NOT_CPLD
13 317915
>>17913

>Cyclone V


А как быть с четвертым Циклоном? У него нет встроенного ARM-контроллера?
14 317917
>>17915

> А как быть с четвертым Циклоном?


Ты это, по ссылке то ходить пробовал?

> I have used Winbond and ST flashes in the past for Cyclone IV and Spartan III without any issues.

15 317918
>>16948
Хорошо, что ты не моряк.
16 317919
>>17914
Ставишь какую-нибудь EPCS и все. И вообще для обыкновенного частотомера не нужны FPGA и вообще ПЛИС, из-за низких частот в том числе.

>>17915
Так и в пятых циклонах нет микроконтроллера, там просто ядро. В FPGA (обычно) нет флеша потому что технологии изготовления FPGA и флеша чем-то отличаются.
17 317923
>>17919
У некоторых есть, но это отдельный продукт и за отдельные деньги: https://www.altera.com/products/soc/portfolio/cyclone-v-soc/overview.html
18 317929
>>17923
Какой же это микроконтроллер без флеша? Хотя, кому-как, наверное, ведь нет четкого определения того что считать микроконтроллером.
19 317938
>>17919

>EPCS


Блядь. Чому я раньше не спросил? Еще две недели ждать теперь
20 317944
>>17919

>Ставишь какую-нибудь EPCS и все.


А как бы узнать нужный объем для FPGA на 6к ячеек?
Screenshot-2018-3-29 Cyclone IV Device Handbook - cyclone4-[...].png48 Кб, 745x470
21 317949
>>17944
Достаточно EPCS4. Также у этих ПЗУ есть полностью совместимые аналоги.
На всякий случай еще раз скажу: нет смысла использовать FPGA для простого частотомера. На FPGA не получится сделать быстрый счетчик. Целесообразнее использовать быстрый счетчик и любой микроконтроллер.
22 317955
>>17949

>На FPGA не получится сделать быстрый счетчик


Да ладно? Что он 200МГц не потянет? Мне больше и не надо.
23 317957
>>17955
Потянет, но 74VHC4040 с любым микроконтроллером также потянет.
24 318209
>>17949
Почему сразу не сказал? Вроде как банальная память 25 серии может быть аналогом, и местами даже более быстрым, и добываемым из ближайшей помойки.
Как-то долбил ЭФО на тему оригинальных EPCS - это ахтунг, если сравнивать с "обычной" 25 серией:
EPCS4SI8N 4,5$/шт, DC 15+ Есть на складе СПб, доставка 1-1,5 недель
EPCS16SI8N 6,6$/шт, DC 16+ Есть на складе СПб, доставка 1-1,5 недель

25-ю серию сам еще не запускал, только в каком-то AN читал и на electronix.ru (https://electronix.ru/forum/lofiversion/index.php/t57150.html).

ЗЫ - Какие сейчас есть не сильно древние FPGA с 5В входом и выходом ?
Еще раз - ВХОДОМ и ВЫХОДОМ, а НЕ 5V-tolerant input. Честные 5В входы-выходы и было бы очень неплохо чтобы и другие напряжения держало (3.3, 2.5)..
Altera FLEX, ACEX и прочие ? С софтом проблемы. Или плохо смотрел? Есть CLPD на 44 вывода LC4064V - у нее 2 банка VCCIO - в теории по даташиту можно осторожно подать 3.3 и 5В.
25 318388
>>18209

> не сильно древние FPGA с 5В входом и выходом


Выбери одно Пятивольтовые FPGA померли лет 20 назад, CPLD продержались дольше, но что MAX7000S, что XC9500 давно сняты с производства.
max7.jpg1,4 Мб, 3264x2448
26 318400
>>18388
Кто-то в теме? Уже прилично так посношал гугл, а он так и не дает ответа, как и 9-й кактус - у Flex 10K%30RI208-4% есть разделение пользовательских выводов по банкам напряжений питания или нет? На сайте альтеры в разделе pinouts какие-то мутные документы, где описаны только служебные выводы, а про обычные(пользовательские) ни слова.
Видимо остановлюсь пока что на Flex 10K.
MAX7000S - тоже есть для ловли баттхерта от заявленных максимум 100 перепрошивок.
У EPM7128SLC84 - точно нет разделения выводов на банки - или все 3.3 или все 5В..
27 318414
>>18400

>от заявленных максимум 100 перепрошивок.


Народ пишет, что тысячи раз шили и нихуя страшного не случилось. Это типа Альтера перестраховуется, чтобы в случае чего ей мозги не ебли.
28 318418
>>18400
Ты делаешь что-то странное, если тебе понадобились 5В уровни и при этом не подходит преобразователь уровней. Также оно стоит немало, если покупать с хоть какой-то гарантией.

>есть разделение пользовательских выводов по банкам напряжений питания или нет?


https://www.altera.com/en_US/pdfs/literature/an/an107.pdf Банков там нет. 5В одновременно с 3,3В на выходах (вроде бы) обеспечиватеся за счет внешнего подтягивающего резистора.

>100 перепрошивок


Эти 100 перепрошивок - это количество перепрошивок при котором гарантируется заданное время сохранности данных во флеше. Если превысить, то производитель (всего лишь) не гарантирует что конфигурация будет сохраняться заданное время.
29 318442
>>16943 (OP)
Народ, а в даркнете еще не пробегала схема chipprog 48 с конфигурацией FPGA?
.jpg2,6 Мб, 3258x2168
30 318443
>>18418
Теплые, ламповые 5В.. Один раз был случай когда надо было немного логики в разрыв впихнуть, а не из чего, а свеженький циклон стремно было пихать, как и нормальные преобразователи 8T245 (или подобные) с 2 напряжениями питания негде было выдрать.

>Ты делаешь что-то странное


Тяжелый осадок одной истории.

Еще раз перечитал - по ходу да, банков нет. Подав 5В на все VCCIO и получаем 5В ввод-вывод. Согласование выходов вниз (до 3.3) на резисторах, входов не нужно.

Про 100 перепрошивок - читал на марсоходе как они издевались, но там была cpld намного свежее в виде epm240, а не архаичной max7000.

FPGA хороша тем, что у нее нет ресурса перепрошивок, но и отладка как на МК - это порочная практика. Синтез проекта, заливка, оценка работы в реальном железе, правка, повторная заливка..
MAX10 показалась интересной - заливая через JTAG конфигурацию - она применяется. Передернув по питанию - грузится "заводская" конфигурация. Как минимум ресурс внутреннего флеша не должен уменьшаться.
Есть на чем проверять, а мозгов для укрощения пока нет. Пробую VHDL неспешно изучать.
31 318805
>>18418
Антон выручай.
Altera Flex 10K поймет новую память 25 серии (какую-то некрофилию на мегабит-другой(из которых всего 46 килобайт используется) через преобразователь уровней) для хранения и загрузки конфигурации?
По диагонали почитал AN116 - вроде возможно же. Как и поймет ли прямую запись pof файла или же преобразованного hex в конфигурационную flash?
33 318822
>>18811
Это про 4-ый циклон, а тот анон про флексы.

>>18805
Стоит посмотреть http://db.zmitac.aei.polsl.pl/Electronics_Firm_Docs/ATMEL/Atmel/acrobat/doc0910.pdf
34 318833
>>18811
Забавный костыль. Закопипастил страничку - вдруг пригодится.

>>18822
Уже читал эту статейку и про их согласование уровней на hc244. http://www.platan.ru/shem/pdf/st50-52.pdf
Даташиты не сравнивал.
Это было сложно нагуглить по памяти:
https://electronix.ru/forum/lofiversion/index.php/t13569.html
как наебать систему и не подать виду.
Даже если будет эпикфейл - фигня.
Тут тоже нет конфигурационной памяти у флекса (хотя и есть куда ее втыкать) https://habrahabr.ru/post/277947/
35 319106
>>18822
Этот антон прав. Почитал даташиты - никаких шансов приклеить 25 серию флеша к флексу. Заглянув в efind.ru и chipfind.ru в поисках epc1 epc2 at17 - прямо как на той картинке "все ебанулись". Стоят как крыло от самолета.
И ладно.. Главное питание на рабочей схеме не дергать. На Altera UP1 (UP2) было только куда ставить саму память, но памяти не было. Вариант с МК конфигурить не рассматривал, хотя он скорее всего будет основным.
36 319671
Нетактический бамп.
Этот артефакт даже подает признаки жизни.
Входы и выходы прибиты гвоздями на 5В. Пока что все.
37 319849
Я так понял прошлый тред тонет, продублирую:
Парни, хелп. Нужная плата для акселерации вычислений. Суть в том, что она цепляется по эзернету, получает задания-считает-возвращает результат. Я нихрена не знаю, наугад предложил взять AES-KU040-DB-G
http://ru.farnell.com/avnet/aes-ku040-db-g/dev-board-kintex-ultrascale-prog/dp/2775206?st=kintex
Может есть что-то с более оптимальным соотношением цена/производительность?
И если заказывать с фарнелл - не завернёт ли таможня? Пугают буквы "AES" в названии.
38 321861
>>19849
Нужно исходить из ресурсозатрат твоего алгоритма.

>Пугают буквы "AES" в названии.


Иностранные поставщики соблюдают законодательство РФ горазбо более скурпулезней, чем пидорахен-таможня. Если согласятся отправить 90% что таможня пропустит.
39 321895
>>21861
Алсо в рашку могут поставляться платы с выжженными блоками AES
40 321908
>>19849
Ничего общего у этих букв и шифрования нет, не ссы.
41 321990
>>21908
Ты бы хоть в документации поискал прежде чем ерунду писать. В последнем поколении альтеровских FPGA имеется AES для шифрования конфигурации.
42 321996
>>21990
Бля, я не говорю что AES там нет, я говорю что AES в названии не о шифровании.

Блоки для крипты прошивки они клепают уже давно, и всем похуй.... экспортируються даже в санкционную рашку
43 322175
>>21996
>>21990
Я же писал выше, что в РФ приходят плисины с выжженными блоками AES.
44 322178
>>22175
Можешь хоть что-нибудь предоставить в доказательство? Я покупал в терраэлектронике микроконтроллеры с аппаратным AES и они пришли в фарнеловской упаковке, все вроде как работает.
И потом, как вообще можно выжечь какой-то блок, причем не задев соседние, если это не было предусмотрено при проектировании микросхемы?

Кроме того уже прошел месяц, наверное для анона задававшего вопрос это уже не актуально.
45 322194
>>22178

>И потом, как вообще можно выжечь какой-то блок, причем не задев соседние, если это не было предусмотрено при проектировании микросхемы?


ФЬЮ
@
ЗЫ
46 322456
>>22194
Более того, в процессорах интел есть блоки шифрования, и ниче
47 323301
>>22456
Дык на них есть нотификации фсб, а есть ли они на платы с плис - большой вопрос. В треде про компутеруниверс на /hw много разговоров про это. Есть две видюхи, аналогичные по характеристикам, одну можно невозбранно купить, а за другую чуть ли не присесть за ввоз антироссийского шифрующего средства. Как-то так, правда я слышал что эту шнягу потом отменили но это не точно.
48 324203
И снова здравствуйте.
Хочу прикупить тут чип XC7K355T-2FFG901I для своего девайса, смотрю цены, на фарнелл оно стоит €1 819,00. На ебее и на али встречаются цены от 12т.р. (€163,79) за чип. Это что наёбка какая-то? Откуда такой разброс цен?

https://www.ebay.com/itm/2PCS-X-XC7K355T-1FFG901C-IC-FPGA-300-I-O-901FCBGA-Xilinx/332337611117?epid=2165454311&hash=item4d60dd816d:g:MZwAAOSwPfVZi2I0

http://ru.farnell.com/xilinx/xc7k355t-2ffg901i/fpga-kintex-7-300-i-o-fcbga-901/dp/2831130?st=XC7K355T
49 324217
>>24203

>-


в фарнеле индастриал грейд
50 324219
>>24203
и разный speed grade

F: XC7K355T-1FFG901C
E: XC7K355T-2FFG901I

-1 -2 - скорость
С I -температурный
51 324277
Эх, антуаны.
Нет ничего больней перекатывания с няшного верилога на вхдл.
Ну если только переход с квартуса на вивадо. Хотя там симуляция проще.
52 324287
>>24217
>>24219
Спасибо, будем смотреть.
53 324312
>>24277
Хоспаде, за что тебе такое??!
54 324338
>>24277

>с няшного верилога


>с квартуса


Просто петушиное бинго сорвал.
55 324381
>>24338
Тем не менее, всяких багуль, решающихся закрытием проекта, я тут словил уже больше.

>Просто петушиное бинго сорвал.


Ну и дрочи дальше свои
иклюд дибрари ИЕЕЕ_СТД_ВЕКТОРА_МАТИМАТИКА
сигнал стд_лоджик_вектор(10 даун ту 0)
when => <=
Что это вообще блять такое тут присходит. Ебануться.
56 324408
>>24381
Багули ты ловишь, потому что руки из жопы растут. А что касается дрочи дальше, так это не я вынужден перейти на вхдл, а ты. Так что да, дрочи дальше.
57 324459
Привет, плисач. Возможно, я не по адресу со своими проблемами но идти больше не знаю куда. Пытаюсь подключить параллельный АЦП к плис и заставить его нормально работать. И беда вот в чём, мне хватило ума развести плату и запаять чип но вот дальше просто не знаю что делать. Мой АЦП AD9226 имеет дифференциальный вход, но я распаял его как single ended и теперь не представляю как на него нужно правильно подавать сигнал, и исходя из этого проверить работает ли он корректно. Ранее для проверки я не придумал ничего лучше, чем написать конфигурацию, которая сначала собирает несколько тысяч семплов в память, а потом выдаёт их по uart на комп, скрипт на питоне рисует график, график на котором получается хуйня. На второй пикче на вход был подключен генератор меандра 100 кгц, на третей его увеличенная часть. С ацп берётся 8 бит из 12, для передачи семпла одной посылкой uart, на входе присутствует 1 вольт от встроенного в ацп источника опорного напряжения. Если вы ещё не поняли, что я довн, я говорю об этом прямо. Помогите.
58 324504
>>24459
Начни с подачи постоянного напряжения на вход АЦП. В твоем случае - от 1 до 3В. Подал напряжение, записал отсчеты, посмотрел че получилось, поменял напряжение. Поставь себе какой-нибудь Bitviewer, чтобы было проще смотреть че у тебя записывается в файл.
И да, у тебя отлажена схема записи в память/чтения из памяти/передачи по UART?
59 324506
>>24504

>Bitviewer


Чем оно лучше калькулятора в виндовсе?

>И да, у тебя отлажена схема записи в память/чтения из памяти/передачи по UART?


Было бы что там отлаживать, простейшая же ерунда. Я тоже делал такое, только в отличие от этого анона я писал по 32 бита и принимал в матлабе.
60 324508

>>3244592


Похоже последовательность байт перепутана.
DP4ABLvXkAAb15y.jpg384 Кб, 1200x644
61 324521
>>24506

>Чем оно лучше калькулятора в виндовсе?


Калькулятор может нарисовать что-то такое?

>Было бы что там отлаживать, простейшая же ерунда. Я тоже делал такое, только в отличие от этого анона я писал по 32 бита и принимал в матлабе.


Молодец. Но я спрашивал не у тебя, а у этого анона.
62 324829
>>16971
Ну хз, работаю плисером в ДС2, зп 120к на руки, практически вчерашний студент.
63 324890
>>24829
Какие навыки востребованы?
64 324892
>>16943 (OP)
Может неактуально, но...
Сделай мультикатридж для для денди на микроконтроллере, а плис будет выполнять роль маппера.
65 324897
>>24890
System Verilog, Vivado, Xilinx, DSP, MATLAB, SIMULINK, C/C++, python
66 324899
>>24897
Блять а мог бы выучить пару либ на джаваскрипте и поднимать в два раза больше.
67 324909
>>24899
Ну выучи и поднимай. Хотя мне кажется, что там тоже много знать надо, чтобы хорошо платили.
68 324922
>>24897
Это не навыки. Я про алгоритмы, хуе мое.
То, что нужно сидеть в виваде под сисверилгом\вхдл плисоебу - это очевидно.
Си, я так понимаю, уже для скриптом в микроблейзе\цинке?
69 324931
>>24897
Это в оборонке такое хотят? С одной стороны, не представляю, кто в рашке может платить за плисоёбство, кроме оборонки, с другой, систем верилог и пайтон — для оборонки очень по-хипстерски.
70 324976
>>24931
В оборонке хотят железо. Как ты это железо будешь кодить никого не волнует.
71 324982
>>24922
Ну, из алгоритмов это фильтрация, ресэмплинг сигналов, различные виды модуляции, прием сигналов спутниковой связи, ФАПЧ, временные синхронизации, тактовые синхронизации, АРУ, Витерби, BCJR, LDPC и т.д. и т.п.
На C/C++ пишешь модели разрабатываемых алгоритмов, а потом переносишь на ПЛИС, или чужие модели, написанные на C/C++ переносишь на ПЛИС.
72 324994
>>24982
Походу мы одним и тем же занимаемся, лол.
73 325020
>>24994
кек
74 325032
>>24982
Я третий в этом тредю и мы, кажется, все в одном отделе сидим, лул.
75 325350
РадарММС суки я вас спалил. Скрины из треда вашим безопасникам слил. Пизда вам.
76 325356
>>25350
3 форма допуска, похуй.
77 325384
>>25350
Антихайп, ебал твой рот.
78 325580
Объясните классический нубский вопрос. Как два байта переслать (vhdl)? literally.
Я вот о чем.
Был у меня msg STD_LOGIC_VECTOR, в котором вручную забито сообщение в хексе в аскии.
И которое я спокойно пересылал с помощью мультиплексора, мол, если первый бит, то отсылаю из этого вектора кусок от 7 до 0. case i when b"00" => data(7 downto 0) <= msg(7 downto 0) и т.д.

Но надо быть человеком и использовать массивы, тайпы, хуяйпы. Как мне объявить мое сообщение? Как мне обращаться к его кускам по индексу, если у меня индекс-счетчик изначально тоже вектор?
Если забиваю на вектор-счетчик и делаю отдельный integer для индекса, то всё равно при обращении к массиву типа msg(7 downto 0) пишет, мол, внутри msg нихуя не вектор и иди нахуй. Колбасная магия с приведением типов to_unteger(unsigned i) это тоже отдельная песня.
Фокус с циклическим сдвигом ror тоже, кстати, не работает. Мол, не определена операция и всё такое.

Итак, еще раз. Как передавать символы по одному используя в качестве исходных данных массив? И всё должно быть, естественно, синтезируемо.
Спасибо.
79 325602
>>25580
Что-то не вполне тебя понял. Я VHDL подзабыл, но все равно как-то написал пример.
Если этот "массив" довольно большой, то целесообразно использовать блочную память. В таком случае имеет смысл организовать код таким образом, чтобы можно было заменить память на примитивы и мегафункции всякие, если вдруг синтезируется не так. К тому же так меньше вероятность сделать ошибку и получить какую-нибудь трехпортовую память.
80 325604
>>25602
Ну вот у меня есть Hello.
Я его объявлял
constant msg : std_logic_vector(39 downto 0) := X"68656c6c6f"
И обращался
case cnt is
when B"00" => data <= msg(7 downto 0) ...

Вот захотел не писать этот ебаный мультиплексор с кейсами, а как белый человек, через переменную. Но переменная у меня лоджик вектор, которую так просто не засунешь в скобки, нужно приводить в to_integer(unsigned()).

Как вообще на синтезируемость влияют эти все конвертации, какая предсказуемость результата?

Далее. Не хочу задавать явно в хексе вручную. Хочу писать
constant msg : string := "Hello"
И чтобы достать конкретную букву, соответственно писать
if rising_edge(clk) and (cnt <8) then
data(7 downto 0) = msg(cnt)
Но тут уже ругается, что msg(cnt) выдаёт не биты, в которых блять тут все должно хранится,, а, собсно, букву. Опять нашел, что стринг это массив чаров, которые тоже можно там по ебаному как-то конверсить в нормальные биты.
81 325619
>>25604

>Но переменная у меня лоджик вектор, которую так просто не засунешь в скобки, нужно приводить в to_integer(unsigned()).


Приводи, в чем проблема? Тут же строгая типизация.

>мультиплексор


В данном случае это скорее дешифратор.

>Как вообще на синтезируемость влияют эти все конвертации, какая предсказуемость результата?


Лучше посмотри исходники ieee.std_logic_1164, которые должны быть в твоем САПР и симуляторе. Там будет видно, что unsigned и std_logic_vector отличаются только тем, что для них определены разные операторы/функции. А определения этих обоих типов абсолютно одинаковые.

>это массив чаров


Которые имеют перечислимый тип. И прописаны они в пакете STANDARD, исходники которого также везде имеются.
82 325620
>>25619

>Приводи, в чем проблема?


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

>В данном случае это скорее дешифратор.


Верно, извиняюсь.

С индексом разобрались, вектор в ансайнд, оттуда в интежер.
А что с обращением к символу в строке, как его в биты перевести?
Свою функцию перевода писать, как рекомендуют?

function to_slv(c: character) return std_logic_vector is
begin
return std_logic_vector(to_unsigned(character'pos(c)), 8));
end;
83 325621
>>25620
А еще пишут, что стринг не синтезируема. Значит мне строки в каком формате объявлять?
84 325624
>>25621
Тогда используй string только при инициализации std_logic_vector. Аналогично тому, как инициализируют RAM из файла.
85 325625
>>25624
Слишком уже задротская тема какая-то. Я начинал с нубовопроса, не знаю уже, о чем речь.
86 325692
Зачем этот ваш плис, если все равно всё сводится к проганию на си в хард\софт ядре?
87 325704
>>25692
Можно на огромной скорости молотить в логике операции, которые процессорное ядро на такой скорости не вытянет. А ядро будет заниматься всем остальным. Бесценно для обработки сигналов.
88 325708
>>25580
Просто без задней мысли пишешь на верилоге и не забиваешь голову всякими АЙЕЕЕ_СТД_ЛОДИК_ВЕКТОР
89 325714
>>25708
Да, я тоже любил великолепный верилог, но увы, не разрешают.
90 325715
>>25704

>Бесценно для обработки сигналов.


В ПЛИС есть встроенный ацп или предполагается использовать дорогой внешний? И цап тоже внешний?
91 325716
>>25715
Ну сигналы есть не только аналоговые. Обработку эзернета, например, можно замутить.
92 325718
>>25716
Нахер оно нужно? Лучше уж готовый копеечный езернет контроллер поставить.
Вот высокоточная обработка и анализ СВЧ аналога в реалтайме - интересная тема. Но нужны оче дорогие ацп и цап.
93 325719
>>25718
Сейчас бы на плисе делать то, с чем справляется лучше DSP.
94 325722
>>25719
Куда копать для вкатывания в тему и освоения DSP?
95 325727
>>25719
Разве? В одном из самых простеньких циклонов EP4CE22 (который я люблю за TQFP корпус), есть 66 умножителей 18х18 бит, которые могут работать на ~200МГц. Параллельно умножителям там может работать куча сумматоров. Безусловно, какие-то DSP такое потянут, но если взять ПЛИС побольше?
Буфер обмена01.jpg49 Кб, 1076x846
sage 96 325845
>>25718
А если критична задержка и надо фильтровать пакеты на 7-м уровне osi на скорости 10 гигабит? А если надо выполнять ещё расчёты и выдавать отклик? На плис такая задержка будет минимальной, можно выстроить схему так, что расчёт будет идти конвеером и сложный алгоритм будет выполнятся за пару тактов, на проце такое сделать иногда просто невозможно, или нужна многоядерная йоба и ртос, и это будет нихуя не дешевле плис и разработка намного сложнее будет.
>>25715
Есть такое.
97 325975
>>25620

>это всё ходы, чтобы обмануть сапр


Именно. По сути преобразование типов - это преобразование метаинформации о битах, а не самих битов.
>>25625

>Слишком уже задротская тема какая-то


Когда я еще наивно полагал, что vhdl это неплохой язык, наткнулся на https://github.com/VLSI-EDA/PoC библиотеку, которая немного упростила байтоебство. Ничего лучше под этот язык пока не знаю.
98 325979
>>25845

>4 GSPS 12-bit RF-ADC


>Есть такое


>В плис


Разве что где-то в лаборотории у хилых. В рельности доступны только 1 MSPS.
sibo.jpg53 Кб, 326x500
99 326002
Здравствуй аноньимъ!

Прошу вашей консультации. Дело таково.
Мне нужно знать, можно ли сэкономить транзисторный бюджет и скорость, заменив стандартный float16 вычислитель на некую имитацию с фиксированной точкой.

Что мне нужно. Допустим умножать.
Каковы особенности чисел?
1. Со знаком.
2. Фиксированная точка (на десятых долях допустим) 2.1 1.3 4356.5
3. Но, когда число в диапазоне (-1 1), точку нужно перенести в старший разряд, для макс точности. Например 0.124321 -0.932323

А результат пишется в большой регистр в формате с фиксированной точкой. Например 435626.124321
2018-06-07-185504.jpg941 Кб, 1280x960
100 326103
Просто снял наклеечку E-MU e-dsp с чипа звуковой карты em8984 v3 (E-MU Systems 0404 PCIe).
101 326109
>>26103
В более старых платах у них второй спартан стоит, ничего нового.
102 326130
>>16943 (OP)
Годная пикча.
Современные погромисты даже не знают как устроена мышь и контроллер дисплея, а про архитектуру процессора я вообще молчу
103 326135
>>26130
А перечисленные тобой знания им нужны чтобы радачеров впечатлять?
104 326140
>>26135
Радачеры как макаки же. Кнопочки даваить и паять научились, а как все устроено подробно не знают и знать не хотят в большинстве
изображение.png18 Кб, 740x216
105 326144
>>26130

>Современные погромисты


Ты из какого НИИ им. тов. Подзалупкина вылез? Кому впёрлись твои расчёты когда у нас аппликашка календарика на мобиле загружает под 100% 4 ядра по 1.4Ггц просто красивенькими анимациями и полупрозрачными 3д переходами? Здесь другие ребята, анон, не стоит шутить про расчёты, это тебе не шиндоус 3.1, здесь абстрагируются по-крупному. Здесь пишут на языке богов, где любая сущность объект, где всё наследуется от всего, где просто хэллоуворлд может занимать тысячи строк кода и при внесении пары изменений в коде управлять заодно ядерным распадом в коллайдере, здесь шаблон погоняет кодогенерацией, здесь просто приложение с показом времени отжирает 2 гига оперативы на старте и занимает 500 мегабайт на диске. Тут используют Анриал Енджин только чтобы перемножать пару матриц в его математической библиотеке, здесь гарбадж коллектор трахают прямо в анус, создавая тысячи объектов в каждом кадре и не освобождая ручками ни один.

Забудь ты про свой найтивный код. Здесь совсем другая тема. Тут программируют совсем на другом уровне.
106 326145
>>26144
Хуясе! Как это у меня паста автоматом конвертнулась в пнг и запостилась пикчей? Это Абу там устои расшатывает?
107 326150
>>26144
Ну короче не те уже вы
1.png115 Кб, 658x2541
108 326151
>>26130

>На каком принципе работает курсор? Как определяют координаты и взаимодействие к примеру с окном?


>А где можно подробнее глянуть про контррллер дисплей? Как он формирует текст?


Это опять ты вылез?
Это не радачеры тупые, а ты. Не можешь даже оответствующую литературу прочитать. Как вообще тебе объяснять, если ты не знаешь базовых вещей?
Вот на картинке мой код простейшего процессора, много ты понял? А если нарисовать это на отдельных регистрах и счетчиках? Нихуя ты не поймешь, потому что "регистр" — для тебя пустой звук.
Ну, можешь попытаться все это понять с помощью nand2tetris — это такой курс для тупых программистов. Но ты сейчас опять в лучшем случае поблагодаришь и продолжишь писать тупняк.

А картинка выглядит просто шуткой. Любой человек, пишущий на ассемблере, сможет вручную по таблице опкодов перевести текст в машинные коды. Остальная "иерархия" также имеет мало смысла.
sibobydecepticoin-d9758nn.jpg102 Кб, 743x1075
109 326155
>>26144
Нынче ренессанс байтоебства наступил с приходом Rust.
Но народ не очень интересуется.
110 326182
>>26151
И как твой код переводится в машинный? Где эта прога нахожится, что переводит?

Ну про курср правда интересно. Про регистры я читал
111 326207
>>26182

>И как твой код переводится в машинный? Где эта прога нахожится, что переводит?


Оказывается ты тупее, чем мне казалось раньше. Заголовок треда не видел?
Поскольку ты такой тупой, все же попытаюсь объяснить. Этот код, в некотором приближении, можно считать схемой в текстовом виде. Специальная программа (в первом приближении) располагает эту схему внутри ПЛИС так, чтобы она занимала меньше места. Так же как в случае с ассемблером, любой плисоеб, может вручную, без компа перевести этот код в схему (но не внутри ПЛИС, по разным причинам).

>Про регистры я читал


Но нихуя не понял, иначе не писал бы тут тупняк.
112 326208
>>26144
Ты из какого НИИ им. тов. Подзалупкина вылез? Кому впёрлись твои расчёты когда у нас аппликашка календарика на мобиле загружает под 100% 4 ядра по 1.4Ггц просто красивенькими анимациями и полупрозрачными 3д переходами? Здесь другие ребята, анон, не стоит шутить про расчёты, это тебе не шиндоус 3.1, здесь абстрагируются по-крупному. Здесь пишут на языке богов, где любая сущность объект, где всё наследуется от всего, где просто хэллоуворлд может занимать тысячи строк кода и при внесении пары изменений в коде управлять заодно ядерным распадом в коллайдере, здесь шаблон погоняет кодогенерацией, здесь просто приложение с показом времени отжирает 2 гига оперативы на старте и занимает 500 мегабайт на диске. Тут используют Анриал Енджин только чтобы перемножать пару матриц в его математической библиотеке, здесь гарбадж коллектор трахают прямо в анус, создавая тысячи объектов в каждом кадре и не освобождая ручками ни один.

Забудь ты про свой найтивный код. Здесь совсем другая тема. Тут программируют совсем на другом уровне.
113 326218
>>26207
Лол. Спасибо за терпение. Я про плис не спрашивал т.к. не разбирался с ним и не собираюсь пока.

Я просто тут часто спрашивал и всех заебал про ассемблер. Я так понял, что сам кодер опкодов в машинный заложен уже в архитектуре проца. Но сам ассемблер это сорт компилятора?

А про курсор я еще не понял детально. Хочу найти подробные схемы видеоконтроллера кр580вг75
114 326221
Посоветуйте какие-либо legit курсы по повышению квалификации. Чтобы сертификаты на стенку вешать и вот это всё.
115 326225
>>26151

>82 строка casez


Что за casez? Джва года пишу на верилоге, такого не встречал
116 326226
>>26225
Это кейс, который учитывает, собсно Z состояние линии.
Есть еще casex.
117 326233
>>26218

>Я так понял, что сам кодер опкодов в машинный заложен уже в архитектуре проца. Но сам ассемблер это сорт компилятора?


Не, это просто бессмысленный набор слов. Нихуя ты не понял. Абсолютный нуль знаний. Хотя это даже не нуль, ты в минус пошел.

>Хочу найти подробные схемы видеоконтроллера кр580вг75


Опять ты со своим выводом изображения на экран? Ладно, в очередной раз попробую объяснить.
Начинать нужно с аналогового видеосигнала, того который в телевизоре или мониторе на ЭЛТ. В телевизоре электронный луч двигается зигзагом за счет отклоняющего магнитного или электрического поля. Попадая в экран, электроны засвечивают люминофор. Чем больше электронов - тем сильнее свечение. Таким образом, для того чтобы сформировать изображение, нужно менять силу тока электронного луча в кинескопе. Воздействие, заставляющее меняться силу тока, представляет собой видеосигнал (в некотором приближении, т.к. надо еще синхронизировать перемещение луча).
Аналоговый видеосигнал, как и любой аналоговый сигнал, это просто напряжение или другая величина, изменяющаяся во времени. Все, теперь задача процессора с "видеоконтроллером" сводится к формированию заданного аналогового сигнала. А для этого, в самом простом случае, достаточно лишь приделать параллельный ЦАП к параллельному порту и написать программу, которая будет в этот порт выводить требуемые значения. При такой постановке задачи это ничем не отличается от вывода любого другого аналогового сигнала, например звука.
КР580ВГ75 в некотором приближении всего лишь перекладывает часть этой работы с процессора на себя.
Вот в каком месте тебе не понятно? Это даже многие ардуинщики понимают. Те самые, про которых ты так отзывался >>26140

>>26226
Небольшое уточнение. Третье состояние могут проверять оба оператора, но только при симуляции. Это не синтезируется, разумеется. casex помимо "Z" может проверять на "X", вот и все отличие. А для синтеза используется значение "?" (пропускает любое значение).
118 326252
>>26233

>набор слов



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

Да я понимаю, что экран это по сути сетка пикселей, в зависимости от сигнала кода контроллер зажигает определенные пиксели и таким образом формируется изображение.
А как вот курсор работает, обратная связь?
119 326260
>>26252
Ты какую-то хуйню городишь. Напиши нормально что ты хочешь узнать. Написаный текст на языке погромироаания переводится в инструкции процессора компилятором. А хуйню с курсором и обратной связью лучше бы не писал
120 326261
>>26252
Ты какой-то совсем больной на голову.

>Ну хорошо, а где тогда находится тот декодер, который код с экрана переводит в машинный?


Переводом текста программ в машинный код занимается компилятор. Комилятор это программа такая, если что. Зачем делать компилятор, который будет брать текст с экрана? Не кажется ли тебе логичнее брать текст из файла или какой-нибудь области ОЗУ?

>Ты же сам понимаешь


Нет, твое чириканье я не понимаю. Отдельные слова вроде понятны, но предложения бессмысленные.

>А как вот курсор работает, обратная связь?


Лучше выпились.
Все объяснения как оно работает есть в книгах, которые тебе уже советовали. Причем это книги не для специалистов, а просто для общего развития, понятные не профессионалам. Ты, может быть скажешь, что "читал", но я тебе не верю или ты читал жопой. Попробуй напрягать голову в процессе чтения и отвечать на контрольные вопросы в конце каждой главы.
121 326264
>>26261

>Лучше выпились.


Слушай, этот тип, с периодичностью 2-3 месяца, врывается в радач и начинает задавать одни и те же вопросы по кругу. Постоянно находятся сердобольные аноны пытающиеся ему пояснить, хотя все это расписано и разжевано в сотне книг рассчитанных на широкий круг icq. Но этот унылый траль продолжает и продолжает уныло тралить.
122 326275
>>26264
Какие книги, посоветуй авторов? Я проебал ссылки

>>26260

>курсор


Ну если ты не знаешь, то так бы и сказал сразу. Если ты не можешь объяснить ребенку на пальцах что то в течении минуты - значит ты это сам не понимаешь

>>26261
Бля. Я не говорю про текст с экрана. Это всего лишь интерфейс для человека поняинтно. Про компилятор знаю, но принцип ты его понимаешь? Ты же вот мне про регистры говорил. Говришь программа переводит, это и так любому школьнику понятно. Ну ты же сам понимаешь, что программа это не магия, а по сути управление логическими элементами и кодерами, которые из этих вентелей и состоят. Так я всего лишь это хотел и узнать - где эти кодеры и находятся - в архитектуре проца или нет. За терпения спасибо тебе конечно. Вы конечно радачеры молодцы, можете делать/собирать йоба устройства и погроммировать, но на уровне микро видимо мало кто понимает, кроме инженеров интела и т.п.

И что я такого задал про курсор плохого? Мне просто интересно, какой принцип.
123 326276
>>26275

>Так я всего лишь это хотел и узнать - где эти кодеры и находятся - в архитектуре проца или нет.


У меня аж голова заболела. Кодеры - они за компом, вне проца находятся.

>но на уровне микро


Тебе интересно понять, как проходит движение основных носителей заряда в приповерхностном слое?
3.36.jpg53 Кб, 485x578
124 326278
>>26276
Ну вот тебе элементарный шифратор 10 чисел в двоичные к примеру
Они же находятся уже в архитектуре проца? Я собственно и пытаюсь это у вас тут узнать какой уже месяц лол
125 326279
>>26278
Да, находится.
126 326293
>>26278
Блядь, ебаный ты шизоид, ты можешь нормально выражать свои мысли? Твой поток сознания читать просто не возможно. Возникает ощущение, что у тебя разорванное мышление или речевая бессвязность. Просто словесный шум какой-то. Прими таблетки и не забывай посещать психиатра, у которого наблюдаешься.
127 326294
>>26252

>а где тогда находится тот декодер, который код с экрана переводит в машинный


Переводом исходного кода в машинный код занимается компилятор, а не декодер.

>А как вот курсор работает, обратная связь?


По-разному, в зависимости от архитектуры и вида курсора.
128 326295
>>26275

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


Программа - это последовательность инструкций процессора. Это по сути. Она управляет вычислениями, а не логическими элементами.

>но на уровне микро видимо мало кто понимает


Нет такого уровня, ты словоблудишь. На уровне цифровой схемотехники понимает любой плисовод, например.

>Если ты не можешь объяснить ребенку на пальцах что то в течении минуты - значит ты это сам не понимаешь.


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

>Какие книги, посоветуй авторов? Я проебал ссылки


Что ты хочешь узнать?
129 326296
>>26275

>Какие книги, посоветуй авторов? Я проебал ссылки


Я выше упоминал nand2tetris. Хотя это не совсем книга, но так даже лучше зайдет. Это курс по построению процессора из отдельных вентилей 2И-НЕ, конечный итог - работающий на этом компьютере тетрис. Если бы ты задавал вопросы по этому курсу, то тебе наверняка бы кто-нибудь ответил. А так ты несешь бред и удивляешься не менее тупым ответам.

>Если ты не можешь объяснить ребенку на пальцах что то в течении минуты - значит ты это сам не понимаешь


Неправильная логика. Это бы означало, что все что ты "читал", писали люди, не осознающие того что пишут. А это явно не так.

>Про компилятор знаю, но принцип ты его понимаешь?


Понимаю, написал сам парочку простейших. Лежат рядом с кодом вышеприведенного процессора.

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


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

>но на уровне микро видимо мало кто понимает, кроме инженеров интела и т.п.


Специалистов по физике твердого тела тут действтительно не наблюдается. Но тут есть несколько анонов, способных придумать простенький процессор и нарисовать его схему на отдельных транзисторах. На это способны все плисоебы. Выше по треду тебе наглядное подтверждение.

>>26278
Именно такие в процессоре вряд ли окажутся. В вышеприведенном процессоре такого нет.
Или у тебя вопрос в том, как программа будет переводить десятичные числа (код 1 из 10) в двоичные (натуральный двоичный код)? Так это совсем просто, например посредством команд сравнения и условных переходов.

Все, мне надоело отвечать на твой тупняк. Если следующие вопросы будут не по курсу nand2tetris, то отвечать тебе не буду. Вопросы по этому курсу можешь задавать в этом треде.
129 326296
>>26275

>Какие книги, посоветуй авторов? Я проебал ссылки


Я выше упоминал nand2tetris. Хотя это не совсем книга, но так даже лучше зайдет. Это курс по построению процессора из отдельных вентилей 2И-НЕ, конечный итог - работающий на этом компьютере тетрис. Если бы ты задавал вопросы по этому курсу, то тебе наверняка бы кто-нибудь ответил. А так ты несешь бред и удивляешься не менее тупым ответам.

>Если ты не можешь объяснить ребенку на пальцах что то в течении минуты - значит ты это сам не понимаешь


Неправильная логика. Это бы означало, что все что ты "читал", писали люди, не осознающие того что пишут. А это явно не так.

>Про компилятор знаю, но принцип ты его понимаешь?


Понимаю, написал сам парочку простейших. Лежат рядом с кодом вышеприведенного процессора.

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


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

>но на уровне микро видимо мало кто понимает, кроме инженеров интела и т.п.


Специалистов по физике твердого тела тут действтительно не наблюдается. Но тут есть несколько анонов, способных придумать простенький процессор и нарисовать его схему на отдельных транзисторах. На это способны все плисоебы. Выше по треду тебе наглядное подтверждение.

>>26278
Именно такие в процессоре вряд ли окажутся. В вышеприведенном процессоре такого нет.
Или у тебя вопрос в том, как программа будет переводить десятичные числа (код 1 из 10) в двоичные (натуральный двоичный код)? Так это совсем просто, например посредством команд сравнения и условных переходов.

Все, мне надоело отвечать на твой тупняк. Если следующие вопросы будут не по курсу nand2tetris, то отвечать тебе не буду. Вопросы по этому курсу можешь задавать в этом треде.
130 326321
>>26279
>>26294
>>26295
>>26296

Все радачеры, спасибо вам за терпение и мои вопросы. Пойду тогда книгу эту скачаю и поизучаю
131 326343
>>26218

> Хочу найти подробные схемы видеоконтроллера кр580вг75


Нахуя? Аналог делается без всяких схем собственно контроллера: http://www.danbigras.ru/RK86/Naladka/NoVG75.html
132 326537
ПЛИСач, а Spartan-6 взлетит, если ядро запитать пикрилейтед? Можно ли R2 выбросить нафиг?
133 326538
>>26537

>R1 и R2


selffix
134 326539
>>26537
Вроде можно. На выход кондёр пожирнее, резистор на пару сотен Ом до земли.
135 326546
>>26537
Я слишком сноб, но меня так-то от элэмки корежит, а тут еще и плис питать от неё. Уф.
136 326552
>>26546
В моём случае там будет AMS1117.
137 326691
Котаны, сколько примерно будет стоить заказать в китае 6-слойную плату в форм-факторе pci express?
138 326693
>>26691
Формат "pci express" - wtf
54876865.png61 Кб, 1246x967
139 326696
>>26693
Форм-фактор. Понятно же, что он имел ввиду футпринт платы под шину на материнку.
140 326757
>>26696
This! Спасибо за перевод с битардского. Я просто ахуеваю сколько стоят отладки с интерфейсами PCI-E и SFP+
Они что блять из золота?
Может дешевле выйдет, если самому развести и заказать у китайцев?
141 326768
>>26757
С учетом вероятного проеба первой партии, и немногочисленности, будет раза в два дороже
142 326778
>>26757
Это не перевод, а попытка затраллеть (или нет, в случае только разъёма). Вообще это PCI Express Electromechanical Specification, не? Дешевле или нет, ящитаю, зависит от конкретной отладки или конкретно того, что тебе нужно, и в каком количестве.
143 326828
Плисаны,
возможно ли устроиться и зарабатывать нормальную деньгу (50-150) плисаном без диплома вообще? Или без диплома магистра?
144 326941
>>26828
Можно
145 326962
>>26828
Нельзя
146 326963
>>26941
>>26962
А где в РФ вообще плисаны востребованы?
147 326975
>>26963
Посмотреть тонущий тред никак? Я тебе даже ссылку на него оставлю https://2ch.hk/ra/res/127314.html (М)

>Или без диплома магистра?


С дипломом специалиста нормально. А с дипломом бакалавра сложно. Сразу же возникает вопрос почему не доучился. Обстоятельства или просто дурак?
148 326979
>>26975

>почему не доучился


Но ведь законченное высшее, ко-ко!
149 326992
>>26757

> отладки с интерфейсами PCI-E и SFP+


> Они что блять из золота?


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

> Может дешевле выйдет, если самому развести и заказать у китайцев?


Ты точно уверен, что можешь уложиться в 200 долларов за готовое изделие?
https://www.aliexpress.com/store/product/Arria--PCIe-board/620372_32844162066.html
https://www.aliexpress.com/store/product/PCIe-development-board-Cyclone-IV/620372_32821486791.html
150 327012
>>26979
Как правило в руководстве компаний, которым в РФ нужны плисаны (оборонка) сидят дяди старой формации, воспитанные еще при Брежневе. А им ты хуй объяснишь, что бакалавр это высшее образование.
151 327019
>>27012
Высшее образование времён Брежнева безвозвратно ушло ещё в начале нулевых. А бакалавр это по сути научный работник, не заточенный под выполнение узко специализированных задач, но с развитым умом и большим количеством креатива. Магистр это уже по совковым меркам кандидат наук. Далее только доктор философии. Но как всегда у нас все смешалось и превратилось в кучу дерьма. Вся надежда на этот срок Путина, по словам будет восстановление разрушенной системы образования и подъем с колен собственной микроэлектроники.
152 327023
>>27019

>бакалавр это по сути научный работник, не заточенный под выполнение узко специализированных задач, но с развитым умом и большим количеством креатива


И хули тогда бакалавры делают в ВУЗах, которые готовят инженерные (читай, прикладные) кадры?
153 327025
>>27023
Он же написал, что у нас все как обычно перемешалось.
Однако не логично то, что даже первоначально бакалавр - это промежуточный этап перед магистром. Нет смысла готовить узкоспециализированного человека, чтобы потом еще пару лет готовить из него специалиста широкого профиля. Либо так не должно быть вообще, либо бакалавров должно быть два вида.
154 327030
>>27012
Жиза. Я начальнику отдела на собеседовании пять раз повторял, что диплом у меня уже есть. Бакалавра.
155 327693
Анон, а никому не попадались книги с практическими курсами и заданиями для FPGA? Т.е. не стопятсотый пересказ спецификации языка и водолейством «что такое двоичная система и в чём разница между CPLD и FPGA», а нечто вроде "FPGA prototyping by Verilog (VHDL) examples".
156 327695
>>27693

>"FPGA prototyping by Verilog (VHDL) examples".


Ну так книжка и называется, лул.
image.png1 Мб, 766x1040
157 327696
158 327702
>>27695
>>27696
Так я потому и пишу «наподобие», что обе эти книги у меня есть. А вот больше такого ничего не попадалось.
159 327713
>>27702
А зачем тебе еще? Читай исходники.
https://freecores.github.io/
160 327721
>>27702
Я бы тоже с радостью нечто подобное практическое заимел.
А пока приходится задачки с работы делать.
161 327733
>>27702
Впрочем, кое-что могу подкинуть. Тут не книги, а брошюрки скорее. И да, они появились когда я петушил на VHDL.
Тут подробно описаны потоки типа FIFO.
https://www.springer.com/cda/content/document/cda_downloaddocument/9781461443001-c1.pdf
Тут сборник годных советов.
http://www.mrc.uidaho.edu/mrc/people/jff/vhdl_info/Ten_Commandments_VHDL.pdf
Но больше всего опыта в проектировании я получил, читая макросы на python от этих авторов.
https://github.com/enjoy-digital
https://github.com/m-labs
162 327747
Надоело тупо подключать ардуино библиотеки для датчиков.
Куда лудше вкатываться в ПЛИС или стм32?
1.gif204 Кб, 300x400
163 327749
>>27747
В какую сторону вращается девушка?
Если по часовой стрелке - ПЛИС.
Если против часовой стрелки - STM32.
164 327751
>>27749
Спасибо. Почему-то твой ответ убедил меня сильно.
165 327753
>>27747
Очевидно стм32.
Стм-ку можно купить, сделать для неё плату из говна и палок однослойную, развести распаять и девайс готов.
ПЛИС для махараечных датчиков - оверкилл.
Если хочется - можно плисоебить чисто в редакторе с тестбенчем.
20180621182719.jpg1013 Кб, 2560x1440
166 327760
>>27751
Это называется внушение. Могу и аргументировать.
Желание перейти к ПЛИС - это желание анализировать. ПЛИС даст тебе знание внутреннего устройства контроллеров и процессоров. Желание анализировать возникает в левом полушарии мозга, и если оно активно - то девушка вращается по часовой стрелке.
Желание перейти к STM32 - это желание создавать. STM32 даст больше возможностей, власти для своих идей. Желание создавать рождается в правом полушарии и когда оно активно, девушка движется против часовой стрелки.
Лучше то, что тебе ближе.
167 327762
>>27747

>Надоело тупо подключать ардуино библиотеки для датчиков.


Учитывая это предложение, тебе лучше как следует изучить микроконтроллер в своей ардуине. Для начала ты можешь делать все то же самое на ардуиновской плате, но не использовать ардуиновское иде и библиотеки.
Ты наверное даже с регистрами в атмеге не разобрался? Представь себе, микроконтроллер, который стоит в ардуине, разрабатывался не для ардуины вовсе. Даже более того, существуют какие-то ардуины и на Cortex-M3. Если бы ардуины начали делать на STM32, а такая возможность есть, то что бы ты тогда делал?

>>27753
В целом верно, но однослойную плату под QFP-144 в домашних условиях вполне можно сделать. А CPLD в PLCC корпусах с панельками вообще можно на макетке паять.
168 327764
1
169 327765
>>27762

>В целом верно


В моем манямирке все fpga уже давно на BGA.
170 327769
>>27765
Это печально, скоро совсем не получится потыкать осциллографом прямо в ноги FPGA. Хотя нет, серия 5576 никуда не денется.
171 327770
>>27769
А зачем тыкать осциллографом, когда есть чипскоуп?
172 327773
>>27770
Чтобы смотреть совместно с аналоговыми сигналами.
173 327774
>>27773
Ну аналоговые сигналы можно и на другом конце потыкать, а не у ноги плисины. Конечно, есть всякая срань шумовая по пути, но я уж не знаю, насколько это важно.
174 327775
>>27774
Так то аналоговые сигналы обычно непосредственно в ПЛИС не заходят. Входной аналоговый сигнал смотришь на одном конце, выходной на другом, а синхронизируешься от вывода ПЛИС, например.
Ну и потом, во FLEX10K ничего такого не имеется.
20180622080321.jpg2,1 Мб, 2560x1440
175 327807
>>27775
Мне кажется для подобных целей достаточно сделать отладочные пятаки на этапе проектирования печатной платы.
Плюс, насколько я знаю, пятаки, к которым паяется BGA обычно делают сквозными и их можно потыкать с другой стороны печатки? Разве нет? Сам редко этим занимаюсь.
uart.png60 Кб, 1202x1002
176 327991
>>27775
Антон, скажи что у меня глюки.
Неужели реализация обычного юарта занимает 342 триггера и в самую младшую FPGA влезет всего 1.5 юарта ?
Screenshot2018-06-2318-30-21.png76 Кб, 850x1169
177 327999
>>27991

> a16450


> обычного юарта


А ты думал — в сказку попал? https://www.altera.com.cn/content/dam/altera-www/global/zh_CN/pdfs/literature/ds/ds16450.pdf
178 328001
179 328045
>>27991
Ну не триггеров, а логических элементов.
Плюс, это же приемо-передатчик. Еще и перевод из последовательного в параллельный, та еще морока.
180 328924
Двач,хочу вкатиться в FPGA.
Что почитать и какую плату купить для начала?
181 328926
>>28924
Поддвачну. В планах накатить 8086 или что-нибудь слабее например 6205, поэтому советуйте платку с оперативкой сразу.
182 328950
>>28924
На всякий случай скажу очевиднейший факт, который, возможно, тут не все знают. В отличие от микроконтроллеров, тут для чего-то более-менее сложного без симуляции не обойтись. Непосредственно для обучения плата не требуется. Поэтому если что-то и покупать, то в основном для того чтобы просто посмотреть как оно работает.
Книгу там выше по треду советуют >>27693 Сам я советовать не буду, т.к. то что я читал, мне не понравилось.

>>28926

>6205


Может 6502?

>с оперативкой сразу.


В самих FPGA достаточно много блочной двухпортовой памяти. В весьма небольшой EP4CE10 этой памяти 414 кбит, в EP4CE22 594 кбит, по моему этого вполне хватит для игрушки на 6502. Если все-таки хочется отдельную память, то стоит определиться с ее типом.
183 329023
>>28926
Я брал такую, но для "поиграться" это дороговато наверно.
185 329062
>>29024
А схема где? Или ты китайцам для ее получения писал?
Уж лучше взять https://store.digilentinc.com/arty-s7-spartan-7-fpga-board-for-makers-and-hobbyists/ хотя в сумме с доставкой выйдет дороже. Но для задач того анона возможно лучше взять со статической памятью.
186 329113
>>28924

> хочу вкатиться в FPGA


> какую плату купить для начала?



Если говорить про альтеры (с хилыми не работал, так что посоветовать не могу), то почти любую на младших камнях из семейства «Циклон 4» (EP4CE6/EP4CE10) и приемлемым количеством мигалок и переделок (чтобы не ебаться с макетками и проводами), плюс программатор (китайский клон USB blaster):
https://www.aliexpress.com/item/ALTERA-Cyclone-IV-EP4CE6-FPGA-Development-Kit-Altera-EP4CE-NIOSII-FPGA-Board-and-USB-Blaster-downloader/32792622551.html
https://www.aliexpress.com/item/Free-shipping-Altera-CycloneIV-FPGA-Development-board-EP4CE6E22C8N/32715249531.html
https://www.aliexpress.com/store/product/Free-shipping-altera-EP4CE6F17C8N-board-fpga-board-altera-board-altera-fpga-development-board-fpga-development-board/620372_32795496067.html
https://www.aliexpress.com/store/product/only-E10-SDRAM-altera-EP4CE10F17C8N-board-fpga-board-altera-board-altera-fpga-development-board-fpga-development/620372_32800480331.html

>>28926
Тоже самое. Додревнюю восьмибитную ЭВМ можно успешно впихнуть в EP4CE10: http://www.electronicsfun.net/RU/archives/932

>>29062
Ну, в моём случае китаец дал ссылку на файлообменник, с архивами (схемы, примеры и немного документации в стиле «шоаррская лиса»).

P.S. Плисаны, я тут охуительную хуйню нашёл. «Пердуина» с MAX10 вместо микроконтроллера: https://www.aliexpress.com/store/product/Mini-Altera-MAX10-10M02SCM-10M8SCM-10M08SAM-FPGA-Development-core-Board-compatible-with-Arduino-Raspberry-Pi/829772_32881985871.html
187 329161
>>25350
Прикол они мои клиенты, члены деревянные им отгружаем
188 329205
Радач, что почитать, чтобы нормально вкатиться в вети на низком уровне?
Помню, рекомендовали сиську читать, но там разве не применительно к их аппаратуре?
Читал стандарт IEEE на 802.3 - маловато\сложновато. Маки, хуяки. Ничего не ясно.
189 329439
>>29024
Схему китайцы скинули, ага. За ссылку спасибо, кое-что присмотрел там интересное.
190 329592
>>29113
>>28950
Добра вам, аноны
191 329643
>>27807

> Плюс, насколько я знаю, пятаки, к которым паяется BGA обычно делают сквозными


Ничего ты не знаешь, Джон Сноу. Потыкать можно в переходные отверстия, через которые ноги соединяются с другими элементами схемы. Сами контактные площадки не сквозные, а поверхностные.
192 329644
>>29205
Ты странный. Хочешь вкатываться на низком уровне, а стандарты тебе СЛОЖНА. Кроме того, низкий уровень - это что? Схемотехника PHY? Логика MAC? Алгоритмы протоколов верхнего уровня? Будешь делать свой W5300 на ПЛИС? Будешь делать свой TCP/IP-стек на STM32?
193 329700
>>16943 (OP)
Хм... А может 8 бит процессор с программно настраиваевым декодером команд и его возможности в эмуляции на нём всяких микроконтроллеров?

Типа перспективы развития реализации аппаратного эмулятора...

Хз чушь несу
194 329701
>>27749
Она идёт вперёдъ
195 329747
196 329748
>>29747
Ой ля, спс а то я сам всё это учил а как называется хз
197 329753
Тест
198 330254
>>27760
Бледь.. А если я плисоёб и у меня девушка тоже вращается против часовой стрелки?
Я получается лентяй без желания создавать?
199 330255
>>30254
Ошибся, хотел написать что у меня вращается по часовой стрелке
200 330258
>>30255
Молодой человек, эта девушка не для вас вращается!
201 330285
>>27749
Наебалово. Она попеременно вращается в обе стороны. Смотрите внимательно и долго.
202 330290
>>30285

>Она попеременно


Вот же довн! Она одновременно вращается во все стороны!!111
203 330312
>>30290
Да! Девушке явно не хватает мнимой компоненты
204 330533
Какая линия прогресса у плисоеба? И критерии качества?
Ну вот поморгал ты светодиодиком.
Потом двумя.
Потом сделал рс232 приемник, ...
как там дальше?
И как плохого плисоеба отличить от хорошего? Быстро кодит? Мало блоков использует?
205 330542
>>30533

>как там дальше?


VGA, общение с памятью, SPI, I2C, USB, 10/100 Ethernet PHY, гигабитные приемопередатчики, общение с АЦП/ЦАП, интерфейс JESD204B, шина AXI, встроенные процессорные ядра (Microblaze/Nios), ARM.
Отдельно - ЦОС, фильтры, приемники, демодуляторы, SDR, обработка звука/видео/изображений, нейросети.
Еще отдельно - криптография, майнинг.
206 330587
>>30542

> USB, 10/100 Ethernet PHY, гигабитные приемопередатчики


Это зависит от наличия бабла на дорогие ПЛИСы и корки, или погромиста (не быдлокодера) под боком.

> Ethernet PHY


У тебя три ошибки в слове MAC
207 330606
>>30587

>дорогие ПЛИСы и корки, или погромиста (не быдлокодера) под боком


Необязательно, я 100 Ethernet в одно рыло поднял, и без всяких NIOS-ов и прочих говнософтовых и хардовых процов. А все нужные корки есть в свободном доступе.
208 330611
Плисаны, делаю тут (в целях самобучения) секундомер с динамической индикацией (на семисегментниках) и внезапно затупил. Как идеологически верно и политически грамотно организовать генерацию низкочастотного строба (http://zipcpu.com/blog/2017/06/02/generating-timing.html )? Генерировать его на месте, в каждом из модулей (мультиплексор, дешифратор семисегментного кода и т.п.), или же генерировать его один раз и использовать в качестве тактового сигнала для модулей?
209 330615
>>30542

>шина AXI, встроенные процессорные ядра (Microblaze/Nios), ARM.


Ну это так-то уже куски С кода в процессорной среде по большей части, не?
210 330642
>>30587

>Это зависит от наличия бабла на дорогие ПЛИСы и корки, или погромиста (не быдлокодера) под боком.


Зависит. Но вопрос был какая линия прогресса у плисоеба. А в серьезных конторах хотят, чтобы плисоеб мог смахараить свич на ПЛИС.
211 330643
>>30615

>Ну это так-то уже куски С кода в процессорной среде по большей части, не?


И? Ты думаешь, плисоеб не должен уметь кодить на C?
212 330646
>>30611

> идеологически верно и политически грамотно


делать ему длительность один период тактовой частоты и подавать его на вход EN
213 330659
>>30646

>EN


Никак не могу понять, этот EN - обычный вход разрешения, завязанный на вход D, или же какой-то спец. вход завязанный на тактовый вход?
мимо
214 330662
>>30643
Просто в чем тут мастерство плисоебства, не пойму.
215 330663
Плисаны, дайте путь мастера плисоебства.
И какие вещи надо купить и где.
Какие книги почитать.
Но главное это основные вехи Мастера, так сказать план.
216 330673
>>30659

> вход завязанный на тактовый вход


This. Твой строб будет тактирован основной тактовой частотой.
217 330676
>>16964
Этого двачую! Логический анализатор для начинающего плисоёба - отличный проект. Можно ещё 8-битную игровую приставку из ничего (от вентилей до написания игрули) попробовать замутить.
218 330748
>>30673
Ну и как он там с ним завязан, по простому И?
219 330830
>>30662
В том, чтобы найти нужные куски кода, собрать проект, запустить и чтобы работало как надо.
220 330833
>>30748
Да, если это clock enable. Бывает еще count enable, это другое.
221 330892
>>30833

>count enable


Это в счётчиках. Это синхронный вход, подаётся через комбинационные схемы на D-вход.
Мне интересен именно clock enable у D-триггера. Желательно схему такого триггера увидеть.
222 330944
>>30892
Насколько я понимаю, это можно сделать не одним способом, но например в структурных схемах МК рисуют вентиль И. А в логической ячейке ПЛИС уже есть аппаратный триггер, и как там у него внутри сделан вход clock enable, производитель не расписывает (ну, по крайней мере, Альтера для Циклона не расписывает).
223 330974
>>30944
Название книги с двух первый пикч?
224 330976
>>30944

>1 пик


Если сделано как на (b), то это хуета, лучше сразу делать как на (а).

Вкинь, плиз, страницу с рисунком 3.18.
225 330982
>>30974
digital-design-and-computer-architecture-russian-translation.pdf
1.jpg160 Кб, 688x987
226 330984
>>30976
Угрюмов Е.П. Цифровая схемотехника: учеб. пособие для вузов. — 3-е изд. 2010
227 330985
>>30976

> Если сделано как на (b), то это хуета


Поясни, пожалуйста.
228 331043
>>30985
По такой схеме повышаются требования к сигналу EN, он должен быть таким чтобы на тактовом входе не образовались пички.
И вообще, комбинационные схемы и другие на тактовых входах крайне нежелательны - синхронное проектирование же.
Вот тут подробнее рассказывается
https://youtu.be/82MIcxi5pPo
https://youtu.be/JpUUdEEKZeg
229 331190
Привет, Анон, я смотрю тут много вопросов на тему "что мне выучить чтобы устроиться на работанейм?" Работаю 4 года FPGA-разработчиком, могу ответить на твои ответы.
230 331197
>>31190

>Работаю 4 года FPGA-разработчиком, могу ответить на твои ответы.


Хуи сосешь?
231 331217
>>31190
Бочку делаешь?
232 331221
>>31190
Сколько процентов рабочего времени ты занимаешься именно разработкой - проектированием структурных схем, кодингом, симуляцией, пердолингом с железкой?
233 331222
>>31190
Какая специфика работы?
В каком городе живёшь?
Какая з/п?
234 331223
>>31190
А я бластером до потолка стрельнул.
Почему кто-то платит тебе деньги? Что ты делаешь?
235 331515
>>31190
На чём пишешь?
47857262487.jpg61 Кб, 794x593
236 331649
Шмитт, помоги есть смысол собрать универсальный нищебродский девборд. Хочу связку:
STM32F103ZXXX как основной узел ..., нутыпонел.
XC6SLX9-2TQG144C как вспомогательный.
На плате будут распаяны: слот под microSD, SDRAM, SPI flash (S6 заведётся от W25QV?).
Чего ещё не хватает для универсализации? кроме мозгов
237 331650
>>31649

>sdram


Печатку разведешь?
238 331651
>>31650
Да.
239 331656
>>31649
Почему бы не грузить S6 "основным узлом" в режиме slave serial? А так в списке поддерживаемых spi flash этот winbond вроде бы есть.
240 331658
>>31656
Хочется, чтоб он и в автономном режиме работал.
241 331660
>>31649

Я б STM32с FSMC портом взял и по нему со спартанцем соединил (модели с VC,VD,VE после цифр).
242 331663
>>31660
Разве у Z нет FSMC? Я, собс-но, из-за него и выбрал. В каталоге он не отмечен, но в описании есть, в кубе тоже.
https://www.st.com/en/microcontrollers/stm32f103zg.html
243 331928
>>31663

>Разве у Z нет FSMC



Нету, только SDIO
244 331934
>>31928

А в даташите пишут что есть, более того, пишут, что у V серии FSMC наоборот кастрирован в отличии от Z. Это ты наверное в таблице на сайте посмотрел, так её наверняка какая-нибудь секретутка из офиса заполняла, верить ей не стоит, в отличии от даташита.
245 331954
>>31934
Он и в

>VC,VD,VE


не попал. Там только у xF и xG.

>>31928
Зачем ты пишешь о том, чего не знаешь? Ты школьник?
246 331970
>>31954
Ан нет, здесь попал.

>The FSMC is embedded in the STM32F103xC, STM32F103xD and STM32F103xE performance line family.


Но при этом в другом даташите:

>The FSMC is embedded in the STM32F103xF and STM32F103xG performance line family.


Получается, все с буковками должны иметь FSMC, но в F103R в кубе нету нихуя, хотя в описании есть. Это куб мозги ебёт или документация?
Расширенный CS есть только у Z, да.
247 331978
>>31970
Орнул с даташита, раздел Pinouts and pin descriptions. У LQFP64 нет выводов к FSMC. Это выглядит как "вам полагается FSMC, но мы вам его не дадим потому, что у вас ножек нету".
248 331988
>>31978

>вам полагается FSMC, но мы вам его не дадим потому, что у вас ножек нету".


И хуле орать? Бери чип с нужным количеством ног и радуйся. Или ты предлагаешь писать отдельный даташит под каждый корпус?
249 331990
>>31988
Не, ну там на 11-ой странице в Table 2 и так написано что-то, но можно же эту таблицу было вывалить сразу в описании на сайт или, хотя бы, добавлять исключения в описание. А то получается, что в описании всё есть, а дальше мелким шрифтом на n-ой странице написано, что у одного нихуя нет, а другой кастрирован. Это как если при покупке смартфона в описании нормальные характеристики, а в инструкции меленько будет написано, что телефона нет, собс-но, 128Гб в другой модели, и вообще это тетрис.
250 331991
>>31990
Ты будто первый раз попал на сайт st. Сейчас еще более-менее упорядочили, а еще пару лет назад там был пиздец, гроб, кладбище.
251 331992
>>31991
Как будто это что-то оправдывает. Получается, что и сейчас можно в говно наступить.
252 332429
>>31221
70%
Большая часть времени уходит на ёблю с контролем версий и написание драйверов на коленках
>>31222
СПб, 75к, обработка видео и ТВ-техника
>>31515
SV
253 332494
>>32429

>обработка видео и ТВ-техника


>СПб


>75к


Ну норм так.
254 332584
Плисачи, такой нубский вопрос:
Есть sigA STD_LOGIC_VECTOR, скажем, на 32 бита,
и sigB STD_LOGIC.
Как красиво назначить некоторые биты вектора равными значению сигнала?
Т.е., чтобы sigA(13 downto 7) <= sigB. Напрямую, естессно, не работает. Каждый бит прописывать - тупо.
Я помню была какая-то ебатория с фигурными скобками типа <={N, (sigB)} или типа того. А может то в верилоге было.
255 332586
>>32584
Вспомнил сейчас про loop, но не люблю его использовать. Хз как он синтезируется и что там по таймингам.
256 332613
>>32584
sigA(13 downto 7) <= (others => sigB)
257 332627
>>32613
Так и знал, что others может сработать.
Эх, спасибо.
258 332705
>>32584

>Есть sigA STD_LOGIC_VECTOR


А ещё есть Верилог.
Аноним 259 332722
>>32705
А еще есть хуй в твоей жопе.
14538871279870.webm1,6 Мб, webm,
426x240, 0:22
260 332742
>>32722
А есть ещё порванный вхдльшик с горящим пердаком.
261 332753
>>32742
Потому что это бесполезный высер про смену языка.
На уровне смены железки.
Смены места работы.
Смены спецухи.
Смены места жительства.

Поставил вам анон задачу решать: есть суп вилкой. Нет, давайте не будем её решать, давайте советовать ложку.
262 332778
>>32753

>смена железки


>Смена места работы


>Смена спецухи


>Смена места жительства


Почему же бесполезный?
truncator1.png65 Кб, 944x900
263 332811
Долбоёб с КВ шарманкой вкатывается в тред.

Попробовал реализовать АРУ. Вот что вышло:
https://www.youtube.com/watch?v=c6bMfBvcjDE

Описание на Верилоге - на пикче. На входе - сигнал в спектре шириной 3 кГц после КИХ-фильтра.
Из-за мгновенного действия детектора усиление сильно проваливается от грозовых разрядов, и из-за ступенчатой регулировки слышно щелчки, пока работает какая-нибудь станция.

Как можно попроще сделать регулировку плавной? Как текущий вариант допилить? Может фильтр простенький какой (скользящее среднее, например), чтоб щелчки сглаживать?
264 332819
>>32811

>if else if else if else


)
1.gif14 Кб, 550x153
265 332821
>>32811
Почему бы тебе не сделать схему с обратной связью? Так же как в аналоговых приемниках делают.
Детектор - просто взятие модуля. Интегратор сигнала ошибки - ФНЧ и вычитание из порога. А управляемый усилитель - умножитель.
266 332822
>>16943 (OP)
Ебани мне РЛС.
267 332830
>>32811

Ну вот зачем ты делаешь мне боль? Зачем ты делаешь кровь мои глаза?

http://verilog.renerta.com/source/vrg00004.htm
268 332854
>>31649
Почему бы не сделать на цинке и без стм?
269 332876
>>32821
Попробую.
Тут встаёт вопрос выбора разрядности.

Допустим, в качестве фильтра беру скользящее среднее длиной 2048 семплов (больше по степеням двойки в такт не влезает).
Имея на входе 17 бит, при длине 2048 и худшем случае, когда на входе - максимальное постоянное напряжение, получаю увеличение разрядности на 11 бит. Итого, на выходе фильтра имеем разрядность 17 + 11 = 28 бит.
Тут первая непонятка:
Какая разрядность вычитателя должна быть?
270 332913
>>16943 (OP)

>пик


Боги рассыпухи смотрят на плисорабов с недоумением.
271 332916
>>32819
Предлагаешь использовать case или есть более интересные предложения?
272 332920
>>32913

> Боги рассыпухи смотря


т
Очень мееееееееееееееедленно, потому что могут онли в сотни килогерц максимум.
273 332938
>>32854

>нищебродский

274 333002
>>32913
Боги рассыпухи вымерли как вид ещё в 90-х.
275 333014
>>33002

>Боги рассыпухи вымерли



вместе с моим спектрумом...
276 333037
>>33014
"Ленинград"

Сейчас у спектрумистов на барахолке полно новодешьных печатных плат для спектрумов и не только.
agcsmooth.png29 Кб, 736x526
277 333098
>>32821
>>32876
Всё, разобрался. Спасибо за подсказку. Настолько всё просто получилось, что удивляюсь, что сам не допер и нагуглить не смог, пиздец.

https://www.youtube.com/watch?v=kVJAphWwxNc
Про дискретность регулировки усиления на 2:28 возможно хуйню сказал, ну да похуй.
279 333264
Плисаны.
Вот стоит перед нами задача. Из входов с помощью магии получить выходы. Пишем вот на HDL всякое и первоначальными критериями того, что всё удалось является адекватная временная диаграмма, количество занимаемых ячеек и работа непосредственно на железке.
А вот как писать код чтобы: было низкое энергопотребление или высокая скорость выполнения или минимальное количество ячеек?
На что ориентироваться, как это на коде отражается?
Безымянный.png63 Кб, 821x707
280 333267
>>33264
Вот в циклоне, как показано на схеме, предусмотрено переключение направления на ходу, а не только при конфигурации. В других ПЛИС аналогично. В чем проблема то?
281 333322
>>33264

>низкое энергопотребление


Меньше переключений, в том числе и отключение тактовой на неиспользуемых в данный момент частях схемы.

>высокая скорость выполнения


Чаще разбивать толстые комбинационные схемы триггерами.

>минимальное количество ячеек


Тут только оптимизация на ранних уровнях проектирования.
282 333326
>>33322
Ну вот здесь уже что-то понятно.
Хотя как это ретранслируется в код пока неясно.
283 333373
>>33326
HDL-код - это всего лишь способ создания схем. Можно схемы в графическом редакторе рисовать, можно напрямую в ChipPlaner-е структуру задавать, от этого ничего не меняется, просто в HDL-е это всё делается быстрее и удобнее. А чтобы нормально кодить, надо более менее представлять как желаемая схема должна выглядеть в графическом виде.
Можешь видосики глянуть, может что-то интересное найдёшь
https://www.youtube.com/playlist?list=PL4UMfOeGYsvZs-gvs0dC8oO3HXrmGC1bm
284 333405
>>33326

>Хотя как это ретранслируется в код пока неясно.



FPGA основана на таблицах истинности+специализированные блоки (память, умножители). Смотри даташит конкретной плисы. Например LE четвертого циклона - это любая логическая функция, описываемая 4 входами и одним выходом + один бит памяти + логика роутинга и синхронизации.

Соответсвенно прикидывай, через сколько логических функций 4bit to 1bit выражается твоя логика.
285 333435
>>33405
Ну вот что, например, лучше:
case (a) is
when 0 => ..
..
when 99 => ..
(т.е. мультиплексор на 100 входов)
или
if a = 1 then ..
elsif ...
(т.е. 100 триггеров(?)).

Триггер сам по себе реализуется всегда тяжелей, но в логике плиса - хз, там же и правда, лут, алу, вся хуйня.
286 333438
>>33435

>Триггер сам по себе реализуется всегда тяжелей


В ПЛИСе триггер не реализуется, они там уже есть, точно так же как и ПЗУ на которых реализуются комбсхемы.
Минимизировать схему, по большому счёту, нужно на ранних этапах проектирования, т.е. перед тем как начать кодить думаешь: "а нужен этот модуль/часть схемы, или без него можно обойтись", более тщательно прорабатываешь архитектуру. А если по мелочи то, в качестве примера, можно привести счётчик с параллельным переносом и сквозным.
1.png93 Кб, 1080x795
287 333439
>>33435

>но в логике плиса - хз


В самом деле хз...
Ты бы хоть что-нибудь почитал, прежде чем за ПЛИС браться.
288 333562
Как явно реализовывать выбор ячейки RAM?
Везде пишут просто
ram_data_out <= memory(to_integer(ram_addr));
Понятно, что для более-менее больших объёмов делать
case (to_integer(ram_addr)) is
when 0 => ram_data_out <= memory(0);
...

(т.е. мультиплексор) заебешься. Разбивать его на несколько маленьких? Или есть еще какая элегантная реализация, типа сдвигового регистра и пр. ?
289 333563
>>33562

>Везде пишут просто


>ram_data_out <= memory(to_integer(ram_addr));


Так и чем тебя это не устраивает?
290 333564
>>33563
Эта строка в любом компиляторе и на любой железке будет одинаково реализовываться?
291 333565
>>33564
Если железка поддерживает реализацию массивов данных, то да.
292 333610
Парни, привет, я начинающий, сильно не пинайте.
Как сделать обмен комп<->плис? Первое что пришло в голову - UART, но блин медленно, передавать/принимать желательно за раз 64 байта, по возможности быстро, хотя бы 8 байт за такт. Какие ещё варианты? Параллельный стык колхозить типа LPT?
293 333623
>>33607 (Del)

>не знаю как прошеца в очередной раз контроллер 51 архитектуры


>контроллер 51 архитектуры


>тред про ПЛИС



Шел бы ты нахуй отсюда, петушок.
294 333634
>>33610

>передавать/принимать желательно за раз 64 байта


Что такое "за раз"?
295 333646
>>33634
Это массив данных на аппаратном... в общем размер переменной для вычислений, пока все 64 байта не придут, вычисления не начинаются.
296 333653
>>33610
Даже если скорость поднять, то все равно медленно? Большинство USB-UART переходников работают до 460800 бод без проблем, а некоторые на порядок больше тянут.
Из простого можешь еще использовать FT245, FT232 и подобные.

>Data transfer rate to 1 Megabyte / second - D2XX Direct Drivers.


>Simple interface to MCU / PLD / FPGA logic with simple 4-wire handshake interface.



>>33646
Ну можешь просто байты считать. Либо можно начинать (и/или заканчивать) посылку с уникальной последовательности, если боишься обрывов связи.
297 333656
>>33646

>пока все 64 байта не придут, вычисления не начинаются


Для этих целей ставится буфер, который выдает сигнал валидности. Выдает только тогда, когда в него набъется нужное количество данных.
298 333659
>>33653
>>33656
Дело в том, что плисина считает быстро, и получится, что большую часть времени будет простаивать, ожидая, пока заполнится буфер. Нужна скорость мегабит 50, по моим прикидкам.
299 333668
>>33659
Перестань ебаться в глаза и еще раз прочитай что я писал. Тебе подойдет FT232.
300 333675
>>33610
Ну можно угареть и по езернету соединить. 15кбайт пакет, 1ГБит\сек скорость.
301 333676
>>33659
Ты че там, бетховенов майнишь что ли?
303 333687
>>33679
Ну это если есть свободный слот, то да, топ.
304 333762
>>16943 (OP)
Собери аппаратный дешифратор данных, у чекистов что-то подобное сейчас в ходу.
Awesomeemoji.gif84 Кб, 385x280
305 333766
good
306 333778
1. Чем отличается систем верилог от верилога?
2. Есть ли разница в описании комбинационной логики между:

a)
process(A1,A2)
begin
result <= A1 and A2;
end process;
B <= result;

б)
B <= A1 and A2;

3) Есть ли разница в описании:

а)
if (A1 = '1')
then if (A2 = '0')
then

б)
if (A1 = '1') and (A2 = '0')
then
307 333786
>>33778
1. Систем верилог - расширение верилога с блекджеком и свистоперделками.
2, 3. С такими вопросами можешь нахуй идти.
308 333796
>>33778
>>33786
Кроме того свистоперделки и блекджек в основном касаются несинтезируемых описаний.
anime.png171 Кб, 462x380
309 334008
>>33098

>Всё, разобрался. Спасибо за подсказку. Настолько всё просто получилось, что удивляюсь, что сам не допер и нагуглить не смог, пиздец.



Я, конечно, привык к человеческому долбоебизму, но всё равно иногда охуеваю.
Вот здесь я тебе советовал сделать так, как ты сделал сейчас:
https://m2ch.hk/ra/res/138868.html#278025
Вот здесь я объяснял, что будет происходить от импульсных помех:
https://m2ch.hk/ra/res/138868.html#278445
Вот здесь я тебе предсказывал, что ты соснёшь со своим бараньим упорством не слушать хороших советов:
https://m2ch.hk/ra/res/138868.html#278470

Поздравляю, ты всё-таки пришёл к И-регулятору, всего-то за один год и четыре месяца. Ещё и пожаловавшись, что оно не нагуглилось. Просто пиздец, какие же люди долбоёбы, вообще пиздец.
310 334163
>>16943 (OP)
Объясни чё за плис
мимо в стельку пьяный долбаеб , не понимающий статью в Википедии
311 334166
312 334508
Кто-нибудь может в SignalTap?
probe.png149 Кб, 1899x742
313 334576
>>34508
Только In System Sources and Probes Editor для попытки снятия топологии неизвестной платы. Заебатый квест. Большая часть выводов (может 500 из 740) распознана таким методом, исключая выводы высокоскоростных трансиверов.
314 334578
>>34576
Пока разбирался с SignalTap-ом столько косяков нашёл и расхождений с документацией. Вот думаю, то ли я и дурак и не понимаю, то ли действительно индусы пишут.
315 334612
>>34578
Они ещё и официальные видеоруководства записывают. От их акцента полное чувство индусизма происходящего.
54365689645.jpeg84 Кб, 640x640
316 334624
>>34612
"хай маль диль флендс. тюдель аль виль тёльк абальт илитлёниксь"
317 334677
>>34612
Доставь ссыль.
319 334684
Против индусов ничего не имею, на самом деле, в последнее время больше вижу как мемас японских программистов, лол.
https://www.reddit.com/r/MonsterHunter/comments/983851/25_of_cpu_usage_in_monster_hunter_world_is_for/
320 334687
>>34681
Щито поделать. Индусы пилят видосы.
321 334707
>>34681
Ну и нахуя? Мне СигналТап нужен, блеать!
322 334755
>>34707
Жри чё дают, мразь.
323 336127
1. Есть ли годные книжки по систем верилогу на уровне designer's guide to vhdl?
2. Есть ли годные ресурсы по всему этому кодингу на русском языке (ну кроме мемных ссылок на марсоход и тот плейлист на тытрубе про цифровую схемоту) или дефолтный гуглеж на английском всё еще единственный годный вариант?
324 336129
>>36127
Обгоню всех на повороте и скажу, что слышал про IEEE std.
325 336501
Плисаны, как ускорить подсчет контрольной суммы UDP?
Не найду полином для расчета. Вообще можно ли считать это через полином? Или только через сумматор?
326 336502
>>36501
Можешь радикально ускорить, просто забей нулями. Будет работать.
327 336503
>>36502
Работать то будет, но хуйня же выходит
328 336504
>>36503
Тогда только суммировать... полиномами только общий CRC Ethernet фрейма считаеться
329 336505
>>36503
А че хуйня? как по мне они там с КС переборщили
330 336506
>>36505
Если не буду считать КС, моя железка будет поддерживать протокол лишь условно. Для ардуиноподелок такой подход конечно подходит, но для коммерческого продукта врядли.
331 336507
>>36505
Не то что переборщили а сотворили лютую хуету. Вот что бывает, когда низкоуровневые протоколы пишут высокоуровневые программисты.
332 336508
>>36506
Как по мне, если хочешь сократить латенси. например, это можно не считать. Ибо у тебя пейлоад тоже в чексуме
333 336509
>>36508
Как я жалею в такие моменты, что плохо знаю математику. Сейчас бы вывел какую-нибудь функцию подсчета КС.

В голову не приходит ничего лучше, кроме как построить конвейер.
334 336513
>>36509
А как не через конвеер? Шморгать память?

Ну, еще придумал способ упростить. Вбей в заголовок не нулевую константу, а в пейлоад в конец вставь КС, если протокол пзволяет добавить 2 лишних байта
335 336516
>>36513

>Вбей в заголовок не нулевую константу



И рандомный маршрутизатор/стек ОС в цепочке тебя нахуй с ней пошлет
336 336520
>>36516
Схуяли, это стандарт
337 336523
>>36520

>Схуяли, это стандарт



Стандарт - это нули, всё что не нули - значит контрольная сумма оппа-а пакет-то битый, нахуй его.
338 336527
>>36509

>В голову не приходит ничего лучше, кроме как построить конвейер.


А так у тебя конвейеров нету? А как данные передаются тогда? Только не говори, что процессором без DMA.
339 336528
>>36523
не, ты просто не понял. Тебе не важно чем подгонять контрольную сумму к правильному значению, можно полем, а можно данными. Позиция по сути не важна
340 336536
Хуй знает, в тему ли, но вопрос по Signal Integrity.
Если интерфейс согласован до пина, а на кристалле показывает говно - это фейл?
А если наборот?
Заебали эти DDR4 с их ODT.
341 336543
>>36536
Чем показывает? На каком кристалле, плисины, памяти? Может, не написал констрейны для i/o standard и line termination. А может, и фейл, да.
342 336550
>>36543
Это на стадии моделирования разводки.
Модели выводов прописаны соответственно в IBIS файлах.
Показывает, например, на чтении у ноги FPGA хуйню, а на кристалле - норм. (odt на ноге плиса включен)
343 336574
>>36550
А чем моделируете, сударь?
344 336576
>>36574
Hyperlynx
345 336621
>>36527
Данные по по акси передаются. Dma и проц будет, но это не моя задача.
346 336622
>>36621
Ну вклинься между акси мастером и слейвом, и считай в процессе передачи, не должно быть слишком сложно.
347 336625
Два вопроса:
1) Нахуя на циклоне нужны VREF для банков пинов?
2) Что дает выбор стандарта напряжений логических уровней в пин планере квартуса?
348 336626
>>36625

>Нахуя на циклоне нужны VREF для банков пинов?



https://en.wikipedia.org/wiki/Stub_Series_Terminated_Logic

> Что дает выбор стандарта напряжений логических уровней в пин планере квартуса?



Требуемую совместимость с другими потрохами на плате (оператива-хуератива, цапы-хуяпы, шины-хуины)
349 336630
>>36626

>Требуемую совместимость с другими потрохами на плате (оператива-хуератива, цапы-хуяпы, шины-хуины)



Не понял, поясни плиз.
350 336632
>>36630

Логические ноги у разных микросхем/шин работают на разных стандартах.
images.jpeg12 Кб, 256x197
351 336635
>>36632
Спасибо. Держи няшку.
352 336637
>>36622
Короче все оказалось проще. Заголовок MAC-уровня передается за 14 тактов. На предыдущей стадии конвейера просчитываю предварительную КС UDP-payload. Окончательную КС считаю за 5 тактов во время передачи MAC. Можно было не ломать голову.

Однако, задача с ускорением подсчета КС интересная, так и не придумал рещение.
353 336645
>>36576
Шпиён! За меня ответил.
354 336647
>>36625

>2) Что дает выбор стандарта напряжений логических уровней в пин планере квартуса?


Разные стандарты определяют допустимые диапазоны напряжений и токов на выводе, надо читать на эту тему мануал плисины и даташит железки, к которой коннектится плис. (Те же jedec для DDR, например).
355 337321
>>17009

>джава для петухов.


вот сейчас обидно было

>мне похуй на зарплату


ой ой ой передумаешь
мимо проходил
356 337345
>>34008
Доброта.
Я был и остаюсь в таком состоянии диагноз есть, что про ЦОС-тред вообще забыл, да и не мог нихуя делать, не соображал почти.
357 337399
>>337388
Для любителей садо-мазо можно предложить 74HC299 - есть и параллельная загрузка и последовательный ввод-вывод.
С тебя логика как переключать режимы загрузка-вывод (может и обойдется даже без инвертора на S1) и как отличать актуальные данные или нет.
За лучами поноса в >>16943 (OP)
358 337403
Существует ли какая-нибудь литература по верификации на русском?
И не надо мне писать что нужно знать английский. Мне понятно что все равно в итоге придется читать на английском, но хотя бы основы я хочу прочитать на русском.
359 337417
>>37403

>литература по верификации


По чему?
360 337423
>>37417
По-русски это, видимо, звучит как "написание тестбенчей".
361 337515
spartan6 можно запрограммировать без spi flash?
362 337545
>>37515
Можно сконфигурировать через JTAG.
До первого пропадания питания.
363 337557
>>37403
Отвечаю сам себе, нашел одну книгу.

>Проектирование и верификация цифровых систем на кристаллах. Verilog & System Verilog


>Хаханов В.И., Хаханова И.В., Литвинова Е.И., Гузь О.А.


Книга выглядит как-то не очень, слишком похоже на перевод. Скорее всего это перевод и есть, только надерганный из разных источников.
В книге рассказывается об использовании assert-ов и псевдослучайном тестировании. Хотелось бы еще почитать про UVM, OVM и прочее.
364 337559
>>37557
[Spear] System Verilog for Verification
[Bening] Principles of Verifiable RTL Design
365 337575
Как измерить скорость записи/чтения между fpga и ddr, что напрямую подключена к fpga? Программное решение в виде идеи.
366 337580
>>37545
Так если через SPI конфигурируется, то разве нельзя микроконтроллером через SPI сконфигурировать?

мимо
367 337581
>>37580

>Так если через SPI конфигурируется, то разве нельзя микроконтроллером через SPI сконфигурировать?



Там хитрожопая анальная дрм-защита на проверку "а специальные ли флешки за 100$ ты используешь?".
368 337584
>>37580
Раскуривай ->
https://www.xilinx.com/support/documentation/user_guides/ug380.pdf
С Xilinx не работал, у Altera - да, есть проверка типа памяти только при заливке конфигурации в ПЗУ, но не при чтении конфигурации после подачи питания.
369 337592
Посоветуйте не очень дорогие сдвиговые регистры на 400-800MHz
370 337593
>>37592
ps parallel2serial
371 337597
>>37593
хотя наоборот тоже интересно
372 337611
>>37592
Может тебе serdes нужен?
374 337614
>>37611
SERDES из мира Ethernet вряд ли подойдет - используется перекодирование 8 бит (исходные данные) в 10 бит (в линии).
Может помогут всякие LVDS драйверы для Flat panel типа DS90CF383? Чуть больше 24 бит заталкивает в 5 LVDS линков.
375 337707
Нулевые шансы отправить/принять данные sata-хосту через serdes spartan6?
376 337720
377 337721
>>37584
Чуваку постом выше твоего будет полезнее раскурить.
378 337752
>>37720
Жесткий челикс.
379 337769
>>37581
Хуйню не неси, анальный страдалец. Протокол открыт и документирован.
380 337809
Аноны, вот купил я этот камень, чо дальше?
Накидайте пожалуйста мануалов для быстрого старта помигать светодиодами, в интернете ч нашел одну хрень
381 337810
>>37809
С бордой идут примеры
1975.jpg314 Кб, 1500x1000
382 337811
>>37809
Камень - это как на этой фотографии? Ну это больше по спортивной тематике.
Перед тем как что-то покупать, тебе нужно было читать что-нибудь по основам цифровых устройств, например Угрюмова.
383 337887
>>37809
Ну собери на нём свой спектрум, 8086, пс1 или еще чего.
384 337905
>>37887

>пс1



Это пара виртексов/арий/стратиксов как минимум, есличто.
385 338571
Пока я расхлёбываю альтеровские патенты на конфигурирующие битстримы, толковые посоны, угарающие по открытобесплатному ПО, пилят инструментарий для Lattice iCE40 с возможностью визуализации до RTL.
https://twitter.com/ico_TC/status/823883792754634752
386 338574
>>38571
Когда-то спрашивал, еще раз спрошу.
Есть слитая конфигурация с мелкой CPLD от Lattice. Как/чем превратить конфигурацию во внутреннюю схему межсоединений CPLD чтобы попытаться понять что там реализовано внутри?
387 338576
>>38574
Интересно, существуют ли кадры, задающие вопрос на пост с ответом?
388 339365
>>38571
Практическая польза?
389 339380
>>39365
Смотря что ты называешь практической пользой.
390 340042
Сап, радач, помнится тут кто-то частотомер делал, как успехи? нужен частотомер от 50МГц до 10ГГц, который может писать на флеху частоту, время, напряжение, ток, температуру. Есть что нибудь посмотреть на эту тему?
391 340056
>>40042
Но зачем тебе для этого ПЛИС?
Простой счетчик на ПЛИС даже не будет работать на такой частоте. Разве что только приспособить serdes. Но на такую частоту serdes в циклонах и спартанах вроде бы не дотягивает, придется все равно ставить внешний предделитель. Более того, serdes вообще зачастую отсутствует в дешевых сериях. Для записи на флешку придется использовать nios/microblaze (особенно если ты хочешь использовать файловую систему) или снаружи приделывать микроконтроллер, при этом сам сами счетчики будут занимать мизер относительно nios/microblaze.

Поэтому нет никаких причин делать такое на ПЛИС. Тому анону вроде как нужно было очень много каналов, а частоты были относительно низкими, поэтому ему был смысл использовать ПЛИС.
392 340090
>>40056
ну мне 8 каналов надо, забыл написать :)
393 340091
>>40056

>serdes


ПЛИС циклон 3
394 340092
>>40056
ну есть вариант цайпрес 5 поставить, кто нибудь с ним работал? как он?
395 340094
>>40056
Спасибо, за разъяснения, посоветуй годные счётчики, прескалер, и коммутатор для этих целей.
396 340097
>>40094

>годные счётчики, прескалер


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

Я так и не понял что ты в итоге хочешь получить. Если тебя устраивает одна секунда длительности измерения и ты собираешься использовать в качестве опорного генератора обычный кварцевый не термокомпенсированный, то можно поставить предделитель на 1000. Тогда в точности почти ничего не потеряешь даже на твоей нижней границе частоты и снизишь максимальную частоту до 10 МГц. Разные варианты есть, в зависимости от желаемого результата.
397 340098
>>40097
Другой вариант это сделать одноканальный частотомер и на вход поставить демультиплексор.
398 340099
>>40097
Предделитель думал на счёт upb1505 , длительность измерения 10сек, опора 10Мгц термостптированныйтермостптированный , либо стандарт частоты.
399 340100
>>40098

>демультиплексор


мультиплексор конечно же.
400 340102
>>40098
Да, я тоже подкмпл, что канал один, а раз в На вход коммутатор и переключать раз в 10 сек
401 340103
>>40091

>ПЛИС циклон 3


Это курсовая/дипломная работа, если другое выбрать нельзя?
402 340104
>>40103
Можно выбрать что угодно, но в пределах разумного
403 340245
>>40103
А какие предложения?
15288684471460.jpg130 Кб, 905x1280
404 340251
Верилогобояре в хате есть?
Поясните за task и function. Для чего нужны? В каких случаях их применение оправданно? В чём их преимущество перед обыкновенными модулями?
405 340262
>>40251
Функции и таски можно сравнить с макросами в Си. В функции можно запихивать только комбинационную логику. В таски можно уже вставлять последовательностную логику.
По сравнению с модулями, функции можно пихать практически куда угодно - в assign, initial, объявления. Например, пользуясь функцией логарифма удобно делать модули с параметризуемой разрядностью. Таски в принципе можно использовать для синтеза, но я их использую только для симуляции, т.к. часто сложно представить во что синтезируется код с ними.

Если модули можно образно представить как готовую печатную плату с детальками, то таски - нельзя. Например, вставили в таск ожидание фронта сигнала а потом вызвали несколько таких тасков друг за другом, во что оно синтезируется (если сможет конечно)? Это явно не всегда можно представить в виде последовательного соединения модулей.
406 340269
Сап, анон, есть один соневский сенсор IMX274 и задача читать с него данные 4K@60Hz@10bit. Данные он выдаёт по линиям SubLVDS, Vcm=0.9V, Vdiff>100mV, Rdiff=100 Ом. Надо принять их на кинтексе7. Кинтекс7 не умеет в SubLVDS вообще, а HR-банки (которые на КС705 выведены на внешний разъём FMC LPC) не умеют LVDS при питании 1.8В. А у нас оно 1.8, потому что от 2.5 погорят все остальные порты на сенсоре (SPI, Hsync, Vsync).

Похую, назначаем вместо SubLVDS/LVDS приёмники DIFF_HSTL_I_18, назначаем вместо дифференциального single-ended терминаторы потому что DIFF_TERM есть только на LVDS эквивалент 50 Ом на 0.9В с p-сигнала и n-сигнала. То, что надо, казалось бы? Но вот хуй, данные принимаются неправильно.

Для сравнения берём отладку KCU105, она умеет в DIFF_HSTL_I_18 и в SubLVDS. Проверяем SubLVDS с DIFF_TERM — работает. Проверяем DIFF_HSTL_18_I, терминация — single-ended эквивалент 48 Ом на 0.9В для p-сигнала и для n-сигнала — тоже, сука, работает.

Почему так? Почему данные сенсора принимаются на Kintex Ultrascale KCU105 по стандарту DIFF_HSTL_18_I без проблем, а на Kintex 7 KC705 по тому же самому стандарту DIFF_HSTL_18_I — криво и косо? Что я не учёл?
407 340275
>>40269

>эквивалент 50 Ом на 0.9В


>эквивалент 48 Ом на 0.9В для


Например.
Пины дифференциальные, надеюсь, к одной паре заводил?
А то у меня был косяк, когда дифф. пару соединил с N и P, но только N была с 12L, а P с 13L.
Ну и может второй класс hstl пойдет?
408 340302
>>40262

>По сравнению с модулями, функции можно пихать практически куда угодно - в assign, initial, объявления.


Ну так почему нельзя создать модуль нужной комбинационной схемы и вставить его себе в код, ведь не обязательно комбсхемы подключать через assign?
Есть ли такой случай когда функцию нельзя заменить на модуль?
Если я правильно понял функции и задачи удобны по большей части в моделировании, в синтезе и без них вполне можно обойтись.
409 340305
>>40302

>Ну так почему нельзя создать модуль нужной комбинационной схемы и вставить его себе в код, ведь не обязательно комбсхемы подключать через assign?


Синтаксический сахарок. Для модуля надо писать объявление самого модуля, цепей, подключать цепи к портам, причём отдельно от описания прочей логики. Функцию где понадобилось, там и вставил.

>Есть ли такой случай когда функцию нельзя заменить на модуль?


Например, ты пишешь модуль с параметризуемой шириной шины, в параметре указываешь максимальное значение на шине, а ширину шины вычисляешь при помощи функции, чтобы это значение туда влезало.
410 340306
>>40302

>Ну так почему нельзя создать модуль нужной комбинационной схемы и вставить его себе в код, ведь не обязательно комбсхемы подключать через assign?


Это ты про что? При чем тут assign? Запись с функцией обычно будет короче.

>Есть ли такой случай когда функцию нельзя заменить на модуль?


С функциями можно проводить вычисления при инициализации и объявлении. Вычислять и задавать требуемую разрядность, хотя бы. Вот тебе вполне синтезируемый пример использования функции $clog2 https://github.com/minad/vle/blob/master/shifter.v

>Если я правильно понял функции и задачи удобны по большей части в моделировании, в синтезе и без них вполне можно обойтись.


Скорее только таски (по моему мнению). Функции для синтеза наоборот вполне удобны.

Вот еще тебе пример использования функции для инициализации памяти >>26151 В более сложных случаях это может быть не чтение из файла, а вычисление на ходу.
411 340308
>>40302
Вот еще вспомнил. Функции могут возвращать тип real, а в портах модулей такое недопустимо (хотя может в SV разрешили). Хотя это ограничение можно обойти, пусть и костыльно, через $realtobits и $bitstoreal.
412 340321
>>40305

>в параметре указываешь максимальное значение на шине


В параметре я указываю любое значение при создании экземпляра модуля. Зачем в модуле ограничиваться максимальным числом?

>>40306

>С функциями можно проводить вычисления при инициализации и объявлении. Вычислять и задавать требуемую разрядность, хотя бы.


Так это системная функция.

>Вот еще тебе пример использования функции для инициализации памяти


Это тоже системная. А какой прок с пользовательских? Вот только разве что быстрее и короче.
413 340331
>>40321

>Так это системная функция.


Появилась только в verilog 2005. И мне до сих пор приходится для флексов использовать свою функцию логарифма.

>А какой прок с пользовательских? Вот только разве что быстрее и короче.


Из верилога можно выкинуть очень много, сохранив возможность делать на нем что угодно. Например, вполне можно обойтись без арифметических операций.

>Зачем в модуле ограничиваться максимальным числом?


Ты вообще о чем? Вот взять например UART приемопередатчик. Параметрами задается тактовая частота и скорость. В модуле считаются максимальные значения счетчиков для заданной скорости. Из этих максимальных значений считаются требуемые разрядности счетчиков.
414 340513
>>40269
Нашёл косяк. Оказывается, многоканальный десериалайзер для ультраскейла пакует биты на шине по порядку каналов, а для седьмого кинтекса — по порядку битов (то есть сперва нулевые биты со всех каналов, потом первые, етц). CYKA BLYAT.
415 340557
Помогите с ебучей вивадой.
Суть в следующем. Есть модуль А, который нужно промоделировать. В модуле присутствует инстанс модуля Б, который довольно тяжеловесный но уже отлажен. Не хочу моделировать эти два модуля совместно ибо пиздец как долго. Решил запилить конструкции типа ifdef SIMULATION ... ну вы понели.
Можно ли как-то сделать дефайн глобальным? В идеале, чтобы в самом тестбенче писал
Define SIMULATION 1 и модуль А симулировался в облегченном варианте?
416 340571
>>40557
Так Б у тебя на работу А-то влияет или нет? Если влияет, как ты без него моделировать собрался? Если не влияет, нахуй он там у тебя вообще?

А вообще, если у тебя есть какие-то независимые от Б части А, на твоём месте я бы их вынес в отдельный модуль и написал для него тестбенч. Прежде чем придумывать костыль, может, лучше попробовать сделать стандартными методами?
417 340572
>>40571
Влияет, но я подыгрываю модуль Б за счет force.

Вынести модуль Б на верхний уровень конечно можно, но у меня анальная бюрократия и нужно обосновывать перенос ибо "архитектура устоялась"
418 340574
>>40572
А, ну и положи на них тогда анальный хуй. Ещё крутиться из-за них зачем-то при таком отношении, подскакивать кабанчиком. Моделируй как есть, пей чай.
419 340581
>>40574
Я здесь как краб. Буду пить чай - предъявят за анальные сроки. Это сущий ад быть плисоводом, когда твой тимлид программер и вообще толком не понимает в железе, но старается компенсировать это за счет программерских штучек.

Ненавижу блять все эти программерские штуки, системы контроля версий, дженкинсы-хуенкинсы пропади они пропадом.
420 340584
>>40581
Извини, братиш, но нет к тебе что-то никакого сочувствия. Потому что допуская к себе отношение как к говну, ты формируешь у работодателя представление, что к плисоразработчикам допустимо относиться как к говну. И нет, я не системы контроля версий здесь имею в виду. Не делай так.
421 340585
>>40584
Но к плисоводам в рашке и так относятся как к говну. Вакансий мало, люди цепляются за работу.
Хотя чего я оправдываюсь, омежью сущность не скрыть.
422 340586
>>40585
Вакансий мало потому что сфера уж больно специфичная, зато там где они нужны их ценят в силу малого количества, а так средний плисовод имеет зарплатку больше чем средний прохер.
мимоплисовод
423 340587
>>40586
И какая у тебя зп?
424 340588
>>40587
45 в мухосранске миллионике.
425 340589
>>40588
И ты считаешь что тебя ценят? 45 это пиздец.
426 340590
>>40589
Ну для ДС может и пиздец, в ДС, я думаю, можно легко 100 делать. А у меня работёнка не бей лежачего, особо не напрягают, правда большую часть времени какой-то левой хернёй занят, но не суть. А так знал бы ЦОС и прочую математику, конечно бы метнулся туда где побольше.
427 340591
>>40590
Правда жизни такова, что вчерашний студент попав в МЦСТ/Миландр будет получать залупу за воротник.

Вчерашний студент попав в Сбертех джава-макакой будет получать от 120. И это без знаний ЦОС и математики.
428 340593
>>40591
Этот шарит.
Мимо работаю в мцст за 50, пока друг в сбертехе поднимал 150 (пока не съебался оттуда).
429 340594
>>40593
А сейчас где ты, Анон?
430 340595
>>40594
Я жопочтец, сорян
431 340596
>>40594

>работаю


Это друг съебал из сбертеха в другой банк за такие же деньги.
432 340599
>>40591

>Вчерашний студент попав в Сбертех джава-макакой будет получать от 120. И это без знаний ЦОС и математики.


Должно быть там анальные условия за такую зп, ибо закон сохранения энергии должен работать.
433 340603
>>40599
Наверняка и график посвободнее, и плейстейшон стоит в комнате для отдыха.
В таких вещах работает закон спроса и предложения. Писать энтерпрайз для банков спрос на специалистов большой, а делать попильные аналоговнеты для военкии — лишь постольку-поскольку. Бюджет один хуй выделят, ну и нафиг им с каким-то мимованькой делиться тогда.
434 340610
>>40603

>плейстейшон


И зачем? Вот у меня на работке есть паяльник и нехилый цифровой асцилоп и мне никто не запрещает паять себе ёбамахарайки, а это многого стоит.
435 340616
>>40610
Нихуя это не стоит. Махарайки можно и по выходным паять.
436 340618
>>40616
Ну меня вот дома нет осциллографа, тем более цифрового, тем более такого
https://1prof.ru/wa-data/public/shop/products/64/21/22164/images/25934/25934.750x0.jpg
25934.750x0[1].jpg43 Кб, 708x507
437 340619
438 340620
>>40618
А была бы у тебя зарплата джависта-сеньора — стоял бы таких хоть десяток.
439 340623
>>40618
А что в твоих махарайках на гигагерцовых частотах работает?
440 340627
>>40620
У него под 1,5М ценник.

>>40623
Ничего, просто приятно работать на таком, и логический анализатор в неё есть.
441 340637
>>40627

>>324069 Разумеется без поверки и не откалиброван. С памятью похуже, скорость обновления низкая. По удобству использования и сравнивать нечего. Тем не менее, что-то с такой полосой можно найти относительно дешево, пусть оно и не откалибровано будет. Поэтому такой осциллограф - преимущество так себе.
Другое дело спектроанализаторы, векторные анализаторы, вот такое действительно уже слишком дорого будет.
442 340700
>>40616
Я бы спаял с тобой махарайку, хоть ты и безчувственная сволочь.
443 340745
Бамп.
Буквально неделю назад на алике появились вот такие отладочные платы Kintex 7 XC7K420T https://s.click.aliexpress.com/e/LBqdJPk
Первый вопрос - а хули так дешего, при ценнике 2 к далларов только за оригинальный камень?
Второй вопрос - можно ли использовать эту плату без подключения в pci слот ПК?
Третий вопрос - можно ли использовать pci платы просто как IO?
444 340762
>>40745

>Первый вопрос - а хули так дешего, при ценнике 2 к далларов только за оригинальный камень?


Левые или пизженные микрухи. Врятли прошли полную сертификацию
Второй вопрос - можно ли использовать эту плату без подключения в pci слот ПК?
Можно, только подай питание
Третий вопрос - можно ли использовать pci платы просто как IO?
Можно, но только как высокоскоростные интерфейсы... как ГПИО -нет
445 340764
>>40745

>хули так дешего


Наебалово, ошибка, или наебалово, замаскированное под ошибку (чтобы ссылку на магазин растаскали по интернету, при реальной попытке заказать ответ будет "ой, сорян, косякнули").
446 340768
>>40764
да он написал что это первая версия, вторая будет с ДДР и дороже. Потестить забесплатно хочет.
Не знаю, я встречался со сверх-дорогими ПЛИС в поднебестной, это реальность!
447 340769
>>40764

> чтобы ссылку на магазин растаскали по интернету, при реальной попытке заказать ответ будет "ой, сорян, косякнули"


Ну хуй знает. Я в этом магазине летом покупал (правда, обычные платы с четвёртым циклоном и SDRAM), всё нормально было.

Мимикрокодил

P.S. Судя по сопровождающему лот чинглишу, похоже на то, что это какие-то китайские кустари-самородки не то демпингуют, не то сливают остатки после большого проекта («I will design the FPGA cluster dedicated to computing . Single board 12 FPGA XC 7K420T»).
448 340772
>>40769

>правда, обычные платы с четвёртым циклоном и SDRAM


$? Сколько ddr?
449 340777
>>40772
Обе платы (E10, с перделками и свистелками, и отдельный мезонин с Е22) обошлись в 90 долларов, сейчас там цены примерно такие же:
https://www.aliexpress.com/item/EP4CE10F17C8N-board/32800480331.html
https://www.aliexpress.com/item/E22-core-board-EP4CE22f17C8N/32853228751.html

> Сколько ddr?


Не DDR, обычная SDRAM. В данном случае старая (хуй его знает, где они эту микросхему десятилетней давности откопали) W98256G6EH-75, на 256 мегабит.
450 340782
>>40745
Лол. Причем питалово на линеарских модулях собрано, которые тоже нихуя не дешевые.
451 340793
>>40768

> (4531 шт. доступно)

452 340794
453 340835
>>40794
Лучше 4 10G чем 2 1G
454 341098
>>40745
Заказал, посмотрим че прийдет :)
455 341224
>>41098
Что ты будешь с ней делать, если не секрет?
456 341230
>>41224
Мигать светодиодами, их там целых восемь. На каждый можно повесить по своему собственному Микроблейзу для управления.
457 341302
>>41224
Генератор трафика, давно хочу заебошить :)
А еще можно ключи брутфорсить всякие
458 341406
>>41302

>Генератор трафика


Как применять?
459 341465
>>41406
Дудосить двощ.
460 341478
>>41465
За такое живьём скармливают абуригенам из /бэ/. Лучше запили анализатор трафика.
461 341514
>>41406
Тесты сетевого оборудования
462 341518
>>41514
Антон, в сетях варишься?
Есть пикрил, и есть Marvell 88E1111 - работал с подобным? Несколько раз пробовал запускать внутренний говногенератор спама (внимание - здесь старший и младший байт переставлены местами, очень древняя паста):
Ребут через вывод PHY RESET и чтение регистров
root@deb:~# i2cdump -yf -r 0-63 0 0x5e c
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 11 40 79 69 01 41 0c c2 0d e1 c1 e1 00 0f 28 01 ?@yi?A??????.?(?
10: 5c 6b 03 00 28 ff 00 00 00 00 00 00 00 00 f0 00 \k?.(.........?.
20: 00 68 bd c0 00 00 1c 50 0c 60 fa 7a 00 00 00 00 .h??..?P?`?z....
30: 41 00 00 00 00 0a 04 8f 00 00 00 00 00 00 00 00 A....???........

Смена страницы и запись битов включения:
root@deb:~# i2cset -yf 0 0x5e 29 0x1200 w
root@deb:~# i2cset -yf 0 0x5e 30 0x7c82 w
root@deb:~# i2cdump -yf -r 0-63 0 0x5e c
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 11 40 79 49 01 41 0c c2 0d e1 c1 e1 00 0f 28 01 ?@yI?A??????.?(?
10: e8 08 03 00 08 ff 00 00 00 00 00 00 00 00 f0 00 ???.?.........?.
20: 00 68 bd 80 00 00 1c 50 0c 60 ff ff 00 00 00 00 .h??..?P?`......
30: 41 00 00 00 00 0a 04 8f 00 00 00 12 82 7c 00 00 A....???...??|..

Что на оптике, что на меди - тишина (смотрелось внешним свичем), служебные сигналы на SFP типа TX_DISABLE устанавливались в нужные уровни, иначе бы не было линка по оптике. На входе MII в 88E1111 ничего нет, тишина, приходит только тактирование.
463 341542
>>41518
Что за чудо отечественной инженерной мысли?
Почему по меди нет разделительного транса? Ты уверен что 88E1111 в таких условиях вообще живой?
464 341557
>>41542

> нет разделительного транса?


Может быть потому шо он в разъеме встроен?
465 341558
>>41557
Тогда стоит начать с его проверки. Ну, либо 88E1111 таки труп.
magjack.png81 Кб, 736x965
466 341559
>>41542
Ньюфаг? Гугли MagJack - общее название разъемов RJ45 (8P8C) с встроенным трансом. Маркировка видна, неужели так сложно гугл спросить что это такое? Есть там внутри трансы.

>Что за чудо отечественной инженерной мысли?


Чего не знаю, того не знаю. Увидел на развале и не смог пройти мимо этой вкусноты - легкая FPGA + гигабитный Ethernet и по меди и по оптике.

> Ты уверен что 88E1111 в таких условиях вообще живой?


> Что на оптике, что на меди - тишина (смотрелось внешним свичем), служебные сигналы на SFP типа TX_DISABLE устанавливались в нужные уровни, иначе бы не было линка по оптике.

467 341560
>>41559

>Увидел на развале


Что за развалы с девбордами?
468 341561
>>41560
Там уже нет и всего один вариант - не выбор. Имен называть не могу, скажу только что стоит иногда по форумам гулять - можно много интересного и экзотичного выловить.
Своих останков мозгов хватает только на счетчик, да и то - копипастой.

Девборда - это "Cyclone V GX Starter Kit", "DE10-Standard" и "ETHERNET-HSMC Card".

>>41518 Даже трудно сказать что это. Максимум 4 IO есть и все, не разгонишься в отладке. Сдув LPC - еще может будет около 30 IO.
469 341562
>>41561
Ты либо вор, либо целенаправленно скупаешь краденое.
Рано или поздно отправишься на нары, ментам будет похуй на твои мотивы.
470 341709
>>41518
Я работал с этим чипом (вроде как кличут Аляской) - ее ставят почти на все борды Xilinx. По ойтуси ничего не писал, все заработало без пердолинга, просто настроил связку ядер pcs/pma-mac и слал данные в axi stream.
471 341773
>>41709

> слал данные в axi stream.


Какой-то софтиной для microblaze?
472 341922
Скажите долбоебу, почему в верилоге
wire [7:0] это little endian,
А [0:7] big endian?
473 341924
>>41709

> слал данные в axi stream.


Было интересно запустить ВСТРОЕННЫЙ в phy генератор пакетов. Снаружи ничего не подавалось(только 25 МГц тактирование) и что либо подавать из данных нет смысла - тк входные данные игнорируются в этом режиме.
Оно не взлетело. Где мог накосячить?
Подавал питание, давал ресет, визуально убеждался что есть гигабитный линк по меди (SFP НЕ вставлялось) на железке и на внешнем свиче, менял страницу, завал в разных вариантах биты для запуска генератора пакетов и каждый раз в ответ тишина (и визуально, и по счетчикам фреймов на порту внешнего свича).
Сейчас уже не актуально, но немного интереса осталось - как это запустить. Диагностика кабеля работает, но логику до конца не раскурил, особенно с вычитанием 0x32 (не помню) и визуальной валидации результата по битам описаниям состояния, тк порою выдавал очень и очень забавные результаты на одном и том же кабеле.
474 341930
>>41773
Я немного динозавр и ленив.
Зачем ебаться с микробом, когда можно навесить какое-нибудь ядро типа jtag2AXI либо по бырому накидать генератор пакетов на верилоге. Этого вполне хватит для теста азернета.

Ш2С не задействовал вообще, у этого камня есть mdio mdc через которые он рулится со сторонв плисины.

А зачем тебе встроенный генератор?
475 341938
>>41930

>jtag2AXI


ух ты. Подкинь исходники годноты.
476 341943
>>41930

> А зачем тебе встроенный генератор?


Склеив с

> Диагностика кабеля работает


Ответ прост - минимально возможная НЕХ для монтажеров - посмотреть кабель и посрать в сеть, а мы со стороны смотрим что происходит, до куда долетает + побочкой идет заведется не заведется гигабит на 100 метров натянутой как струны люминиевой святой пары с узлами и барашками, на пару с резкими заворотами об край бетонных плит или "где мой гигабит" на сраной говномыльнице довоенных времен со 100 мегабитными портами.
Но это все в прошлом, полностью сменил сферу деятельности, это осталось на случай "дело было вечером, делать было нечего"(с).
Да, это нужно было лично МНЕ для диагностики хронических случаев, а не говноуправляющему/начальнику/бригадиру или еще кому, когда даже сраная индикаторная отвертка одна на три бригады, а обжим чуть ли не отверткой делали. За одно и ПЛИС потыкать палочкой, но что-то не срасталось.
477 341944
>>41938
Это стандартная корка хилых, управляется через тикль консоль. Исходники думаю закрыты..
478 341989
>>41922
Это условное название, взяли "остроконечников" и "тупоконечников" из Путешествий Гулливера, одним произвольно присвоили один порядок бит, другим другой.
479 341991
>>41989
Я коряво задал вопрос.
Идем в педивикию
https://ru.wikipedia.org/wiki/Порядок_байтов

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

big-endian — большим концом An ... A0 т.е. для числа 1 An = 0, A1 = 1.
Почему в верилоге big endean записывается наоборот/ Вот пример для единички:
wire [0:7] big_endian;
assign big_endian = {1'b1, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0};
480 342016
>>41991

>big-endian — большим концом An ... A0 т.е. для числа 1 An = 0, A1 = 1


Во-первых, пофиксим:

>big-endian — большим концом An ... A0 т.е. для числа 1 An = 0, A0 = 1


Во-вторых, это little-endian, потому что наименьшему адресу (A0) соответствует младший разряд (1), а наибольшему адресу — (An) — старший (0).

Big-endian — это когда в меньший адрес (A0) идёт старший разряд (0), и в наибольшем адресе (An) оказывается млаший разряд (1).
481 342021
>>41943
Спасибо!
483 342145
>>42142
Дешёвый высокоскоростной разъём.
484 342172
>>42145
Лол, а я думал такие модули представляются компу оперативочкой и получают совместный доступ к данным.
485 342203
>>41098
sfp там пустые?
486 342218
>>42203
Естественно пустые.
487 342219
Я в ахуе с двачеров. Им дают плату с плисиной за полтора куска зелени по цене телефона ксяоми а они еще спрашивают положили ли в комплект трансиверы по цене от 100$ за штуку? Сука пиздец какие долбоебы.
488 342220
>>42219
Если китаец спиздил девборду, то может он и sfp-модули спиздит?
489 342226
>>42219
Ну и нафиг мне эта девборда, если я простой ардуинщик? Че мне 10к девать некуда? Я плис только на картинках видел и в душе не ебу что вы на них делаете, разве что частотомер можно быстрый забацать, и все. Езернеты-хуернеты, НАХУЯ это мне? Да и вам наверняка тоже. Бабло девать некуда и руки занять нечем, видимо. Лучше шлюху снимите 3-4 раза на те деньги.
490 342229
>>42226
Если нет понимания зачем тебе это надо - пиздуй из треда. На всякий случай зарепортил довена.
491 342474
>>42226

>10к


>шлюху снимите 3-4 раза


Лол
492 342477
>>42474
В полумиллионниках норм шлюха стоит как раз 2.5-4k в час. За 5-6к можно снять вип-вариант, либо шлюху вместе одной-двумя ее подругами. За 1-2к можно снять грязную больную страшную шмару.
В ДСах цены другие.
493 342483
>>42477

>вип-вариант


Что включено?
15372618193381.jpg282 Кб, 1280x850
494 342498
Всем обязательно мотать назубок поучительную стори.

Конструктор спутников в каком-то сраном НИИ при ГРУ отправил шведскому кадровому агенству своё резюме и уехал на сгуху на 14 лет строгача за разглашение гостайны (то есть своего места работы).

https://zona.media/news/2018/10/25/kravczov
495 342499
>>42483
Очевидно, помимо того что шлюха будет выглядеть топово (косметические процедуры + пластика), снимать ухоженную хату в приличном районе, еще предоставит доп. услуги на выбор клиента (прием/выдача золотого дождя, например)
>>42498

>6 лет


Повезло еще. Если бы картинки в вк репостил или грамм дикорастущего во дворе каннабиса сорвал, мог отъехать на все 15 лет.
index.png9 Кб, 318x159
496 342502
>>42483
Включено: кунилингус, анилингус мне (даме)
@
Классика, вагинал, впердол - строго по взаимной симпатии
@
Молодой человек, "анал" написано не для вас!
497 342536
Аноны, у меня квартус выдает ошибку отсутствия хай левл дизаина, как убрать вообще проверку его наличия?
quartus 13
498 342537
>>42536
Может топ модуля?
499 342542
>>42537
Ну да, короче как блоковую диаграмму сделаю, то все норм, а как без нее то?
500 342548
>>42542
В гугле: quartus set top level
https://marsohod.org/11-blog/78-newproject

>Заходим в меню Project/Set As Top Level Entity. Все - готово.

502 342571
>>42548
Спасибо
503 342948
ПЛИСаны, вот поясните за триггеры
Почему RS-триггеры не запоминают состояние, а делают какое-то говно?
Что такое D триггер, и чому у него столько различных версий?
Что такое JK триггер?
504 342949
>>42948
https://www.youtube.com/user/jack0ov/videos
Залипаю на самые первые лекции и лабы. Особое внимание на лабы где проверяется почти что на практике. То же проверяю, но на реальном железе.
505 342951
>>42949
Хммм, интересно, спасибо
506 342988
>>42949
С разбивкой по плейлистам удобнее же.
https://www.youtube.com/user/jack0ov/playlists
15379757232390.jpg135 Кб, 1280x720
507 343275
Анчоусы, накидайте только не защеку идей для pet projects. Возможно даже не обязательно связанных с плис, но крайне желательно. Словил творческую импотенцию, есть свободное время, есть желание, а достойных идей нет.
508 343299
>>43275
То есть, когда-то у тебя была потенция? У меня вот, например, не было её вообще. Уже лет пять пытаюсь выдавить хоть что-то.
мимоардуинщик
509 343301
>>43275
Погугли задачи, в которых применяется particle filter, и запили реализацию на плис. У particle filter как раз архитектура состоит из параллельных одинаковых вычислений для большого набора чуть-чуть различающихся входных данных, на архитектуру ПЛИС заебись должно лечь.
510 343322
>>43301
Туповат я для такого. Почитал на википедии постановку задачи и нихуя не понял. Плохо быть довеном не могущим в математику.
ecp3.webm23,7 Мб, webm,
640x360, 3:40
511 343341
512 343348
>>43341
Лучшая реклама CHIPсов, какую я видел.
513 343690
Сап, анон, пытаюсь понять, стоит ли изучить SystemVerilog. У Зайлинкса лишь часть его подмножества является синтезируемой, она перечислена здесь: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_2/ug901-vivado-synthesis.pdf#nameddest=xSystemVerilogConstructs

Какие из синтезируемых фич стоят того, чтобы изучить SystemVerilog, какая от них может быть польза?
514 343723
>>43690
Интерфейсы и енумы уже достаточная причина на него перейти
515 343727
>>43690
Если хочешь этим зарабатывать на жизнь, изучай, нехуй даже думать.
516 343731
>>43690

>У Зайлинкса лишь часть его подмножества является синтезируемой


Как и везде.

Ты с нуля изучаешь? Если да, то рекомендую сначала изучить простой Верилог, а уж потом как дополнение Систем.

Тут, кстати, один хмырь начал видосы пилить:
https://www.youtube.com/playlist?list=PL4UMfOeGYsvblwrP3VYKHq11xgkxVqoUj
517 343733
>>43731
Хватит уже о себе в третьем лице писать.
518 343735
Спасибо, братишки.

Уже пишу на верилоге зарабатываю на жизнь, понял ваши позиции.

Пока мысли такие:
1) изучать буду, так что не закидывайте говном за последующие вопросы
2) представляю, для чего на практике нужен енум — описывать конечные автоматы. Пока для этого хорошо заходил localparam, для каждого имени надо самому указывать соответствующую константу, зато ты мог контролировать её ширину и под неё писать остальную логику ширину регистров, с енумами это так же просто делать?
3) привык и в какой-то степени даже полюбил вивадовский редактор схем, для составления верхнего уровня иерархии самое то. Интерфейсы (стандартные наборы сигналов разной ширины и направления) между модулями (блоками) там есть. Что на нижнем уровне иерархии описывается посигнально, на верхнем автоматически пакуется в стандартные интерфейсы. Вы используете системверилог вместо редактора схем, вместе с редактором схем, куда именно?
519 343739
Самое охуенное, что я пока уже нашёл — это assert. Вот его пиздец как не хватало моим тестбенчам. Не имеет отношения к синтезу, но просто пиздец как охуенно.
520 343748
>>43733
Лол, что?
521 345059
>>40331
В подобных случаях функции применяют для вычисления констант, т.е. функции как бы отрабатывают до основной компиляции. Мне интересны случаи в которых функции используются непосредственно для синтеза схем. Ну т.е.
>>40262

>функции можно пихать практически куда угодно - в assign, initial, объявления


вот это вот всё.
522 345067
Верилогогспода, поясните за арифметический сдвиг влево, в сторону старших разрядов (<<<). Если двигать вправо, в сторону младших разрядов, то норм, знак сохраняется и копируется. А вот если двигать влево, то знак теряется, получается что и арифметический сдвиг влево и логический действуют одинаково. В чём подвох?
523 345111
>>45067

>арифметический сдвиг влево и логический действуют одинаково


Они и должны действовать одинаково.

>В чём подвох?


Переполнение.
524 345126
>>45059
Что за странный вопрос? Везде, на что хватит фантазии.
Например, функцией можно сделать подсчет бита четности, дешифратор для семисегментника и прочее.
Разумеется, делать сложную чисто комбинационную логику не целесообразно. Поэтому, если я правильно тебя понял, какую-то сложную логику в таких функциях не встретишь.
Ну и да, из перечисленного только запихивание функции в assign может привести к синтезу соответствующей комбинационной логики.

>непосредственно для синтеза схем.


Все-таки, по моему, в таком разделении нет смысла. Даже вычисление разрядности приводит к синтезу довольно таки непосредственно, а можно еще про циклы вспомнить.

>>45067
В стандарте об этом вот что написано:

>The left shift operators, << and <<<, shall shift their left operand to the left by the number by the number of bit positions given by the right operand. In both cases, the vacated bit positions shall be filled with zeroes.


По моему все однозначно, отличий нет, даже приоритет одинаковый.
525 345195
>>45111
>>45126
Тогда зачем он вообще нужен? Зачем плодить сущности?

>Переполнение


?
526 345198
>>45195
Зачем нужен оператор вычитания, когда вычитание можно сделать без него? Плодить сущности?
527 345199
>>45195
А, ты про сдвиг, а не функции. Тогда не знаю, наверное для однообразия.
528 345282
>>45198
Затем что если делать вычитание на сложении, нужно будет вручную переводить число в отрицательный вид, ну т.е. совершать доп. действия.
А тут же наоборот, выполняет ту же задачу, а сама на один уголок длиннее.
По той же причине у меня бомбит от того что блокирующее присвоение имеет вид =, а неблокирующее <=. Хотя должно быть на оборот, т.к. неблокирующее присвоение применяется чаще, а значит форма записи должна быть короче. Типа как у азбуки Морзе, наиболее часто встречающиеся буквы имеют более короткий код.
529 345309
>>45195

>?


У регистров заданной длины есть ограниченный диапазон чисел, которые они могут хранить. Надеюсь, ты в курсе, что сдвиг влево на один бит эквивалентен умножению на два. Если на месте знака при сдвиге отрицательного числа влево у тебя оказывается ноль вместо единицы, значит, ты попытался выполнить действие, результат которого не помещается в регистр имющегося размера, т.е. происходит переполнение.
Screenshot from 2018-11-20 22-29-04.png10 Кб, 409x127
530 346384
>>41098
Пришло, не кидалово. Пока только светодиодиком помигал, но все детектиться верно
531 346667
Посоветуйте недорогую девборду с dsp. С внешним dsp тоже ок.
532 346805
Братишки, поясните мне за высокоскоростные системы, как они строятся. Вот например есть оптическая линия 10Гб/с. Я подозреваю, что здесь без внешней микросхемы-сериализатора не обходится. Но даже если проект в ПЛИСине будет работать на 100МГц, то параллельная шина между ними должна быть 10Г/100М = 100 разрядов! Это норма, или я что-то не понимаю?
533 346806
>>46805
Можно внешний серализатор, можно встроенный трансивер. Внутренняя шина обычно 32 ил 64бита . ЭТО НОМА
534 346807
>>46805
Вообще, 100 мегагерц это не дохера... дохера ничинаеться с 300
535 346809
>>46805
В самой простой микросхеме физического уровня PHY PCIe, например (т.е. грубо говоря сериализаторе), частота входных данных может быть 250 МГц при разрядности данных 8 бит, с учетом того, что в линию PCIe x1 данные идут с кодированием 8b/10b это дает нам результирующую пропускную способность линии 2,5 Гбит/с. Это я к чему - к тому, что на 10Гбит Ethernet наверняка опорная частота повыше будет.

https://habr.com/post/234369/
536 346832
>>46805
У ПЛИС есть высокоскоростные трансиверы (у Xilinx это GTX, GTH). Оптические модули подключаются к ним. А внутри к ним данные идут по шине 64 бита, но это похуй уже.
537 346836
>>46806

>можно встроенный трансивер


>>46832

>У ПЛИС есть высокоскоростные трансиверы


Прямо таки оптические? Или всё таки преобразование производится внешними элементами? А если так, то по плате тянут дорожки на которых скорости 10Гб\с?
538 346838
>>46836
Открой схему любой отладочной платы с этими трансиверами и посмотри как там сделано.

>А если так, то по плате тянут дорожки на которых скорости 10Гб\с?


Ну да, именно так. Тябя же не смущают скорости SATA 3 или HDMI?
539 347007
>>45126
Что-то Квартус не компилит мой мультиплексор. Пытаюсь вычислить разрядность адресного входа через функцию. В чём подвох?

Error (10192): Verilog HDL Defparam Statement error at Test.v(50): value for parameter "N" must be constant expression

module MX #(parameter G)(output Y, input [N-1:0]A, input [G-1:0]X);

function integer clogb2(input N);
integer i;
for (i = 0; 2 i < N; i = i + 1)
clogb2 = i + 1;
endfunction

localparam N = clogb2(G);
wire [2
N-1:0]Temp = X >> A;
assign Y = Temp[0];
endmodule
540 347009
>>47007
блядская табуляция
module MX #(parameter G)(output Y, input [N-1:0]A, input [G-1:0]X);

function integer clogb2(input N);
integer i;
for (i = 0; 2 i < N; i = i + 1)
clogb2 = i + 1;
endfunction

localparam N = clogb2(G);
wire [2
N-1:0]Temp = X >> A;
assign Y = Temp[0];
endmodule
541 347014
>>47009

>input N


Нужно input [31:0] N. Вместо [31:0] можно integer, но вроде как не будет работать в древних версиях квартуса, для которых самописная функция логарифма имеет какой-то смысл.
542 347020
>>47014
Сработало.
Странно, конечно, с одной стороны указывать разрядность нужно, с другой откуда знать что у параметра разрядность 32, ведь это зависит от компилятора.
Да сказать он должен был о несовпадении разрядности, а не о том что в параметр не может быть переменной.
543 347067
>>47020
Не надо делать порты хитровыебанно параметризируемыми, они для этого не предназначены, у них задача — максимально друг к другу подходить без мозгоебли и неявных преобразований типов и разрядностей.

Вынеси N в список параметров (вместе с G), и вычисляй его на более высоком уровне иерархии, где он у тебя и ширину адреса мультиплексора будет задавать, и ширину управляющей шины (которую ты на вход адреса вешаешь).

Если ты из верхнего уровня задаёшь G, то там же ты можешь и N вычислить и передать в виде параметра, а заодно его использовать, чтобы параметризировать соседние модули.
544 347099
>>47067
Как я тебе логарифм вилкой вне функции вычислять буду? Это же не просто + - * /, или взятие степени, тут цикл строить нужно.
Про системную функцию $clog2() я знаю, мне интересно как с пользовательскими функциями работать.

>Если ты из верхнего уровня задаёшь G, то там же ты можешь и N вычислить и передать в виде параметра


Тут принцип инкапсуляции нарушается, модуль сам должен делать необходимые вычисления. Пользователь модуля мультиплексора не обязан знать его внутреннюю кухню, он прочитал в инструкции, что надо задавать количество входов - он их и задаёт.
545 347100
>>47099

>Как я тебе логарифм вилкой вне функции вычислять буду?


А не надо его вычислять в описании интерфейса.

>Пользователь модуля мультиплексора не обязан знать его внутреннюю кухню, он прочитал в инструкции, что надо задавать количество входов - он их и задаёт.


Алё, это не "внутренняя кухня", это пучок проводов, который торчит из модуля НАРУЖУ. Количество проводов в пучке пользователь должен знать, чтобы приколхозить к нему другой пучок проводов из другого модуля.

Это как если бы у тебя функция принимала аргумент в виде указателя на void, а во что он кастуется внутри — uint8 или uint32 -- ты бы не знал, потому что нехуй лезть во внутреннюю кухню.
546 347101
>>47100

>А не надо его вычислять в описании интерфейса.


Ну так скажи, как вычислить логарифм без функции?

>это пучок проводов, который торчит из модуля НАРУЖУ. Количество проводов в пучке пользователь должен знать


Количество проводов в пучке пользователь задаёт сам. Ты предлагаешь, чтобы N и G он задавал сам, при этом N и G взаимосвязаны: G = 2N. А если он, в силу своей тупизны, их укажет не в такой зависимости? Всё поломается. Вот потому он должен задавать только N, или только G, остальное вычисляется автоматически. Ну и думаю понятно, что данный мультиплексор только для примера, реальная ситуация может быть намного сложнее.
547 347102
>>47101

>G = 2


G = 2 в степени N
Макака разметку съела.
548 347108
>>47101
Если пользователь тупой, он сломает твой мультиплексор и при полностью соответствующих друг другу N и G. Например, при G=8 он подаст на вход выбор адреса 8, который не влезет в шину ширины N (который пользователю неизвестен), но не просто не влезет, а выдаст наружу нулевой канал, хотя пользователь, возможно, ожидал, что при невалидных входах выходы будут неактивные. В результате какой-нибудь спутник в очередной раз утопнет.

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


В этом и проблема, ты выдумываешь на пустом месте юзкейс, который, как тебе кажется, имеет отношение к реальности, а он его нихуя не имеет. К реальности, наоборот, имеет отношение понимать, какой ширины у тебя ёбаный вход, какие сигналы он ожидает, и какие сигналы на него выдаёт присоединённый к нему источник.
549 347136
>>47108

>Если пользователь тупой, он сломает твой мультиплексор и при полностью соответствующих друг другу N и G.


А это уже его проблемы. Я со своей стороны сделал всё чтобы ему облегчить жизнь.

>который пользователю неизвестен


Инструкция на такой случай есть.

>В этом и проблема, ты выдумываешь на пустом месте


Я до тебя пытаюсь донести мысль, что в реальном модуле может быть десяток разных параметров, которые увязаны друг с другом. И перекладывать на пользователя внутреннюю кухню по их вычислению это неправильно, он не должен и не может этого всего знать. Смотри те же IP-ядра.

Ну и как же вычислить правильно логарифм ты так и не сказал.
550 347162
>>47136

>А это уже его проблемы.


>Инструкция на такой случай есть.


Ты каргокультист просто. Думаешь, что если сделать что-то похожее на самолёт, то оно привезёт продукты. Объясни мне такую хуйню: в одном случае пользователю в инструкции напишут "задай параметром N ширину порта адреса размером не меньше clog2(G)", в другом "шина, которая подключается к порту адреса, должна иметь ширину clog2(G), иначе возможны ложные срабатывания при выходе за диапазон или при недостаточной ширине шины". Почему тебе кажется, что в одном случае пользователь освобождён от вычисления clog2(G), а в другом — нет?

>Ну и как же вычислить правильно логарифм ты так и не сказал.


Я нигде не говорил, что логарифм надо вычислять не функцией. Я говорил, что его не надо вычислять в объявлении порта, а что инструменты отказываются это делать — просто приятный бонус для защиты от выстрела в ногу.

>Смотри те же IP-ядра.


Ни в одном из использованных мной ядер ширина внешних портов не пересчитывалась внутренними функциями.
551 347185
Если мне нужно за 1 такт сравнить два 1024 битных вектора это будет пиздец какая тормознутая конструкция?
На 150 мгц заведется хоты бы?
552 347290
>>47162

>Почему тебе кажется, что в одном случае пользователь освобождён от вычисления clog2(G), а в другом — нет?


Я тебе в третий раз объясняю, речь не про данный конкретный случай. Это упрощённый пример для наглядности. Ты можешь на проблему шире посмотреть?

>Я говорил, что его не надо вычислять в объявлении порта


А где я его вычислял в объявлении порта? Я как раз это функцией делал.

>Ни в одном из использованных мной ядер ширина внешних портов не пересчитывалась внутренними функциями.


Во-первых, откуда знаешь? Все коммерческие шифрованные. Смотрел коды опенсорсных?
Во-вторых, а чем они пересчитываются?
553 347291
>>47185
Дык сделай 1024-битный компаратор, чтобы сравнивалось за один такт, не?
554 347307
>>47291
Сравнение производится 2-х входовым элементом исключающее ИЛИ. Таких элементов нужно 1024. Потом выходы этих элементов надо объединить по И. Т.е элемент И у нас будет на 1024 входа. Естественно он будет каскадироваться из 4-х входовых, т.к. большинство ячеек в ПЛИС 4-х входовые. Предположим, что элементы выстроятся последовательно, тогда один вход занят выходом предыдущего элемента И, на 3 других можно подавать выходы с исключающих ИЛИ. У нас их 1024 шт. 1024/3 == 342. Получаем каскад из 342-ух элементов И. Умножаем это число на скорость работы элемента - получаем время срабатывания компаратора, и это без учёта задержак на интерконекции.
sage 555 347311
>>47307
Может лучше как-то так? https://pastebin.com/aYTUTBWH Хотя оно и займет вдвое больше ресурсов, но будет в 50 раз быстрее.
Или я что-то не понимаю?
556 347316
>>47311
Да как не пиши, архитектуру ПЛИС не обманешь.
557 347335
>>47290

>А где я его вычислял в объявлении порта? Я как раз это функцией делал.


А, действительно, ты предложил сделать ещё смешнее.

>Я тебе в третий раз объясняю, речь не про данный конкретный случай. Это упрощённый пример для наглядности. Ты можешь на проблему шире посмотреть?


Я тебе уже говорил — тебе только кажется в силу отсутствия опыта разработки, что этот пример отражает какой-то общий случай. Он нихуя не отражает.

>Во-первых, откуда знаешь? Все коммерческие шифрованные.


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

>Во-вторых, а чем они пересчитываются?


Верхним уровнем иерархии, где внешние порты используются для подключения модулей друг к другу.

module xynta # (parameter G) (input [G-1:0] a, output b);
localparam N = clog2(G);
wire [N-1:0] channel_select;
mux_control # (.N(N)) mux_control_inst (.ch_sel(channel_select));
mux # (.N(N), .G(G)) mux_inst (.in_ch(a), .out_ch(b), .ch_sel(channel_select));
endmodule

Здесь один раз считается N, и им задаются и ширина управляющего порта мультиплексора, и ширина порта контроллера мультиплексора, и ширина шины, которой они соединяются. Посколько они все должны друг другу подходить, то параметр в любом случае должен быть рассчитан на верхнем уровне.
image.png47 Кб, 198x255
558 347336
>>47307

>Получаем каскад из 342-ух элементов И


Падажжи, зачем их лепить последовательно? Надо дерево строить. Даже из двухвходовых И глубина будет всего 10, а из четырехвходовых - 5, если не ошибаюсь.
sage 559 347337
>>47336
Вот я и написал про то же. >>47311
Только если не заморачиваться и сделать просто через ==, то даже чуть быстрее получается, наверное за счет цепей переноса.
560 347338
>>47336
Именно. А из шестивходовых (LUT6) — 4 уровней хватит.

>>47337

>наверное за счет цепей переноса.


Хуль гадать, открой схему и посмотри, во что оно синтезировалось.
561 347350
>>47307
Короче у меня вышло порядка 10 уровней логики. Пиздос, придется городить конвейер.
562 347394
>>43735

>2) представляю,


В нумераторах так же можно самому хардкодить значения.
Алсо корректно работает next_state <= cur_state + 1, если уж очень хочется.
Алсо отображается по-человечески на временной диаграмме в виде, собсно, слов, а не циферок.
Писать под FSM состояния с разными разрядностями - моветон.

>3) привык


Вивада не даст вставить модуль в блок дизайн, если он написан на SV. Только оборачивать в обычный верилог.
Интерфейсы в SV отличаются от того, что ты описываешь на уровне цепей. В нём можно задавать модпорты (слейв, мастер, и пр.), писать свои таски\функции для описания транзакций, варификации и пр. А дальше текстом просто в модулях писать, что вот он использует интерфейс такой-то и в логике работать с отдельными сигналами через interf.signal. Если в интерфейс добавляешь новые цепи, то это легко делается один раз в логике описания интерфейса, без ебли с дополнительными подключениями.
563 347397
>>47336
Ну это как пример. Строить будет компилятор, в Квартусе есть TimeQuest, который тебе задержки по всем путям расписывает. Он же и конечную частоту называет на которой проект заведётся.
564 347398
>>47335

>Я тебе уже говорил — тебе только кажется в силу отсутствия опыта разработки, что этот пример отражает какой-то общий случай. Он нихуя не отражает.


Я с тобой заебался, ты какой-то непробиваемый. Я тебе про Фому, ты мне пр Ерёму.
565 347399
>>47398
Я тоже когда читал осознал, что опыта разработки у тебя нет.
566 347401
>>47399

>что опыта разработки у тебя нет.


Хуяк-хуяк и в продакшен?
567 347402
>>47401
Твои познания мемов из области погромирования на жаве здесь не помогут.
568 347407
>>47399

>Я тоже когда читал осознал


Наманяфантазировал ты себе что-то.

Твой вариант из >>47335 по большому счёту не чем не отличается от моего.
Ты помнишь вообще с чего разговор начался? С этого >>47020 Основной вопрос был "как функцию написать?", а не "куда её засунуть?".
569 347409
>>47398
Окей, на этом я завязываю тебе что-то объяснять.

>>47335-кун
570 347517
Блин, я что-то ННП. Как запилить счетчик который увеличивает значение на выходе только на следующем такте а не в текущем?

Почему-то думал, что счетчик работает именно так, но оказалось, что нихуя подобного.
571 347518
>>47517
Замени "=" на "<=" но лучше почитай вдумчиво учебник, у тебя проблемы в понимании основ
572 347521
>>47518
Но я и так использую только неблокирующие присваивания.
https://marsohod.org/verilog/158-verilogpictcnt

Мой счетчик ведет себя так же, как и у марсоходовцев на осциллограмах: только отпускаю ресет, по фронту первого же клока на выходе счетчика имеем новое значение. Я почему-то думал, что новое значение будет с некоторой задержкой..

Или это что-то типа нулевой задержки?
573 347522
>>47521

>Я почему-то думал, что новое значение будет с некоторой задержкой..


Тебе надо понимать, что за железо ты написал. По фронту счётчик умеет только класть в себя "текущее значение + 1", чтобы положить в себя 0, он должен где-то взять 0-1, где он его возьмёт?

Если во время резета ты наполнишь счётчик не нулями, а единицами, то после первого клока он у тебя переполнится и выдаст как раз ноль.
Screenshot2018-11-29-18-17-101.jpg198 Кб, 1080x1554
574 347527
>>47522
Но я не могу понять, какого фига по фронту первого же клока на выходе появляется единица. Разве d-триггер не должен вносить задержку в 1 такт?
575 347529
>>47527
Если я поставлю последовательно 2 триггера, я же получу задержку. Почему с одним триггером ее нет... Пиздец я тупой.
576 347530
>>47527
По фронту клока на выходе у тебя появляется то, что нахоидтся на входе. Что у тебя находится на входе?
577 347533
>>47530
На входе единица. Но она же не может перейти на выход мгновенно? Почему тогда в симуляции получается именно так?
578 347534
>>47530
И объясни тогда почему с цепочкой триггеров получается задержка а с одним триггером ее нет(вообще 0)?
579 347535
>>47533

>Но она же не может перейти на выход мгновенно?


Именно так она и делает. Всё, что находится на входах триггера в момент фронта, мгновенно оказывается на выходе.

>>47534
Потому что у второго триггера на входе ноль, вот он и выдаёт ноль. А у первого на входе единица.
580 347536
>>47533
В реальном устройстве задержка разумеется есть, но она может быть очень мала. Одна пикосекунда тебя устроит?
Тебе рановато браться за верилог и ПЛИС. Изучай основы цифровой схемотехники. Начиная со схем элементов И-НЕ и ИЛИ-НЕ.
581 347538
>>47536
При цепочке триггеров именно из-за этой пикосекунды расхождения с фронтом клока и получается отставание данных на 1 такт. Похоже повторять теорию надо тебе.
582 347539
>>47538
Цепочка триггеров - это сдвиговый регистр?
Ты понимаешь разницу между триггером со статическим управлением и с динамическим?
583 347541
>>47538
Не пизди, маня, и не хами тем, кто тратит своё время, пытаясь образовывать тебя забесплатно. Второй триггер в момент клока видит на входе ноль потому что единица с первого не успевает до него дойти по проводу, там время распространения сигнала — порядка наносекунд.
584 347543
>>47541
Сорян, если задел тебя. Но я именно так и понимал:
Первый триггер дает некоторую задержку и данные с его выхода поступают на вход второго триггера позже, чем приходит клок, из-за этого второй триггер захватывает данные которые были в предыдущем состоянии на выходе первого триггера. Но почему симулятор вообще не показывает эту задержку, она же есть, как мы вместе выяснили и она влияет на остальную логику!
586 347546
>>47543
Это называется "логическая симуляция". Условно принимается, что триггеры в момент прихода клока берут то, что висело у них на входе ДО фронта, и выдают это мгновенно на выходе ПОСЛЕ фронта. Так быстрее и не нужно знать физические параметры реальной схемы.
587 347548
>>47546
>>47545
>>47541
Спасибо вам, что попытались навести порядок в моей дурной голове. Мне правда стыдно, что я такой говнюк, Анон нынче токсичный пошел и я видимо набрался этого говна.
588 347551
>>47545
>>47527
И вот ещё, это пожалуй в первую очередь.
https://youtu.be/lFn9rYOl9iQ?t=1628
c 27:10
589 347601
>>47407

>сейчас бы делать ссылки на посты для мимокрока

590 347678
Помогите идеями решения dsp-задачи. Нужно сделать генератор прямоугольных импульсов, у которого нестабильность частоты, ее распределение и уровень задается внешней случайной функцией. Которую (случайную ф-ю) тоже нужно реализовавть на fpga.
591 347681
>>47678
Берешь nios или microblaze, прицепляешь к ним таймер и заводишь прерывание от него. Далее пишешь код как для любой ардуины.
592 347682
>>47681
Без оси
593 347686
>>47678
Ну да, зачем для такого использовать ОС? В ардуинах тоже ОС обычно не используется. Делай все на прерываниях, для частот около нескольких килогерц явно никаких сложностей не возникнет.
594 347687
>>47686
Это было в ответ на >>47682
595 347689
>>47681

>dsp-задача


>nios


>microblaze


facepalm
596 347692
>>47689
Что не так? У nios и microblaze набор команд полный по Тьюрингу, значит они могут посчитать любую функцию, вопрос лишь в скорости. Причем о требуемой частоте меандра ничего не было написано.
597 347694
>>47692
Ок, помоги с идеями для чистого fpga, без cpu.
598 347696
>>47694
Куда уж "чище", это же не zynq или cyclone v со встроенным армом.
Ну ладно, тогда еще придерусь к "случайной функции". Такого не бывает, может быть случайный (псевдослучайный) процесс или последовательность.

Возьми цифровой фильтр и подай на него М-последовательность, будет тебе на выходе псевдослучайная последовательность с заданными свойствами.
599 347698
>>47696
Очевидно же, что я говорил о псевдослучайной ф-ии.

Как "модулировать" ей генератор?
600 347702
>>47698

>Очевидно же, что я говорил о псевдослучайной ф-ии.


В литературе по радиотехническим сигналам этот термин не используют. И ты тоже не используй.

>Как "модулировать" ей генератор?


Фаза - это интеграл от частоты. Соответственно можно просто интегрировать, хотя это будет не оптимально по ресурсам.
601 347809
Что за херня началась на ютубе? Какое тело начало обсирать тех, кто несет знания в Мир? Это про канал о ПЛИС товарища Jack0v.
"a6736715921
Ты делаешь абсолютно бессмысленную работу, снимая эту хрень. Намного проще и быстрее прочитать учебник.
А самое главное, ты заебал уже рекламировать свои видосики на харкаче."
602 347902
>>47809

>кто несет знания в Мир?


Несёт ли?
603 347981
>>47902
a6736715921, плис.
Screenshot2018-12-07-09-20-13-897com.alibaba.aliexpresshd.png201 Кб, 1080x1920
604 348626
>>16943 (OP)
Вкатываюс
15375626601410.jpg12 Кб, 225x225
605 348691
>>16943 (OP)
Девчонка-десятиклассница пытается в ПЛИС, но порашеры исходятся но говно просто https://2ch.hk/po/res/30958721.html (М)
С кем же приходится сидеть на одной борде, пиздец просто.
606 348694
>>48691
Ебать там успешных сваливших из рашки плисоёбов полон тред, и срутся за хуйню какую-то даже не по теме треда.
607 348695
Сап, плисяры. Может создамим конфу для совместного решения челленджей на fpga для тренировки?
(Автор этого поста был предупрежден.)
608 348697
>>48695
Ой блядь, иди нахуй, мочератор.
609 348720
>>48691
Круто, что в какой-то деревне изучают мипс процы. У меня даже в институте такой хуйни не было. (Был сразу 8086, но на таком уровне, что пизда)
610 348742
>>48691
Плисотролль, забирай лолю к себе. Подмани её россыпью циклонов, потом дашь потрогать свой стратикс.
611 349114
Аноны, покупал кто плисины из за бугра(не Китай)? Не пошлют ли нахуй на таможне? А то вроде есть вкусные цены, но... очко играет
612 349151
>>49114 Купишь с ебая - проскочит. С фарнела, дижикея заворачивает как сам магазин (ибо ты потенциальный разработчик оружия для кровавого режима) так и рашкотаможня. Если заказывать то через частных посредников.
613 349162
>>49151
Мда, вечно все через жопу. Но ведь в рахе как то их продают? Или это не оф дистрибьюторы?особенно с их то охуевшей наценкой
614 349164
>>49151
Частные посредники - это типа боксбери и шопотамы, или вообще чувак-физлицо, с которым напрямую договариваешься?
615 349203
>>49162

>в рахе как то их продают?


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

>боксбери и шопотамы


С этими вообще все плохо - там при заказе ты сам заполняешь наименования товаров, ссылку на магазин и посредник по этим данным потом сам все растомаживает. И наименование gift electronics они не примут, а ко всему остальному если это не потребительская техника будут вопросы.

>чувак-физлицо


This. Самый беспалевный способ пересылки это обычный мелкий пакет. Их проверяют очень выборочно, если конечно они сильно не выделяются по заявленной стоимости, весу или на рентгене.
616 350931
>>46384
Ну что, рассказывай, какие идеи есть на эту борду?

Я бы тоже может заказал, но уж очень мало интерфейсов у нее.
10GE - ок, круто. Но для домашнего использования нет задач.

PCI-E - збс, но на плате нет оперативки, это сильно ограничивает применимость.

Вижу только одно применение для этой платы - пилить на ней какой-то майнер или другую числодробилку.

Самое обидное, что нет видео-выхода и не поигратьсЯ с обработкой изображений.
617 350935
>>48695
Я давно ищу с кем бы объединиться и вместе что-то пилить, но здесь народ слишком угрюмый как автор учебника по цифровой схемотехнике, а ИРЛ нет людей со схожими интересами.
Короче кидай фейкопочту, либо пиши мне:
ehidniykov8globokANUSyandeoIKxPUNCTUMr*bYu

Я просто на стену уже лезу от того, что не могу найти себе задачу, может вместе что придумаем?
618 350941
>>49203

>С этими вообще все плохо


Их требования зависят от способа доставки. Если отправлять обычной почтой, то можно писать без подробностей. Я без проблем заказывал через них некоторые микросхемы, в том числе и ПЛИС. Не стратиксы конечно, но даже в MAX 10 логических элементов в два раза больше чем в лучших отечественных ПЛИС.

>>50931

> нет видео-выхода


Припаяй сам, делов то. Это как раз несложно. Хуже другое — там нет FMC, только гребенка.

>не могу найти себе задачу


Радиоприемник можно сделать для сигналов с большой базой. Да вообще много чего.
619 350943
>>50941
Припаять выдеовыход - это же колхозинг будет. Не говорю уже про hdmi.
FMC нет, еще один минус. Но готовые fmc-мезонины стоят сотни нефти, дороже этой борды.

Алсо, на али попадались такие же кинтексы как на этой борде по 60 баксов за камень. Хоть с кем-то объединяйся и разводи плату под свои нужды.
620 350944
>>50941

>Радиоприемник можно сделать для сигналов с большой базой.


SMA разъема нет. Опять колхозинг получается..
621 350956
>>50943

>колхозинг


Ты ноешь как...
В самом деле, там гребенка есть, в чем проблема втыкать туда не слишком быстрые АЦП/ЦАП? Недостаток только в том, что крепежных отверстий толком не предусмотрено.

>SMA разъема нет.


Даже если он там будет, что толку? В таких платах они обычно только для входа/выхода тактового сигнала.

>Хоть с кем-то объединяйся и разводи плату под свои нужды.


Для начала необходимо эти нужды как-то оформить. Сам же писал что идей нет.
И почему именно кинтекс? Можно взять 10M50 в корпусе TQFP и развести под свои хотелки двухслойную плату. Пусть 10M50 в 10 меньше чем XC7K420T, но этого вполне может хватить.
622 350987
>>50956
Ну давай пофантазируем.
Почему зайлинкс а не интел это вопрос слишком провокационный. Если доступна жирная плисина, по сладкой цене, почему бы не использовать?

Что я хотел бы видеть в борде:
PCI-E
1GE не менее 2х штук.
SFP+ пару штук, просто чтоб был
DDR3 1G
HDMI in
HDMI out
SATA
623 351020
>>50987
В плате за 150 баксов?! Да ты совсем охуел?
624 351021
>>51020
Перестань грубить. Что в моих хотелках охуевшего? Половина этих интерфейсов не требует какой-либо обвязки, только разъемы, которые, к слову, можно устанавливать по желанию.
625 351041
>>51021
SATA SFP и PCI-E
Остальное будет довольно сильно удорожать БОМ
626 351045
>>51041
Компоненты можно покупать и устанавливать по мере потребности.
627 351081
https://pastebin.com/D89u19NZ
Кое-как сделал деление. Делить нужно 16..22 разрядное число на 8..12 разрядное один раз в несколько миллисекунд. Ответ нужно получить за время не более около сотни тактов. Как можно оптимизировать это по занимаемым ресурсам, при этом сохранив прежнюю тактовую частоту?
628 351117
>>51081
DSP48
629 351120
>>51081
Глянь на high radix division
http://www.jucs.org/jucs_1_1/high_radix_division_with/Fenwick_P.pdf
Обычно есть в корках
630 351491
>>51120

>Глянь на high radix division


Посмотрел, по занимаемым ресурсам оно должно быть хуже. Или я что-то не понял.

>Обычно есть в корках


Для флексов, на которых это тоже должно будет работать, есть только lpm_divide. Какой там используется метод я не разбирался, но по ресурсам оно не очень.
Переписал вот так. https://pastebin.com/uz1ELPcg По тактовой частоте почти не ухудшилось, зато по ресурсам стало существенно лучше.
631 351573
На чём можно дёшево напрограммить резисторных матриц? Я ебал цены на резисторы с точностью 0,002%.
632 351612
>>51573
Зачем тебе такая точность?
633 351624
Здравствуйте , радачилы, есть cypress psoc 5lp. хочу на блоках UDB (аналог плисы) сделать частотомер. два раза создавал тред, но упрямый бот закрывает его и отправляет ARM. Но может тут помогут, хотя не знаю как ARM и ПЛИСовые блоки могут быть связаны. Короче есть проблема, за первую секунду счётчик считает странное число, которое меняется примерно на 2млн. В крейторе завожу частоту в 12 МГц и секунду делаю тоже с 12 МГц.
634 351625
>>51573
Измерять резисторы с такой точностью у тебя хотябы есть чем? А то цену на такое оборудование ты ебать будешь еще больше.
Можно из параллельных резисторов разного номинала набрать, типа резистор 10ком и параллельно ему подстроечник на 10ком
635 351626
>>51624
Писал бы ты на верилоге, может чем-нибудь помог. А так даже толком не понятно что именно ты сделал. Но вообще-то, для практических целей, нет смысла делать простой частотомер на этих psoc или плис.

>упрямый бот


Да, редкостный уебок.
636 351627
>>51573
Термостатирование еще не забудь, а то у обычных резисторов ТКС около 100 ppm/градус.
637 351677
>>51573

>На чём можно дёшево напрограммить резисторных матриц? Я ебал цены на резисторы с точностью 0,002%.


ЦАП сделать хочешь? Забудь, R-2R от 8 бит с норм точностью реально получить только в интегральном исполнении, где ТКЛР и ТКС резисторов на кристалле равны.

>>51625
ТКС хорошего подстроечника лежит в порядках десятков-сотен ppm. А для такой задачи нужен ТКС в районе десятых долей ppm.

>>51627
Это С2-29 или PTF56 какие нибудь? Тогда да. Так то есть резисторы с ТКС в десятые доли ppm, и долговременной стабильностью в единицы ppm, но вот их стоимость...

Не проще ли взять интегральный ЦАП за 1000 рублей?
IMG20190104170413.jpg8,7 Мб, 4032x3024
638 351727
639 351752
>>51727
Пиши лучше на верилоге. Пока могу сделать только пару замечаний.
1. Выход комбинационной логики не следует подключать к тактовому входу в любом случае. Из-за гонок сигналов и всего такого. Выходы твоих делителей вполне могли быть образованы комбинационной логикой.
2. Для тактового сигнала в ПЛИС используется отдельная сеть, имеющая свои ограничения. Поэтому добавление лишних тактовых сигналов, как правило, создает некоторую избыточность. Ты, конечно, уточни, как в этих psoc, но не думаю что сильно по другому.

Так что лучше сделай все по возможности синхронным, включая сброс.
509[1].png38 Кб, 522x600
640 351914
Вот пример работы с циклами из книжки:
module Test(input [3:0]X, output reg [2:0]Y);

integer i;
always @*
begin
Y = 0;
for(i = 0; i < 4; i = i + 1)
if(!X) Y = Y + 1'd1;
end

endmodule

Как вообще эта дичь работает?
Как можно присваивать комбинационной схеме начальное значение (Y = 0;)? Почему if без ветви else? В этом же случае компилятор для комб. схем будет ставить защёлки, а их нет. Почему, если убрать Y = 0; эти защёлки появляются?
641 351920
>>51914

>Как можно присваивать комбинационной схеме начальное значение (Y = 0;)?


В стандарте верилога нет такого понятия как комбинационная схема, это просто переменные с точки зрения стандарта.
Если не касаться синтеза, то у тебя при изменении входных сигналов мгновенно производятся какие-то вычисления и результат остается в Y. Для синтеза считай что окончательное присвоение будет в самом конце always.

>Почему if без ветви else? В этом же случае компилятор для комб. схем будет ставить защёлки, а их нет. Почему, если убрать Y = 0; эти защёлки появляются?


Разберись как оно работает не касаясь синтеза, только при функциональной симуляции. Разберись, в каком случае модуль будет обладать памятью, а в каком нет.
642 351987
>>51920

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


Так я об этом и спрашиваю. Если бы разобрался не спрашивал бы.
643 351998
>>51987
Ходит слушек что "always @*" - это комбинационная схема, тк задействованы все сигналы, если явно указано указан сигнал или сигналЫ? с фронтом - это уже схема с памятью.
644 352007
>>51998
always @* можно превратить в схему с памятью, простейший способ — использовать if без else или case без default.

>>51914

>Почему if без ветви else?


>Почему, если убрать Y = 0; эти защёлки появляются?


Потому что этот Y = 0; и есть своего рода else. Код описывает такую логику:
if (!X) Y = 0+1'd1; else Y=0;
645 352008
>>51987
Не знаю, как тебе объяснить не пересказывая целую главу из учебника. Как уже советовал, для начала абстрагируйся от схем и прочего. Считай что описываешь только поведение схемы, собственно так оно и есть, до какой-то степени.

Попробую перечислить основные моменты из учебника, которые ты мог пропустить.
1. Есть переменные двух типов wire и reg. Переменным wire что-то присваивать можно только через assign или подсоединяя к порту инстанса модуля. Переменным типа reg можно делать присвоение в блоках always. Для reg есть блокирующие и не блокирующие присовения. Разница в том, что блокирующие присваивания меняют переменную сразу, а неблокирующие на выходе из блока always.
1.1. Если не указывать задержки (в верилоге есть такое, но это не синтезируется), то любые присваивания выполняются мгновенно, без задержек. То есть, оно хоть и выполняется последовательно, но выполняется без задержек.
2. always срабатывает после изменения сигналов, указанных в списке чувствительности. Это важно понять. Не в процессе изменения, а после. Если в списке чувствительности указана звездочка, то срабатывать оно будет при изменении любого сигнала. Заметь, не постоянно, а при изменении, это тоже важно, особенно в тестбенчах.

Если все это понятно, можно попробовать разобраться что происходит у тебя в модуле.
1) Когда есть Y = 0;
Все просто, при изменении X срабатывает блок always и все что там внутри выполняется мгновенно, ведь задержки ты не указал (впрочем, они все равно не синтезируются). Переменной Y присваивается 0, а потом в зависимости от X либо прибавляется 4 раза по 1, либо не прибавляется. Теперь попробуем прикинуть как оно будет реагировать на разные входные сигналы.
а) X изменился на 0. Присвоили 0, и прибавили 4 раза по 1, получилось 4. Причем получилось мгновенно, сразу после изменения X.
б) X изменился на 1. Присвоили 0, и все, получилось 0. Все произошло так же мгновенно.
У модуля в этом случае нет памяти, потому что предыдущие состояния не влияют на выход. Соответственно защелки не синтезируются.

2) Когда нет Y = 0;
Тут у тебя некоторая ошибка. В верилоге не инициализированные переменные имеют неопределенное состояние. Нужно как-то так:

>module Test(input [3:0]X, output reg [2:0]Y = 0);


а) X изменился на 0. Прибавили к Y 4 раза по 1.
б) X изменился на 1. Не меняется ничего.
Получается что (а) происходит по фронту сигнала X. Это и есть память.
645 352008
>>51987
Не знаю, как тебе объяснить не пересказывая целую главу из учебника. Как уже советовал, для начала абстрагируйся от схем и прочего. Считай что описываешь только поведение схемы, собственно так оно и есть, до какой-то степени.

Попробую перечислить основные моменты из учебника, которые ты мог пропустить.
1. Есть переменные двух типов wire и reg. Переменным wire что-то присваивать можно только через assign или подсоединяя к порту инстанса модуля. Переменным типа reg можно делать присвоение в блоках always. Для reg есть блокирующие и не блокирующие присовения. Разница в том, что блокирующие присваивания меняют переменную сразу, а неблокирующие на выходе из блока always.
1.1. Если не указывать задержки (в верилоге есть такое, но это не синтезируется), то любые присваивания выполняются мгновенно, без задержек. То есть, оно хоть и выполняется последовательно, но выполняется без задержек.
2. always срабатывает после изменения сигналов, указанных в списке чувствительности. Это важно понять. Не в процессе изменения, а после. Если в списке чувствительности указана звездочка, то срабатывать оно будет при изменении любого сигнала. Заметь, не постоянно, а при изменении, это тоже важно, особенно в тестбенчах.

Если все это понятно, можно попробовать разобраться что происходит у тебя в модуле.
1) Когда есть Y = 0;
Все просто, при изменении X срабатывает блок always и все что там внутри выполняется мгновенно, ведь задержки ты не указал (впрочем, они все равно не синтезируются). Переменной Y присваивается 0, а потом в зависимости от X либо прибавляется 4 раза по 1, либо не прибавляется. Теперь попробуем прикинуть как оно будет реагировать на разные входные сигналы.
а) X изменился на 0. Присвоили 0, и прибавили 4 раза по 1, получилось 4. Причем получилось мгновенно, сразу после изменения X.
б) X изменился на 1. Присвоили 0, и все, получилось 0. Все произошло так же мгновенно.
У модуля в этом случае нет памяти, потому что предыдущие состояния не влияют на выход. Соответственно защелки не синтезируются.

2) Когда нет Y = 0;
Тут у тебя некоторая ошибка. В верилоге не инициализированные переменные имеют неопределенное состояние. Нужно как-то так:

>module Test(input [3:0]X, output reg [2:0]Y = 0);


а) X изменился на 0. Прибавили к Y 4 раза по 1.
б) X изменился на 1. Не меняется ничего.
Получается что (а) происходит по фронту сигнала X. Это и есть память.
646 352009
>>52008

>происходит по фронту сигнала X.


По заднему фронту, конечно же.
647 352011
>>52008

>а) X изменился на 0. Прибавили к Y 4 раза по 1.


Немного добавлю, а то может не все понятно будет.
Если в начале Y был 0, то по первому спаду X, Y изменится на 4. А по второму опять на 0 (переполнение).
648 352016
>>51998
Это то и ежу понятно.

>>52007

>always @* можно превратить в схему с памятью, простейший способ — использовать if без else или case без default.


Ну такая себе память. Памятью её можно назвать только формально. Скорее это способ компилятора разрешить ситуацию отсутствия ветви в условии. Эти защёлки даже синтезируются на комб. логике. Надёжно такие схемы работать не будут.

> Код описывает такую логику: >if (!X) Y = 0+1'd1; else Y=0;


Да вот не совсем. В этом случае, при Х == 1 весь Y обнулился бы. А он хранит своё значение, до тех пор пока Х не будет равно 0.

Кстати да, ошибочка у меня в коде, должно быть так:
if(!X) Y = Y + 1'd1;

>>52008

>б) X изменился на 1


Х то многоразрядный, у меня ошибочка в коде, индекс у Х должен меняется в цикле:
if(!X) Y = Y + 1'd1;
Схема подсчитывает количество нулей Х.
649 352018
>>52016

>if(!X) Y = Y + 1'd1;


if(!X) Y = Y + 1'd1;
650 352019
>>52018
Ан нет, это макаба квадратные скобочки жрёт
if(!X[[]]) Y = Y + 1'd1;
651 352020
>>52019
f(!X открывающая_квадратная_скобка i закрывающая_квадратная_скобка) Y = Y + 1'd1;
Вот так!
652 352023
>>52016
Похоже при изучении всего этого ты пропустил что-то важное, а вот что — х.з.
Попробуй все же абстрагироваться от триггеров и схем. Тем более что верилог не для синтеза первоначально разрабатывался, а для моделирования. Можешь попробовать взять моделсим и посмотреть там в режиме отладки, как этот цикл выполняется по шагам.

>Ну такая себе память. Памятью её можно назвать только формально.


Любой триггер обладает памятью, на то он и триггер.

>Эти защёлки даже синтезируются на комб. логике. Надёжно такие схемы работать не будут.


Если для ПЛИС, то да. Но простейший асинхронный RS-триггер сам по себе вполне работоспособен.
653 352024
>>52016

>Да вот не совсем. В этом случае, при Х == 1 весь Y обнулился бы.


Я описал только первую итерацию, если расписать их все, то будет так:

Y = if (!X1) Y=0+1; else Y=0;
Y = if (!X2) Y=Y+1; else Y=Y;
Y = if (!X3) Y=Y+1; else Y=Y;
Y = if (!X4) Y=Y+1; else Y=Y;

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

Если мы убираем Y=0, то присваивания начинают зависеть от того, что осталось в Y с прошлого раза, и тут уже нужна память.
654 352025
>>52024
Сорян, вот так оно должно выглядеть:

if (!X0) Y=0+1; else Y=0;
if (!X1) Y=Y+1; else Y=Y;
if (!X2) Y=Y+1; else Y=Y;
if (!X3) Y=Y+1; else Y=Y;

Поскольку если в Y что-то и было, то оно первым делом перезаписывается к хуям на 0 либо на 0+1, то результат зависит исключительно от X и может быть представлен в виде комбинационной логической функции от X.
655 352031
>>52023

>Любой триггер обладает памятью, на то он и триггер.


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

>Если для ПЛИС, то да.


Конечно для ПЛИС. Будто здесь сидят разработчики ASIC-ов.

>>52023
>>52025

>if (!X1) Y=Y+1; else Y=Y;


else Y=Y;
Тут как бы тоже память требуется.

Ладно, посижу по думаю.
656 352037
>>52031

>Тут как бы тоже память требуется


Нет. Память требуется, чтобы хранить состояние, установленное в предыдущем событии (предшествующим по времени вызове блока @(*) ). Если мы имеем дело только с состояниями, создаваемыми в текущем событии, то ты никакую память на плисине для их хранения не выделяешь, ты просто описываешь в несколько действий, как у тебя комбинационные логические функции вычисляются. Чисто для удобства написания кода.
657 352038
>>52031

>Конечно для ПЛИС. Будто здесь сидят разработчики ASIC-ов.


Как вариант — код, описывающий асинхронные триггеры, может быть для тестбенча.

>Тут как бы тоже память требуется.


Можешь это оценить иначе. Возьми свой модуль и, временно забыв про код модуля (выкини его из головы!), попробуй написать тестбенч, в котором будет видно, влияет ли на выходной сигнал предыдущее состояние или нет. Если не влияет, то значит что внутри нет триггеров или они не задействованы.
658 352039
>>52031

>Конечно для ПЛИС. Будто здесь сидят разработчики ASIC-ов.


Верилог всё равно один и тот же. Тебе надо думать не о том, как защёлка создаётся на плисе, а пытается ли твой код использовать инфу с предыдущего состояния или нет.
659 352087
>>52037
>>52038
Братцы, а можете ещё несколько таких >>51914
примеров накидать? Может так понятнее станет.
660 352472
Кто-нибудь использовал soft-процессоры с открытым исходным кодом? Поделитесь опытом.
661 352522
>>52472
Сам писал, пока vhdl и verilog изучал. С не совместимой ни с чем системой команд. В результате что-то писать на ассемблере было весьма уныло, а главное бессмысленно.
662 352525
>>52522
А есть что-нибудь с открытым кодом, да чтоб gcc поддерживало?
663 352529
>>52525
Если брать 32-х разрядные, то наверное стоит смотреть на OpenRISC, MIPS, RISC-V, для них много реализаций с открытым исходным кодом.
Сам думаю под одно дело приспособить picorv32. Но у него под регистровые файлы используется минимум двухпортовая память, поэтому для флексов будет плоховато. Хотя однопортовый регистровый файл это уже не регистровый файл получается.
664 352753
>>52529
А как вообще выглядит работа с таким процом?
Тот же микроблейз возможно отлаживать череж жтаг. Недавно ARM выкатили свои ядра под Xilinx, но для работы с их процом нужен внешний сука программатор. Ну и код ядра само собой зашифрован.

Что из перечисленного тобой удобнее всего отлаживать и лугче поднять?
665 352776
>>52753

>Тот же микроблейз возможно отлаживать череж жтаг.


Нинужно, есть БОЖЕСТВЕННЫЙ ламповый принтф через уарт в чорную консоль. А вообще никто в теории не мешает прикрутить жтаг к чему угодно, это же открытый стандарт.
666 352789
>>52776

>А вообще никто в теории не мешает прикрутить жтаг к чему угодно, это же открытый стандарт.


Что-то даже не представляю как это сделать. Думаю если было бы так просто, были бы готовые решения.
667 352795
>>52789

>были бы готовые решения.


Они есть. https://github.com/freechipsproject/rocket-chip и другие.

>>52776
Поддерживаю, вполне хватит. Тем более что на JTAG много ресурсов нужно.
668 352805
>>52789

>Что-то даже не представляю как это сделать.


Можно начать с чтения стандарта и доков на гнутый дебаггер, какая ему инфа о состоянии выполняемой программы нужна. А дальше само пойдёт. Хотя что-то мне подсказывает, что это задача урованя запила бэкэнда гцц под свою архитектуру.

//Я, кстати, загуглил запиливание бэкэнда гцц, и люди пишут, что это, в принципе, даже вроде как подъёмно:
https://kristerw.blogspot.com/2017/08/writing-gcc-backend_4.html
669 352847
>>52087
Ну же. Дайте ещё таких шизанутых примеров.
670 353284
Кто-нибудь фрилансил по сабжу?
https://www.upwork.com/o/jobs/browse/details/~013fdbb66e16b61918/?q=fpga

Я правильно понял, что этим челикам нужно всего лишь запилить примеры использования IP-ядер под их железо? Они там что не знают что можно example design скачать?
671 353448
Бамп
672 353573
Анон, подскажи, где можно скачать QuestaSim последних версий для Linux. Я знаю, что он есть на FTP электроникса, но проще выучить китайский и прошерстить eetop чем получить доступ туда. Сил моих нет симулировать без ассёршенов.
673 353590
>>53573
https://rutracker.org/forum/viewtopic.php?t=5331072 Только версия довольно старая.
А я все никак не могу собраться и изучить SystemVerilog. Но все-таки, чем тебе не хватает обычных $display и $stop?
674 353612
>>53590
Ты про ассершены или SV в целом?
Любой ассёршен можно заменить initial блоком с условием, но зачем использовать костыли, если для этого есть специальная конструкция.
Для меня SV в первую очередь это интерфейсы, классы и межпроцессная коммуникация. Я не уверен на счёт того, что последнего нету в обычном Verilog (mailbox, semaphore). В целом очень удобно под рукой иметь интерфейс, скажем, AXI4, который помимо простых соединений, можно использовать для генераций транзакий, дёргая таск внутри интерфейса (естественно только для верификации).
675 353683
Господа аноны, столкнулся с проблемой или своей тупостью. На плате стоит cyclone V и ddr3 от самсунги. Трабла в том, что при очередной перекомпиляции проекта рандомно отваливается доступ к ddr-ке из ниоса. Проблема решается сменой настройки параметра "ODT Rtt nominal value" с RZQ/4 на ODT Disabled или наоборот. С чем связяно такое непотребное поведение железяки?
676 353704
>>53683
Ну ODT - это согласование нагрузки на ддр. (Гугли СВЧ, имеданс и все такое).
Вряд ли с отладкой что-то не так, может констреинты не задал, вот у тебя и тайминги рандомные получаются или еще какая хуйня.
677 353718
>>53704
Плата нашей разработки, поэтому вполне допускаю, что может быть железная трабла.
678 353865
>>53612
Хотя мне больше нравится иметь класс генератор транзакций, к которому подведён виртуальный интерфейс. Ну и класс приёмник.
679 355020
Пацаны, у меня у одного адовые проблемы с попытками работать не Вивадо 2018.3? Оно же не работает сука нихуя. Вернулся на 2017.4 — как глоток свежего воздуха. Или у меня что-то с руками? Такое ощущение, что кривое всё — от инструментов до отдельных айпи-корок. Я подозреваю, что у них там сейчас большой переезд на новый бекенд или что-то такое, потому и поддержку соляры недавно дропнули, и 32-битные либы больше не требуются, как раньше, но сука, не настолько же.
680 355025
https://toster.ru/answer?answer_id=1222603#comments_list_1222603

Ебать как я ору с тостера.

>5. Специфика рынка труда отвратительная - тут есть море спецов с стажем в 20-30 лет, они тебя сожрут и по скорости и по качеству а т.к. кредиты и семьи то вкалывают за минималку по рынку. Так же кодить под плис проще чем под веб - нет бардака с стандартами и каждый год новый бред не выходит и не нужно переучиваться, что сделано 10 лет назад или 20 нормально взлетит и не поперхнётся. (это не СНГ)



>6 - разрешения есть, всё равно что жопа защищена бронебойной плитой - говнокодь и пользуйся поделиями студентов практикантов во все поля - уволятся с голода - следующие придут, это везде так, не в едином СНГ.



Подписываюсь под каждым словом.
Вы еще в погроммисты не перекатились?
681 355027
>>55020
Я здесь один сижу на 2015.4 и в хуй не дую?
Полно легаси говна, которое надо поддерживать и хуй знает как оно заработает после обновления.
682 355029
>>55027
Да понятно, что никак не заработает. После импорта проекта и обновления корок всё превратится в кровавое месиво, там проще выкинуть и сделать с нуля, чем разбираться, где что отвалилось. Я на другую версию вынужденно перехал, потому что старую ревизию встраиваемого модуля делать перестали, а новая не работает с вивадо, которой я пользовался.
683 355085
>>55029
Блин, а я довыёбывался. Дали новый проект на ультраскейле, пришлось таки поставить новую блеваду.
684 355234
поясните за SystemC
685 355246
>>55029
Да не все так плохо,
686 355248
>>55234
Хипстерский пет-проджект, бесконечно далёкий от продакшена.
687 355994
ПЛИСаны, тупой вопрос: в VHDL выражение вида [CODE]c <= signed(a-b)[/CODE] (сигналы a и b типа unsigned из numeric_std, ширина всех трёх сигналов одинакова) нигде подлянки не устроит? Тесты в GHDL вроде ничего подозрительного не показывают.
addunsigned.png35 Кб, 1180x398
688 356022
>>55994
Ну так сумматор (или вычитатель) для натурального двоичного кода и сумматор для дополнительного кода это одно и то же устройство.
Если у тебя есть какие-то сомнения в том что именно делается в VHDL, то можешь заглянуть в код самого numeric_std.
689 356097
>>55994
Если a=0 и b=0xFF...FF на всю ширину, то будет переполнение. Делаешь из ансигнеда сигнед — докидывай ещё один бит на знак минуса.
690 357112
Плисаны, поясните, почему использовать встроенный симулятор это моветон?
Какой моделсим поставить под блеваду 2017.4?
Какие вообще фишечки есть в моделсиме и нет во встроенном симуляторе?
691 357164
>>57112
Нормальная поддержка Systemverilog моделсимом - у меня такая мотивация была, т.к. тестбенчи стали усложняться. С 16 вивады пользуюсь 10.4с, брата нет, зависимость есть.
692 357196
>>57164
Я слышал, что моделсим дает возможность подрубать функциональную модель какого-нибудь сложного протокола типа саты или еще что-то подобное. Это правда?
Как это вообще выглядит?
693 357519
>>57196
Я думаю, что ты имеешь в виду интерфейсы SystemVerilog, которые только ModelSim и QuestaSim поддерживают. Но тебе всё равно придётся описать протокол, хоть и несинтезируемой частью.
694 357552
А законно ли делать сдвиговые регистры с переменной величиной сдвига?
Нужно сдвигать данные на фиксированные величины 32/64/96/128

reg
new_data
695 357553
>>57552
раньше времени отправился пост. Хочу конструкцию такого вида:

reg [1:0] offset;
reg shifted_data[127:0];

...
shifted_data[127:0] <= (shifted_data<<32*offset);
696 357557
>>57553
По моему это мультиплексор, соединенный с параллельным регистром. Впрочем, то же можно сказать про обычный сдвиговый регистр с параллельной загрузкой.
Нарисовать схему такого на отдельных триггерах и мультиплексорах можешь? Значит "законно".
697 357748
Работаю программистом и в течение нескольких лет хочу вкатиться в ПЛИС для перспектив.
Какие книги для этого надо прочитать?
Какую FPGA и программатор лучше заказать с доставкой в Россию?
698 357751
>>57748
Лучшая книга для новичков, только на английском
Pong Chu FPGA Prototyping by Verilog Examples
В качестве платы могу порекомендовать DE10-nano или Zedboard в зависимости от того с какой фирмой ты хочешь научиться работать в первую очереь, но, лично мне, больше импонирует DE10-nano
699 357752
>>57751

>Pong Chu FPGA Prototyping by Verilog Examples


A Xilinx Spartan 6 в Россию доставляют?
700 357753
701 357754
>>57752
Учти что они устарели. Причем проблема в том, что у них для новых микросхем уже другая IDE. Поэтому для обучения не стоит брать.
Вообще для обучения платы не особо то нужны.
702 357758
>>57754
Хочу учиться на живом железе.
DE10-nano дешевле 14000 не бывает?
703 357768
>>57758
Если дорого, то возьми что попроще на алиэкспрессе.
1400 рублей https://aliexpress.com/item/EP4CE6/32812957811.html Да, там на плате ничего толком нет, но для начала сойдет. Потом, если потребуется, уже с большим пониманием выберешь что-нибудь более сложное.
705 357906
>>57752
Не обращай внимание на эту плату и этот кристалл, в этой книге много хороших примеров на языке Verilog. С их помощью ты уже сможешь реализовывать свои проекты хоть на Xilinx, хоть на Intel. DE10 стоит 120$ если заказывать от производителя, но это кладезб свистоперделок, можно докупить камеру D8M и пилить видеообработку, т.к. есть hdmi выход. Примеры того как те или иные проекты реализовать на этой плате идут вместе с платой (размещение пинов, сборка и т.п.).
706 357908
>>57906

>можно докупить камеру D8M


Или берешь что-нибудь попроще вместо DE10. Приделываешь простейшие восьмиразрядные АЦП/ЦАП. Для получения частоты пикселов паяешь ГУН на варикапе и инверторах, на ПЛИС делаешь частотно-фазовый детектор и уже можно подключать аналоговую камеру типа видеоглазка, а результат смотреть на телевизоре. Или ты скажешь что без памяти хотя бы под один кадр ничего не сделать?
707 357952
>>57908
Где я обмолвился про память? Зачем делать усаревшее аналоговое говно, если за тебя поставили hdmi / mipi декодер? Ты наверное скажешь, что деграданство, всё за тебя поставили, тогда купи Zybo Z7 и ебись сам с декодером CSI2 и HDMI. Ну и сравнил ты конечно аналоговый глазок и 1080p30. Короче, не понимаю я твоей претензии и тезиса.
708 357963
>>57952
В начале речь шла про обучение >>57748 Потом тот анон упомянул о деньгах >>57758
Вот я и написал, как можно сильно сэкономить и получить тот же опыт. Разница в стоимости раз в 5 получится, для кого-то это может быть весьма существенно. К тому же в комплекте получишь АЦП/ЦАП, на которых что-нибудь еще можно будет сделать.

>mipi


>CSI2


Это в основном для игрушек. В "нормальных" камерах чаще используется Camera Link или ethernet.

>устаревшее аналоговое говно


Может оно устарело, но еще долго будет использоваться из-за того что дешевле. В том числе коаксиальный кабель дешевле и его проще соединять, если нужно тянуть на десятки/сотни метров то получится существенная экономия.

>аналоговый глазок и 1080p30


Зачем вообще для обучения нужна камера с большим разрешением? Можно взять аналоговый глазок с AHD, если жить не можешь без чуть большего разрешения.
709 358030
>>16943 (OP)
Блять, асм и машинные коды это одно и тоже.
710 358057
>>58030
Нет. В асме есть мнемоники, макросы, дефайны, т.е фишечки которые облегчают написание и чтение кода человеку.
А машинный код это уже непосредственно содержимое памяти программ.
711 358072
>>58057
Да. Ты же не будешь спорить, что каждая команда асма означает отдельную операцию в машинном коде? Всегда писали на асме(по сути, на машинном коде), только если раньше мнемоники заменяли по справочникам, сейчас мнемоники заменяет компилятор машинным кодом простой заменой.
712 358075
>>17040

>Похуй на зп, пока твой мозг пропитан говном и юношеским максимализмом, со временем это пройдет, но чтоб не было поздно я дал тебе бесплатный совет - просто сравни количество вакансий и вилку зп на hh.ru по fpga и java и все поймешь.


Cравнил.
По ПЛИС - 60 вакансий.
По микроконтроллерам - в 3 раза больше вакансий.
По джаве - в 39 раз больше вакансий.
Но, имхо, ты не учитываешь, что на джаве и конкуренция будет больше человек на место, и срок твоей работы будет меньше(каждый год выпускают новые обновления и фреймворки) и в 30-40 лет ты рискуешь быть выплюнутым на улицу, когда тебя заменят молодым стремящимся джуниором.
IMG20190225152308274.jpg433 Кб, 1280x960
713 358081
>>58072
Слишком толсто.
714 358083
>>58072

>что каждая команда асма означает отдельную операцию в машинном коде?


Тебе тот анон выше писал же:

>макросы, дефайны


Они вовсе не так тупо подставляются. Например, какой отдельной операции в машинном коде соответствуют в GNU ассемблере вот такие строки:

>.section .text


>.equ FLASH_BASE, 0x40022000


>.set i,0


>.rept 256


и прочие директивы? В некоторых ассемблерах, вроде как, макросы вообще полны по Тьюрингу. Соответственно там на макросах можно хоть компилятор сишечки сделать.
715 358084
>>58075

>не учитываешь, что на джаве и конкуренция будет больше человек на место


Вообще не факт.
>>58075

>в 30-40 лет ты рискуешь быть выплюнутым на улицу, когда тебя заменят молодым стремящимся джуниором


А с fpga типо не так? В любой сфере, если сидеть на жепе ровно уйдешь на свалку.
716 358089
>>17040

>но чтоб не было поздно я дал тебе бесплатный совет - просто сравни количество вакансий и вилку зп на hh.ru по fpga и java и все поймешь.


Джава когда-нибудь помрет, а за FPGA по мнению некоторых людей будущее следующих 20-30 лет. Я сам джавист, если что.
717 358090
>>58089

>Джава когда-нибудь помрет


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

>за FPGA по мнению некоторых людей будущее следующих 20-30 лет


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

> Я сам джавист, если что


Работал ли ты фпгашником? Ты хоть понимаешь в какое болото ты зазываешь людей?
718 358091
>>58090

>Работал ли ты фпгашником? Ты хоть понимаешь в какое болото ты зазываешь людей?


Нет, не работал. Расскажи.
Мне нравится системное программирование и железо, но я работаю бэкэндером, потому что это востребовано и мне платят за работу здесь и сейчас.
719 358092
>>58084

>>не учитываешь, что на джаве и конкуренция будет больше человек на место


>Вообще не факт


Не знаю как на джаве, а плисоводов по отношению к прогерам сильно меньше, потому они всегда в дефиците, хотя при этом им и не доплачивают. Ну и плисовод всегда может стать джава-кодером, а вот на оборот сильно навряд ли.

>А с fpga типо не так?


По большей части не так. Всё зависит от решаемых задач.

>>58090

>нужно заниматься тем, что востребовано здесь и сейчас и за что платят деньги.


Какое-то потребительское у тебя отношение.
720 358093
>>58092
>>58091
Это все конечно хорошо, но почему вдруг подняли тему годовалой давности!? И что интересно это совпало по времени с этим >>58030
Такое впечатление, будто в тред зашел какой-то анон из /pr/ только лишь затем, чтобы написать какой-нибудь ерунды.
721 358094
>>58091

>Нет, не работал. Расскажи.


Вот тут в общих чертах специфика >>55025
Основная проблема в том, что 99% вакансий это околооборонка со всеми вытекающими.

>>58092

>Ну и плисовод всегда может стать джава-кодером, а вот на оборот сильно навряд ли.


Не соглашусь, это работает в обе стороны. Бывает накодируюсь на hdl, появляется программерская задача и я сажусь туплю, пока не переключу мозг на парадигмы программирования. Аналогично и программисты не сразу осваивают hdl, но в итоге осваивают!
На хабре попадался проект - эмулятор какой-то консоли, так вот его запилил человек, который до этого не имел дело с FPGA.

>Какое-то потребительское у тебя отношение


Нужно зарабатывать на жизнь, кормить семью. А если у тебя лежит душа к плисоёбству никто не запрещает пилить свой pet project.
722 358097
>>58094

>Аналогично и программисты не сразу осваивают hdl, но в итоге осваивают!


Далеко не все. Многие так привыкают к тому что инструкции исполняются последовательно, что просто не могут в параллельные процессы на ПЛИС. + к этому всякие гонки сигналов в КС, межклоковые переходы и прочие специфические вещи.

>никто не запрещает пилить свой pet project


Разъясни.
723 358103
>>58093

>в тред зашел какой-то анон из /pr/


Ты меня сейчас оскорбил, сравнив я джава-быдлом и веб-макаками. Я мк-бог, вообщето.
724 358123
>>58097

>Многие так привыкают к тому что инструкции исполняются последовательно, что просто не могут в параллельные процессы на ПЛИС.


Двачаю, в микроконтроллерах примерно также. Джава программисту будет трудно понять, как одновременно работают 4 таймера, 2 канала uart, ацп и цап.
725 358125
>>58123
Чего там понимать-то? Не преувиличивай. По сути мк это как два пальца об асфальт. Просто мозги надо освежать во время, а то начнешь тормозить.
726 358135
>>58123
Просто несколько девайсов на кристалле работают одновременно.
727 358137
>>58092

>они всегда в дефиците, хотя при этом им и не доплачивают


Это значит, что нет никакого дефицита. Их меньше, но задач для них ещё меньше.
728 358139
>>58125
Чувак просто немного ограниченный задрот.
729 358142
>>58097

>Многие так привыкают к тому что инструкции исполняются последовательно, что просто не могут в параллельные процессы на ПЛИС.


А как же многопоточные приложения?

>к этому всякие гонки сигналов в КС, межклоковые переходы и прочие специфические вещи.


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

>>никто не запрещает пилить свой pet project


>Разъясни.


А что разъяснять - работаешь с той технологией за которую больше платят, а в свободное время пилишь то что тебе интересно, например FPGA.
730 358172
>>16943 (OP)
Где можно приобрести такую плату Altera?

https://habr.com/ru/post/310816/
731 358179
>>58172
На али
732 358207
>>58179
Очень плохой совет. На алиэкспрессе оно стоит 13140,04 руб, в электронщике 14540 рублей, а терасик продает их по $150. Наверняка напрямую у терасика будет намного выгоднее, даже с учетом доставки. Даже если покупать в диджикее и везти через посредников, и то дешевле будет чем с алиэкспресса.
Но я бы не советовал покупать эту плату. ПЛИС мелкая, память снаружи тоже мелкая приделана. VGA там и то через R-2R сделан. Даже HSMC нет. Китайцы продают аналогичные платы намного дешевле. За те же деньги китайцы продают плату с XC7K420T, там LE/LC в 10 раз больше чем в циклоне на плате DE0-CV.

>>58142

>pet project


Если не секрет, то что-нибудь интересное на ПЛИС сделал?
733 358217
>>57963
Что ты имеешь в виду под нормальной камерой? MIPI CSI-2 это интерфейс сенсора так же как и LVDS, а то что ты назвал. это интерфейс передачи данных по на расстояние с готовой камеры. Я как такой тезис могу сказать, говно этот ваш камерлинк, вот 12G-SDI тема. Не путай квадратное с мягким.
Никто не делает приёмник видеосигнала с камер на ПЛИС, делают камеры, в которых ПЛИС принимает и обрабатывает сигнал с сенсора, а потом заганяет в этот ваше эзернет/sdi/AHD хоть сожми и по i2c отправляй
734 358218
>>58090
Я работаю, ДС-2, мидл, 100к в месяц, зависимость есть.
735 358223
>>58137
Скорее наоборот, от того что плисоводов мало то и задач решаемых с помощью ПЛИС мало. Там где можно применить ПЛИСину суют МК и городят на нём огород.

>>58142

>А как же многопоточные приложения?


Если правильно помню, то они между собой согласуются через какие-то семафоры, светофоры. Это не то же самое. Команды в программе всё равно исполняются последовательно. Да, и в МК есть таймеры, ЦАПы, АЦП и прочая периферия которая работает параллельно. Но там она есть как данность. А когда возникает необходимость самому наделать счётчиков, регистров, автоматов, которые все должны работать одновременно и согласованно, то тут у многих начинается затык. Несколько раз видел как прохеры несмогя в HDL пытаются перейти на Ниос, который чтобы запустить тоже нужно постараться, но соснув и в этом, бросают изучение ПЛИС вообще.

> работаешь с той технологией за которую больше платят


Много платят элитным гей-шлюхам. Не то чтобы я был в курсе, просто предполагаю. Так чтож теперь, в гей-проституцию податься чтоле?
736 358224
>>58217

>вот 12G-SDI тема


Ты поди его сначала запусти.
737 358225
>>58217

>Никто не делает приёмник видеосигнала с камер на ПЛИС


Зачем брать "сенсор" не для встраиваемых систем? Что мешает сделать в отдельной коробке устройство обработки на FPGA, к которому будут подключаться готовые камеры?

Значит, если делать обработку видео на FPGA, то непременно нужно брать отдельно матрицу, разрабатывать для нее корпус, выбирать объектив и прочее?

>сенсор


Не стал бы я такое называть сенсором. Ладно еще КМОП или ПЗС матрицу так назвать. Но у тебя готовая камера, уже с объективом.
Кстати, а ты хоть в курсе что все матрицы сами по себе аналоговые? Конечно бывают матрицы с АЦП на одном кристалле, но сама матрица все равно аналоговая.
738 358226
>>58217

>ПЛИС принимает и обрабатывает сигнал с сенсора, а потом заганяет в этот ваше


Но зачем для этого ПЛИС? Какой-нибудь микроконтроллер cypress вполне справится, да еще потреблять меньше будет.

>sdi/AHD


Тем более ПЛИС ни к чему, с ПЗС матрицы и так аналоговый сигнал идет, только синхры подавай.
739 358236
>>58226
А если тебе нужен нестандартный алгоритм обработки сигнала (какой-нибудь хитрый билатеральный фильтр или нелинейная интерполяция), то ты жиденько обосрёшься

> ПЗС


только для небольшого разрешения или небольшого фреймрейта, ограничение на скорость переноса заряда (~100 МГц)

> sdi


> аналоговый сигнал


норкоман чтоле

>>58225

Вот не повреишь, большинство видеообработки делается именно на видеопроцессоре внутри камеры (например у нас в компании этот видеопроцессор делается на ПЛИС). Это дебайеринг (демозаика), шумодав, первичная цветокоррекция, коррекция геометрических искажений, интерполяция битых пикселов, повышение контрастности и многое прочее.

>сенсор



У нас называют ПЗС-матрица или КМОП-сеноср, т.к. ПЗС уже лет 5 не используем, то употребляем "сенсор"
740 358239
>>58236
Это все хорошо. А теперь задумайся, кто, где и зачем использует камеры, которые делают "у нас в компании"? Думаешь обработка на этом закончилась?
741 358241
>>51727
Вы пытаетесь сделать свой микроконтроллер? Зачем, если уже есть готовые?
742 358243
>>58135
>>58125
Вот, плис тоже как два пальца об асфальт. Просто несколько девайсов работают одновременно. Даже веб-макака с этим говном разберется.
743 358244
>>58236
А я похоже знаю откуда ты. http://rastr.net/ Угадал?
744 358245
>>58244
Да, угадал.
745 358256
>>58244
мимо
>>58239
Не понимаю к чему ты это, я знаю что такое хост-сайд обработка. Но у нас предметом обсуждения было, что на ПЛИС вообще ничего обрабатывать не надо, и можно гнать сырой сигнал с сенсора.
746 358452
>>58207

>Если не секрет, то что-нибудь интересное на ПЛИС сделал?


Не, у меня перманентное творческое полшестого после 25 началось.
Вообще нет идей, если предложишь свои буду благодарен!
747 358456
>>58207

> Наверняка напрямую у терасика будет намного выгоднее, даже с учетом доставки


У него таки появилась доставка? Или как было FedEx only, так и осталось?
748 358615
>>58452
Денди сделай
749 358618
>>58452
А что ты можешь сделать?
750 358625
>>58615
Где взять полное и точное описание архитектуры?
752 358629
В CPLD умеешь?
753 358672
>>58628
А на русском?
754 358720
Тяжело будет вкатиться в ПЛИС, если ты специалист по программированию микроконтроллеров (AVR, PIC, STM, i8051)? И можешь в цифровую и аналоговую схемотехнику хотя бы на уровне Electronic Workbench(дешифраторы, триггеры, цап, аца и т.д.)?
755 358721
И где больше заработок - в микроконтроллерах(обычные мк и ARM), или в ПЛИС?
На хабре по плису в 3 раза меньше вакансий.
756 358750
>>58720

>дешифраторы, триггеры


Это основное что нужно знать. Есть ещё автоматы Мили и Мура, их бы тоже желательно.
757 358773
>>58721

>в микроконтроллерах(обычные мк и ARM), или в ПЛИС?


Что мешает знать и то и то?

>На хабре по плису в 3 раза меньше вакансий.


>На хабре


>вакансий


Да ну?
758 358791
>>58773

>Что мешает знать и то и то?


ПЛИС вроде намного сложнее...
Безымянный.png41 Кб, 821x705
759 358793
>>58773

>>На хабре


>>вакансий


>Да ну?

760 358829
>>58721

>обычные мк и ARM


Теперь я вместе с ARM, он необыкновенный! Он МК отменный, молюсь я на него!

>>58791
Все одновременно в голове не поместится?
Вообще-то часто используют софт-процессоры (microblaze, nios), еще бывают FPGA с готовыми процессорами, такие как Zynq и Cyclone V.
Сложность зависит от того что именно делать. Можно делать что-то простое на FPGA, например набор согласованных фильтров, которые будут занимать много места, но будут просты по своей структуре. Или кто-то пишет (к примеру) linux (uclinux) какой-нибудь, который вполне работает на микроконтроллерах. Поэтому в этом контексте о сложности говорить нет смысла.
761 358835
Я вот вкатился в разработку ПЛИС, прочитал статью на хабре https://habr.com/ru/post/281525/, прочекал все пункты и теперь работаю, вроде всё норм, но вот иногда вылезает незнание некоторых основ. Например ВНЕЗАПНО оказалось, что плис не сохраняет прошивку и ей надо ещё ПЗУ для хранения прошивки. Где можно прочитать про такие не очевидные вещи для новичков (я хоть уже не новичок, но этого я не знал). Ещё хочу разобраться с синтезом и разводкой, когда и какие настройки компилятора использовать, сейчас оставляю всё по умолчанию.
762 358841
>>58835

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


https://www.youtube.com/playlist?list=PL4UMfOeGYsvZTAJkgY3XfsrFyK1laAchO
763 358844
>>58835

>надо ещё ПЗУ для хранения прошивки


Можешь взять MAX 10, у которых ПЗУ внутри. Если конечно их хватит по объему.

>прочекал все пункты


А я из всего того не знаю SystemVerilog и по верификации маловато знаю и умею.

>я хоть уже не новичок, но этого я не знал


Это сильно. То есть не открывал device handbook (user guide). Да это вообще в любом учебнике написано, хоть у Зотова. По моему без таких базовых знаний ничего внятного сделать не получится. Возможно даже что ты проебал просто основы цифровой электроники, все эти элементы Пирса, триггеры всякие там.
764 358861
>>58844

>А я из всего того не знаю SystemVerilog и по верификации маловато знаю и умею.


Я знаю Verilog. Мне кажется особой разницы нет на каком языке писать. Но вот понимать что написано на других языках это надо обязательно - мне пару раз приходилось доделывать чужие проекты, один на VHDL. другой на AHDL.

>>Это сильно. То есть не открывал device handbook (user guide). Да это вообще в любом учебнике написано, хоть у Зотова. По моему без таких базовых знаний ничего внятного сделать не получится. Возможно даже что ты проебал просто основы цифровой электроники, все эти элементы Пирса, триггеры всякие там.


Ну основы цифровой электроники, думаю, у меня более-менее норм.
765 359104
Есть 2 чипа:
1)https://www.digikey.com/product-detail/en/lattice-semiconductor-corporation/LFE5U-25F-6BG256I/220-2206-ND/9553919
2)https://www.digikey.com/product-detail/en/intel/EP4CE22F17I7/EP4CE22F17I7-ND/2288336
Вроде по характеристикам более-менее одинаковые, но один стоит ~10$ а другой ~70$. Я не могу понять почему такая разница в цене. Куда надо смотреть?
766 359113
>>59104

>INTEL

767 359150
>>59113

>INTEL


Я не понимаю...
Вроде логических ячеек и встроенной памяти у леттиса даже чуть побольше, максимальные частоты тоже сопоставимы. Но мне не верится, что такая ПЛИС может стоить 10 баксов. В чем подвох? Или интел тупо просит охрененный оверпрайс? Или это невиданая щедрость от леттиса?
768 359180
>>58835
Да ты орешь что-ли?
https://habr.com/ru/post/435804/
Не твой пост случаем?
Скоко платят?
769 359182
>>59180

>Скоко платят?


15 рублей.
770 359183
>>59180
Неа, я бы на хабр с таким не полез бы. Просто так как-то сложилось, что в начале, пока был нубом, я прошивал не понимая как вся система в целом работает, а потом попадались чипы со встроенной памятью. А вообще мне ПЛИС кажутся проще и лучше чем микроконтроллеры - всякие интрефейсы, которые перекрывают друг друга, ограниченное количество пинов и никакой параллельности, и всякие "указатели на указатель ссылки на указатель", библиотеки и тд. Вот почему все считают плис сложными? Вот у меня коллега сейчас решает задачу сбора данных одновременно с 3 АЦП. И городит какую-то хитровыебанную систему - типа микроконтроллер не может одновременно общаться по 3 spi + пара дополнительных сигналов на каждый АЦП. Вот с таким любая плис справится как нехуй делать
771 359184
>>59183

>попадались чипы со встроенной памятью.


Да ну? Таких не особо много и по большей части это только совсем мелкие CPLD.

>>59182
Даже в мухосрансках чтобы получать меньше 30, это надо неполный рабочий день работать или пойти в ФГУП какой-нибудь.
772 359186
>>59184

>неполный рабочий день работать


Может он хикка
773 359281
Какие есть универсальные инструменты для разработки под любую fpga?
774 359301
>>59281
Есть сторонние синтезаторы, есть симуляторы, но не более. Разводчики и ассемблеры у все свои.
775 359312
>>59301
Чем прошить такую плату? В чем писать код?

EP4CE6
778 359510
Сап, аноны. Играться в эмуляторе надоело, хочется железку, чтобы подключать к телику и т.д. Появилось ли сейчас что-нибудь более интересное уровня DE2-115 за те же деньги, или лучше взять ее?
779 359511
>>59510
Ultra96 например
780 359513
>>59510
За такие деньги сейчас можно найти оригинальные девборды на вторых арриях и стратиксах, иногда даже новые (некоторое время назад видел на ибее новую альтеровскую плату на Arria II). Китайские платы - вообще на пятых арриях и седьмых кинтексах.
781 359518
>>59510

>подключать к телику и т.д.


Не можешь сам припаять несколько резисторов?
782 359524
>>59518
К эмулятору?

>>59513
На ebay только одна плата, и она pci-e, без кучи пинов. На алиэкспрессе не нашел.

У террасика есть DE10-Standard https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1081, у которой примерно столько же логических ячеек, но при этом она SoC. Почему она стоит дешевле DE2 https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=502?
783 359526
Можно ли подключить какой-нибудь kintex pcie board типа
https://s.click.aliexpress.com/e/ui8AOuE на pcie к ноуту через какой-нибудь thrunderbolt 3 external pcie типа https://www.amazon.com/dp/B01MTP2XMZ/ref=cm_sw_r_cp_awdb_t1_Pt4HCbGMBF56D ?
784 359527
>>59524

>К эмулятору?


К любой плате, на которой нет видеовыхода. Чем тебе не нравится https://ru.aliexpress.com/store/product//620372_32834526999.html ?
Для начала так вполне нормально.

>столько же логических ячеек


У тебя уже есть идеи на что применить все эти ячейки? А "про запас" не стоит брать.

>Почему она стоит дешевле DE2


Примерно по тем же причинам, по которым память DDR4 стоит дешевле чем DDR2 того же объема.
ScreenshotChromium20190312-144846.png309 Кб, 1080x1920
785 359533
>>59524

>На ebay только одна плата, и она pci-e, без кучи пинов. На алиэкспрессе не нашел.


Никто не говорил, что они там есть в любой момент времени. Надо постоянно мониторить.
Вот, например, плата на Arria V на Али.
786 359541
>>59510

>ли лучше взять ее?


А ты как с доставкой вопрос решать будешь?
787 359543
>>59524

> примерно столько же логических ячеек,


Куда тебе столько? https://wfjm.github.io/home/w11/impl/#h_systems

>>59527

> Чем тебе не нравится https://ru.aliexpress.com/store/product//620372_32834526999.html ?


Тем, что можно добавить 20 баксов и взять вариант с SDRAM? https://www.aliexpress.com/store/product//620372_32780729361.html

А за 60 баксов можно взять вот такие наборы:
https://www.aliexpress.com/store/product/EP4CE22F17C8N-board/620372_32859908966.html
https://www.aliexpress.com/store/product/TFT-320X240-EP4CE15F17C8N/620372_32803512580.html
788 359546
>>59543

>Тем, что можно добавить 20 баксов и взять вариант с SDRAM?


Так ли нужна эта память? К примеру, для ЦОС обычно не нужна.

>А за 60 баксов можно взять вот такие наборы:


Но стоит ли? Если потребуется, то несколько резисторов можно припаять самостоятельно. Для чего все эти свистелки и перделки нужны? Лишь для таких игрушек, как по твоей первой ссылке. Если делать что-то другое, то все это будет только мешать.
789 359556
>>59546

> Так ли нужна эта память?


Ну так >>59510 не сказал же, зачем ему ПЛИС. Может он хочет одноплатник, с горилкой и хохлушками забабахать?

> Для чего все эти свистелки и перделки нужны?


Именно для того, чтобы не припаивать резисторы и ебаться с макетками на первых порах, когда всё что тебе хочется это подрочить светодиодами и VGA-выходом на мониторе.

> Если делать что-то другое


То мезонин с плисиной ПРОСТО снимается. Единственная засада: там разъёмы хоть и обычные двухрядные гнёзда, но с метрическим шагом (два миллиметра).
790 359564
>>59556
Вот именно. Поэтому то что ты предлагаешь не лучше и не хуже. Это для тех кому обязательно нужно что-то вывести через VGA и при этом лень припаять несколько резисторов.
791 359566
>>59564

>припаять несколько резисторов


Получив тем самым всего 4 цвета.
792 359571
>>59566
Нет. Там три канала (RGB). Если по одному биту на канал, то будет 2^3=8 комбинаций, т.е. 8 цветов. Потом на обсуждаемых китайских платах стоят R-2R (или что-то вроде того) из нескольких резисторов, которые тоже не много цветов дают. Причем так сделано не только у этих китайцев, например на Nexys 3 и Nexys 4 (по первой ссылке в >>59543) аналогично.
Если нужно больше цветов, то необходимо ставить ЦАП. Не целесообразнее ли в таком случае перейти на HDMI?
Screenshot2019-03-1303-49-49.png76 Кб, 745x562
793 359581
>>59564

> лень припаять несколько резисторов.


Не ленью единой. В нашем Мухосранске-Таёжном такие (как у Zeowaa или WaveShare) наборы лучше тем, что все равно любую мелкую пиздюрку приходится заказывать с большой земли, так что для экспериментов и освоения удобнее брать всё сразу и в сборе.

>>59571

> Потом на обсуждаемых китайских платах стоят R-2R (или что-то вроде того) из нескольких резисторов,


И китайца там хитрее. Простейший ЦАП со взвешенными резисторами, но вместо отдельных резисторов сборки с разным включением (пикрелейтед).

> которые тоже не много цветов дают.


Ну хуйЪ его знает. По мне так HighColor для домашних поделок вполне достаточно.

> Не целесообразнее ли в таком случае перейти на HDMI?


Там другая проблема. Частоты такие, что дешёвые камни уже зашиваться начинают (для паршивого 640x480 потребуется гнать сигнал с частотой 250 МГц).
794 359587
>>59581

>HighColor


Еще не факт что оно там будет. Какая там реально точность резисторов? А какая точность выходного напряжения FPGA?

>Частоты такие, что дешёвые камни уже зашиваться начинают


Поставить SERDES никак?
795 359779
ПЛИСаны, читаю тут додревние (2005 год) «ALSE's VHDL Design Rules & Coding Style». И не могу понять, почему они пишут следующее:

>RTL : Use as few variables as possible in synthesizable code, and never when you may use signals instead. Use variables for their specific behavior (factoring, intermediate results, re-using the FlipFlops inputs etc..).



Это какие-то особенности тогдашнего железа или что-то более фундаментальное?
796 359796
>>59779
Соблюдение этой рекомендации предотвратит увеличение комбинационных схем (т.е. увеличение задержек) и появление латчей. Почему это необходимо? Потому что структура ПЛИС такая, желательно почитать об этом отдельно.
797 359800
>>59779
Это для лучшего понимания, где находится комбинационная логика, а где секвенциальная, больше ни для чего. Это не совет ставить как можно меньше регистров, это совет писать так, чтобы было ясно, имеется ли в виду тут у тебя регистр в железе, или ты комбинационную логику в несколько действий описываешь.
798 360084
Поясните за циклы.
Написал я тут извращённым способом счётчик, знаю, можно намного проще написать.

module Count(output reg [3:0]counter, input incr, input clk);
reg [3:0]carry;
always @(posedge clk)
begin
integer i;
for(i = 0; i < 4; i = i + 1)
begin
if(i == 0)
begin
if(incr) counter <= !counter;
else counter <= counter;
carry = incr & counter;
end
else
begin
if(carry[i-1]) counter <= !counter;
else counter <= counter;
carry = carry[i-1] & counter;
end
end
end
endmodule

Вопрос, собственно, по цепи переноса carry. Он объявлен как reg, в списке чувствительности указан тактовый сигнал, а значит этот carry должен быть регистром. Ан нет! По какой-то неведомой причине он стал комб. логикой. А если заменить присвоения с = на <=, то он таки становится регистром. У меня есть догадки, но хочется послушать ваши версии.
798 360084
Поясните за циклы.
Написал я тут извращённым способом счётчик, знаю, можно намного проще написать.

module Count(output reg [3:0]counter, input incr, input clk);
reg [3:0]carry;
always @(posedge clk)
begin
integer i;
for(i = 0; i < 4; i = i + 1)
begin
if(i == 0)
begin
if(incr) counter <= !counter;
else counter <= counter;
carry = incr & counter;
end
else
begin
if(carry[i-1]) counter <= !counter;
else counter <= counter;
carry = carry[i-1] & counter;
end
end
end
endmodule

Вопрос, собственно, по цепи переноса carry. Он объявлен как reg, в списке чувствительности указан тактовый сигнал, а значит этот carry должен быть регистром. Ан нет! По какой-то неведомой причине он стал комб. логикой. А если заменить присвоения с = на <=, то он таки становится регистром. У меня есть догадки, но хочется послушать ваши версии.
799 360085
>>60084
Квадратные скобки сожрало

>if(carry[i-1]) counter <= !counter;


> else counter <= counter;


>carry = carry[i-1] & counter;



if(carry[i-1]) counter[ i ] <= !counter[ i ];
else counter[ i ] <= counter[ i ];
carry = carry[i-1] & counter[ i ];
800 360092
>>60084
reg в верилоге это не регистр в железе, а переменная, которой можно присваивать значение в секвенциальном блоке. В зависимости от того, когда используется его значение, в текущем такте или следующем, он синтезируется или в комблогику, или в регистр.

Смешивать "=" и "<=" в одном блоке — это хуёвый стиль, не делай так.

Когда ты гадаешь, ставить ли "=" или "<=" — значит, ты сам не понимаешь, что ты пишешь. Ты должен мысленно представить железо, которое описываешь, и, если ты понимаешь принципы синхронного дизайна, то вопросов не возникнет, какие там присваивания используются.
801 360099
>>60085

>carry = carry[i-1] & counter[ i ];


Какой это имеет смысл, еще в цикле к тому же?
802 360105
>>59541
Попросил занизить стоимость, чтобы не растомаживать. Доставка FEDEX $57.96
image077[1].png7 Кб, 1172x524
803 360136
>>60092

>Когда ты гадаешь, ставить ли "=" или "<=" — значит, ты сам не понимаешь, что ты пишешь. Ты должен мысленно представить железо, которое описываешь, и, если ты понимаешь принципы синхронного дизайна, то вопросов не возникнет, какие там присваивания используются.


Как выглядит счётчик в железе я прекрасно представляю.

>Смешивать "=" и "<=" в одном блоке — это хуёвый стиль, не делай так.


А ты попробуй напиши не смешивая. Только не counter <= counter + 1'd1; , а через цикл. Вся загвоздка сформировать комбинационную цепь переноса.

>>60099

>Какой это имеет смысл, еще в цикле к тому же?


Формирует цепь переноса - цепочку из элементов И, смотри на пике.
804 360139
>>60136

>Как выглядит счётчик в железе я прекрасно представляю.


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

>цепь переноса


Это просто конъюнкция всех предыдущих разрядов. Цепью переноса такое называть не стоит.

>А ты попробуй напиши не смешивая.


Элементарно, в одном блоке параллельный регистр, в другом комбинационную логику. Или можно сделать сложение в функции.

>Формирует цепь переноса - цепочку из элементов И, смотри на пике.


И нифига, оно так не работает. Или у тебя что-то проебалось. Потому что это запишет в carry только нулевой бит, а остальные обнулит.
805 360142
>>60139

>Тогда ты не понимаешь чем отличается блокирующее присваивание от не блокирующего.


Понимаю, просто по другому не напишешь, наверное, потому и пришёл сюда рассказать что солнце встало.

>Цепью переноса такое называть не стоит.


Вполне себе. Ибо её выход указывает инвертироваться разряду или нет.

>Элементарно, в одном блоке параллельный регистр, в другом комбинационную логику.


Нет, ну ты попробуй.

>И нифига, оно так не работает.


Кто? Счётчик на пике, или код? Схема счётчика классическая, не может не работать. Код тоже рабочий, можешь проверить.
Безымянный.png39 Кб, 1870x642
806 360161
>>60142

>Нет, ну ты попробуй.


Готово.

>Вполне себе.


В русскоязычной литературе цепью переноса обычно называют другое. Так что нет. Цепь переноса — это как в сумматорах например.

>Код тоже рабочий, можешь проверить.


Может и рабочий, но в той строке у тебя написан бред.
807 360164
>>60161

>Цепь переноса — это как в сумматорах например.


А тут, инвертируем текущий разряд если все предыдущие установлены в единицу. Те же яйца, только в профиль.

>Может и рабочий, но в той строке у тебя написан бред.


Для тебя может и бред, а для Квартуса нет, создаёт схему как на пике >>60136 , так что не надо тут вот этого.
Да и к тому же, чем твоё
comb_out[ i ] = comb_out[ i - 1 ] & cnt_out[ i - 1 ];
отличается от моего
carry[ i ] = carry[ i-1 ] & counter[ i ];

>Готово.


Не, ты именно в цикле создание и регистра и цепи переноса напиши.
808 360166
>>60164

>Для тебя может и бред


Сейчас ты исправил, а был вот такой бред:

>carry = carry[i-1] & counter[ i ];


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

>Не, ты именно в цикле создание и регистра и цепи переноса напиши.


Да ну тебя, сам пиши всякую ерунду.
809 360178
>>60166

>Да ну тебя, сам пиши всякую ерунду.


То-то же.
810 360189
>>60164

>Не, ты именно в цикле создание и регистра и цепи переноса напиши.


Тебе cnt_out <= comb_out ^ cnt_out не нравится штоле? Ну замени на for (...) begin cnt_out[ i ] <= comb_out[ i ] ^ cnt_out[ i ]; end, легче станет?
811 360191
>>60178
Я даже не понимаю того что ты хочешь. На твой первоначальный вопрос уже ответили. Выше один анон написал, что не стоит смешивать последовательностную и комбинационную логику в одном блоке. Желательно писать так, чтобы легче было отличить где комбинационная логика, а где последовательностная. Вот я написал таким образом, а тебе все не так.
.png5 Кб, 528x208
812 360193
>>60164

>А тут, инвертируем текущий разряд если все предыдущие установлены в единицу. Те же яйца, только в профиль.


Вот нарисовал обобщенную схему счетчика или другого КА. По твоему выходит, что комбинационная логика в этой схеме это всегда цепь переноса?
813 360252
>>60189
Вот ты напиши. Увидишь какой пиздец получится.

>>60191
Я хочу сказать то, что написать счётчик подобным образом соблюдая все правила и рекомендации не получается.

>>60193
Ты нарисовал счётчик, как параллельный регистр с сумматором на входе. А есть философия построения счётчиков и различных регистров, как регулярных устройств, т.е. на основе элементарных блоков. Посмотри на пик >>60136 , замечаешь периодичность? Подставляя в конец ещё один такой каскад ты легко и просто наращиваешь разрядность. Я понимаю, что при наличии верилога это всё на хер не нужно, но тут вопрос больше академический.
814 360256
>>60252

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


Твоя схема вполне соответствует этой обобщенной схеме. Так что ты написал что-то не то.
815 360259
>>60252

>Вот ты напиши. Увидишь какой пиздец получится.


И где твой бог теперь?
816 360262
>>60256
Один из вариантов, которые я написал, был в точ как у этого >>60259 кунчика.

>>60259
Вот смотри, дрогой мой кунчик. У тебя переменная i глобальная, т.е. видится из обеих блоков always, она общая. Тебя не смущает, что она инкриминируется по два раза за проход? Ведь каждом for стоит i = i + 1. Да работать будет, видимо компилятор хитрый и догадывается что мы от него хотим. Но то что ты предложил выглядит не менее сомнительным чем блокирующее присвоение вместе с блокирующим.

И ещё. В связи со всем этим у меня возник вопрос. Зачем вообще нужны циклы? Любой код можно написать не используя их. Могёте привести пример где без цикла нельзя было бы обойтись? Я говорю только про синтезируемый код, с тестбенчами там без них никак, это понятно.
817 360263
>>60262

>Тебя не смущает, что она инкриминируется по два раза за проход?


За проход чего?
818 360264
>>60262

>Я говорю только про синтезируемый код


И generate-блоков это тоже не касается. Только поведенческое описание.
819 360265
>>60263
За проход цикла, за одну итерацию.
820 360266
>>60265
Нет, потому что за один проход одной итерации цикла она инкрементируется один раз. А второй цикл проходится потом (и переменная перед входом в него сбрасывается в 0).
821 360270
>>60262

>Один из вариантов, которые я написал, был в точ как у этого >>60259 кунчика.


Что? То что нарисовано у тебя на схеме >>60136 полностью соответствует обобщенной схеме >>60193 Причем вне зависимости от того как писать код.

>Тебя не смущает


Нет. Потому что это так не работает. Цикл эквивалентен простому копипасту кода заданное количество раз. Это как макросы в Си. Хитрость компилятора вообще не при чем.

>Могёте привести пример где без цикла нельзя было бы обойтись?


Ну да, циклы всегда можно заменить копипастой. Так же как арифметические операции можно сделать через логические, а все логические можно сделать через NAND.
822 360276
>>60262

>Могёте привести пример где без цикла нельзя было бы обойтись?


У тебя есть N-мерный массив из 16-битных регистров, и тебе надо вывести их нулевые биты на N-битную шину.
823 360287
.
824 360306
>>60105

> Попросил занизить стоимость,


Потом расскажешь, куда в Терасике тебя послали?

> чтобы не растомаживать.


> Доставка FEDEX


Земля тебе пухом.jpeg http://www.fedex.com/ru/shippingguide/importguidelines/personal.html
825 360307
>>60105
Зачем взял на поиграться такую плату а не что попроще? Уже придумал проект, на который необходимо ~114480 LE? При том свистелки и перделки в DE2-115 не особо развесистые.
826 360309
>>60270

>Что? То что нарисовано у тебя на схеме >>60136 полностью соответствует обобщенной схеме >>60193


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

>Цикл эквивалентен простому копипасту кода заданное количество раз.


Дело не в копипасте, а в том как исполняется цикл. В принципе я удовлетворён ответом анончика >>60266 . Я просто залип на параллельным выполнением блоков always и тот факт, что эти циклы создают схему, а не исполняются в ней, вылетел у меня из головы.

>Ну да, циклы всегда можно заменить копипастой.


По моему утверждению любую комб. или регистровую схему можно написать в поведенческом описании кратко и ёмко без копипаст. А что нельзя, то можно реализовать generate-блоками в структурном описании, например как этот >>60276 случай. Т.е. получается циклы в поведенческом описании избыточны.
827 360319
Братцы-кролики, скажите плис, чем отличается casex от casez? В симуляции моделсим оба два ведут себя одинаково.
828 360326
>>60307

> Уже придумал проект, на который необходимо ~114480 LE?


Я как-раз нашёл подходящий: https://github.com/srg320/FpgaSnes Всё упихнули в 55 килоячеек третьего циклона, не считая STM32 на подтанцовке.
829 360332
>>60309

>Ну а тогда зачем ты противопоставил свою схему моей?


Потому что это не цепь переноса. Максимум в подобных схемах цепь переноса может быть частью схемы, но не схема целиком. Но при синтезе твоего кода для ПЛИС, никакой цепи переноса не получится. Или ты считаешь что при твоем коде (для четырехразрядного счетчика) LUT-ы в FPGA также соединятся в последовательную цепочку, как у тебя на схеме?

>Т.е. получается циклы в поведенческом описании избыточны.


Сделай тогда без цикла суммирование всех бит в шине, т.е. подсчет количества ненулевых бит. Такое может потребоваться например для вычисления кодового расстояния. Или можешь попробовать сделать КИХ фильтр с задаваемым параметром количеством умножителей.
casetest.png16 Кб, 469x329
830 360333
>>60319
Вот этим отличается.

>>60326
Что-то многовато, по моему хватило бы в несколько раз меньше, только памяти относительно много нужно. Но все равно непонятно зачем брать DE2-115, вон в этом треде аноны брали платы с кинтексами у китайцев. DE2-115 имеет смысл брать только ради HSMC.
831 360342
>>60319
Да ничем, лишь известно, что casex умеет корректно обрабатывать 1'bX помимо 1'b0, 1'b1 и 1'bZ. Никогда не использовал casez, всегда casex ставлю, разницы никакой, только ты точно знаешь, что если симулятор подсунет ему 1'bX, он не затупит.
832 360382
>>60332

>Или ты считаешь что при твоем коде (для четырехразрядного счетчика) LUT-ы в FPGA также соединятся в последовательную цепочку, как у тебя на схеме?


Да какая разница как схема размещается в ПЛИС, своей сути она от этого не меняет.

>Потому что это не цепь переноса.


Ну как же? Разряд счётчика инвертируется, другим словами к нему прибавляется единица, если все предыдущие разряды установлены в 1.

>Максимум в подобных схемах цепь переноса может быть частью схемы, но не схема целиком.


А это уже понятия относительные. Можно ли назвать часть схемы схемой? С какой очередной пещинкой кучу можно называть уже кучей. С каким выпавшим волосом человека можно назвать лысым.

>Сделай тогда без цикла суммирование всех бит в шине, т.е. подсчет количества ненулевых бит.


Ну как-то так, на скорую руку, можно наверно и по красивее сделать, но не суть. Суть в том, что удалось даже без генерейта обойтись.
module Test(input [7:0]B, output [3:0]Result);
wire [31:0]res;
assign Result = res[31:28];
AAA AAA[7:0](.num({res[27:0], 4'd0}), .B(B), .res(res));
endmodule

module AAA(input [3:0]num, input B, output [3:0]res);
assign res = num + B;
endmodule

В фильтрах не силён, но думаю, там ту же можно.
833 360383
>>60382

>\t


Это лишнее, это макаба так табуляцию преобразовала.
834 360386
Анон с китайской отладкой на EP4CE6/EP4CE10 и осциллом под рукой, замерь пожалуйста пульсации по питанию 2,5 вольта. Происходит какая-то хуйня. У меня на самодельной отладочной плате пульсации по 2,5 вольта 200 мВ частотой 40 кГц. Это PLL так срёт? Это происходит даже когда на плате отсутствует кварц.
835 360387
>>60382
Охуенный код. Осталось еще арифметические операции из него выкинуть и можно будет утверждать что арифметические операции в верилоге не нужны. Ну вот видишь, сам лучше всех все знаешь. Зачем тогда спрашивал?
836 360394
>>60387

>арифметические операции в верилоге не нужны


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

>Зачем тогда спрашивал?


Думал может всё таки найдётся такая ситуация где никак.
837 360399
>>60394
Как можно было ожидать чего-то другого? Такое можно еще через рекурсию сделать. Только с краткостью и понятностью кода от этого лучше не станет.
Какую-то ерунду спрашиваешь, сам себе отвечаешь...
838 360519
Докладывают из ПГТ Вращенцы. Делаем шестибитный ЦАП из четырёхбитного с помощью верилога и какой-то матери: http://web.archive.org/web/20180626194219/http://sensi.org/~svo/de1videodac/
839 360599
>>60333

>Вот этим отличается.


Зачем нужны оба, если одного casex достаточно?
840 360606
>>60599
Зачем нужен int, когда есть int16_t? Низачем, просто так сложилось исторически.
841 360607
>>58123
Начальник ты чё? Асинхронщина вовсю шагает по вебу же.
Миллисекундами меряться, и буферами трясти в хайлоаде тоже привычно е дело.
842 360610
Анончики, как написать и/о тайминг констрейнт для ног, к которым у меня нет никаких требований по быстродействию вообще? Например кнопка заходит на gpio, да мне поебать, как она там разведётся. Но тайминг репорт показывает на этом порту критическое предупреждение. Как вы пишете такие констрейнты, чтобы мозги не ебать ни себе, ни трассировщику? Xilinx Vivado.
843 360614
>>60610
set_false_path
844 360619
>>58135
То, что они работают отдельно это простота, а вот как они взаимодействуют между собой, работая отдельно, это посложнее.
845 360628
>>60614
Перетекло из критикал в ворнинг в просто ворнинг. Ну, норм, наверное. Спасибо.
846 360693
Заводил кто isedsese2 \ 3 на непериодические входные клоки или это невозможно? (dqs ddr имею ввиду)
847 360722
>>60693

> непериодические


прервающиеся что ли?
848 360743
>>60722
Они самые.
849 360791
>>60743
пишешь декетор параллельной частоты, которой у тебя питается iserdese2 детектор работает на сильно большей частоте чем параллельная входная. Как только частота исчезает, увозишь iserdese2 в ресет
850 360835
>>60791
Можно код?
851 360849
852 360853
>>60791

>iserdese2


Эту клушу я заводил еще кое-как.
А вот с iserdese3 хуйня какая-то. Там внутренний фифо как-то очень уж непонятно для меня работает: я его отключаю, но всё равно инфу получаю слишком поздно и не с первой пачки 8 битов.
(Это всё еще на постоянной входной частоте и данных, для теста. А уж ожидать, что эта херота заведется на произвольном dqs - наивно. Эх, где же мой мемори интерфейс генератор...)
853 360854
>>60791
Алсо.

>детектор работает на сильно большей частоте чем параллельная входная


Входная и так в ддр на 3ггц, куда уж гнать-то.
854 360864
>>60853

>Эх, где же мой мемори интерфейс генератор


А, кстати, где он? Чего бы просто его не поставить? Он же даже бесплатный без смс. Требуется сделать швабодную версию контроллера, что ли?
855 360867
>>60864
Нет, просто МИГ жестко привязан к пинам.
А плис уже разведена, и те пины заняты.
856 360875
Каких дешевых купленых cpld у вас мешок, для использования в разной мелкой несерийной хуите?

Из легко доступных сейчас.
857 360897
https://wiki.tauwasser.eu/view/MBC1

Зачем еще раз проверяется A(14) на 0

>RAM_CS_N <= '0' when (CS_N = '0' and A(14) = '0' and ram_enable_r = x"A")


если проверка была здесь?

>ram_enable_r_clk <= '0' when (A = "000" and WR_N = '0') else



Почем нельзя так?

>RAM_CS_N <= '0' when (CS_N = '0' and ram_enable_r = x"A")

858 360947
>>60854
ну я это для csi2 использовал, там частота 410 МГц была последовательная, соответсвенно 210 МГц с запасом хватало для стробирования параллельной байтовой
859 360950
>>60835
Вряд ли поможет для твоих 3 ГГц, но имей в виду.
860 361110
>>60875
EPM240T100I5N
861 361198
>>60950
Это другой анон попросил сурсы, если что.
Тот, а не этот анон.
862 361276
systemc не обязательно учить? - устарел, мало где используется
863 361331
Плисаны, расскажите, как запускать симуляцию в альтере? Что-то я совсем потерялся, не приходилось использовать этот самый моделсим.

Что я делал:
1. Сконфигурировал в шквартус прайм ip-ядро.
2. Сгенерировал example design и тестбенч
3. Зашел в File -> Change Directory и указал путь к папке, в которой лежит скрипт для моделсима:
..my_project/my_design_0_example_design/sim/ed_sim/mentor/msim_setup.tcl
4. Tools -> Tcl -> Execute Macro через эту команду скормил скрипт из п.3
5. Скомпиллил либы (?) командой "com" в консоле ModelSim
Что дальше делать?
6.
864 361338
>>61276
Вообще не слышал, чтобы его использовали. Везде используют VHDL.
865 361340
>>61338
Сильное заявление
866 361343
>>61331

>Плисаны, расскажите, как запускать симуляцию в альтере?


Тебе в Альтере или в Молелсиме?
867 361345
>>61343
Как я понял из квартус прайм выпилили встроенный симулятор.
868 361346
>>61345
В Квартусе 9.1 всё ещё есть встроенный симулятор для Циклонов 1-3.
Если ты хочешь интегрировать МоделСим в Квартус, то качай МоделСим Альтера едишн. С ним намного проще.
869 361362
>>61346
У меня он и есть.
870 361364
>>61331
Сейчас бы в моделсиме делать когда есть Xcelium.
871 361370
>>61362
Ну хз, каким-то сложным путём ты пошёл.
В Квартусе жмёшь тулс - опшинс - ЕДА тул опшинс, указываешь в строчке МоделСим-Альтера путь до исполняемого файла МоделСима, тот что с расширением .ехе, не помню как называется и где точно лежит, на работе у меня всё это добро установлено, дома нет. Через диспетчер задач вычисли.
Далее создаёшь тестбенч с расширением *.vt, в нём создаёшь модуль верхнего уровня, можно пока оставить его пустым.
Далее в настройках проекта, ЕДА тул сеттингс в поле Тул нейм выбираешь МоделСим-Алтера, в поле НативЛинк сеттингс выбираешь Компил Тестбенч, нажимаешь на кнопку Тестбенчес, в появившемся окне указываешь свой вайл с тестбенчем который создал.
Далее в меню Квартуса жмёшь Тулс - ран симулейшен тул - ЕДА РТЛ симулейшен.

Если всё правильно, должен запустится МоделСим.
872 361381
>>61338
SystemVerilog*
873 361402
>>16943 (OP)
Наша организация подумывает о переходе с альтеры на зайлинкс, потому что их проще достать.
Сильно ли вивадо хуже/лучше квартуса? Наверное платина.
Из основного интересуют аналог схематика, сигналтапа и инсистема.
874 361406
>>61402
Схематик в вивадо хуже. Лучше все лепить в коде.
Ртл вью тоже не так красиво отрисовывается. В остальном вивадо более ламповая и по мне гораздо удобнее. Больше ip ядер, больше сообщество, ахуенный форум.
vio/ila дает на клыка этому вашему сигнал тапу да и в целом вивадо не такая глючная.
875 361407
>>61402
Инсистем это што?
876 361408
>>61406

>Схематик в вивадо хуже. Лучше все лепить в коде.


Ты "блок дизайн" имеешь в виду? Я, конечно, альтеровский вариант не пробовал, но "блок дизайн" — самая продуманная, отлаженная и приятная в использовании часть вивадо (за такой голый и убогий редактор кода я бы просто убивал).
877 361410
Кстати, слышал, в квартусе есть такая фигня под названием "адвайзор", запускаешь её, и она тебе показывает, какие части проекта дольше всего разводятся, где возникают затыки в имплементации, потом ты туда идёшь, добавляешь пару регистров, и всё работает. Есть аналоги такого для вивады? Список не уложившихся в тайминги сетей для этого мало подходит, там бывает, что хуёво написана одна часть, а не раскладывается по таймингам другая.
878 361413
>>61408
Да, именно его имел ввиду. У зайлинкса, например только недавно добавили возможность инстанцировать на блочный дизайн hdl-модули и эта фича работает криво. В альтере все ровно.
Еще не нравится, что у зайлинкса связи отрисовываются автоматически, нужно только указать точки соединения - в результате на крупных схемах получается каша.

Из положительных моментов вивады могу выделить ее фичу с подсказками - например тащишь AXI-шину и редактор подсвечивает возможные точки соединения.
879 361416
Поясните, вот тут в прошлом треде сидел анон из японии. Перечитывал я прошлый тред, а его посты удалены. Как так? Мочератор радача нами в одном треде сидел?
880 361418
>>61416
Вариантов много. Вероятнее всего — его айпишник был от какого-нибудь открытого прокси (потому что на харкаче запрещено постить с огромного количества зарубежных айпишников), потом с этого прокси шутники запостили спам/ЦП, и все посты с этим айпишником пошли под снос без разбору.
881 361419
А есть здесь обитатели fpga-конфы? Почему там такие токсики? Особенно des00 и doka - не встречал раньше такого раздутого ЧСВ.
882 361425
>>61419
Жена ебёт мозги за нищенскую зарплату, отыгрываются на тех, кто слабее.
883 361429
>>61425
У них там был опрос по ЗП согласно которому 90% чата получают больше 150к
884 361436
>>61429
"Ну и вы тоже говорите."
885 361458
>>61407
Это где можно константы изменять без рекомпила. И содержание рамок записывать/считывать.
886 361461
>>61419

>fpga-конфы


Что за конфа?
887 361462
>>61402
Чип-планер у Квартуса лучше в разы.
Сигнал-тап вообще небо и и земля.

>>61406

>vio/ila дает на клыка этому вашему сигнал тапу


Ой насмешил, садомит.
https://youtu.be/_wL5WAxNPrY
888 361463
>>61462
Давай по пунктам, чем сигнал тап лучше?
889 361465
>>61410
В виваде есть анализатор кода. Не помню как зовется.
Правда толку мало от него, раз он на мой говнокод всегда писал, что "ну короче заебимба".
890 361466
>>61463
Да хотя бы возможность задания сложной логики для синхронизации 1:16:45
Или даже создание целых автоматов для сложной составной синхронизации 1:26:55
И это не говоря о возможности подключить свой HDL-код.
891 361467
>>61466
Ну так то первые два пункта в виваде есть, хотя и реализовано по другому
892 361470
>>61467
Да и свой хдл-код дебажить в ИЛА можно, было бы странно, если б было нельзя.
893 361474
>>61467
А ещё входы и выходы внешней синхронизации для каскадирования нескольких СигналТапов, чтоб можно было дебажить модули работающие от разных частот.

>>61470
Да не, ты не понял. Подключаешь к СигналТапу свой HDL-код как доп функцию для расширения возможностей по синхронизации. Нужно, например, тебе отловить момент который наступает при хитрой последовательности событий - пишешь соответствующий код и добавляешь его к СигналТапу и когда код отловит этот момент СигналТап триггернётся.
Можно конечно и просто отдельный модуль написать и к нему присосаться. А тут он интегрируется внутрь СигналТапа и становится его частью.

И кстати, СигналТап можно добавить уже после компиляции проекта.
894 361476
>>61474

> И кстати, СигналТап можно добавить уже после компиляции проекта.


Только вот все равно при любом изменении на сигналтапе придется рекомпилиться.
895 361484
>>61474

>И кстати, СигналТап можно добавить уже после компиляции проекта.


ИЛА можно подключать после синтеза.
896 361491
>>61476
Врубаешь инкрементальную компиляцию и рекомпилишь только изменения в проекте.

>>61484
Ну я с ISE сравниваю, там эту ИЛу нужно было ручками себе в код вставлять, все сигналы прописывать, подключать, потом ещё с глючным и кривым интерфейсом бороться. А в этих ваших Вивадах может уже что-то и доработали.
897 361522
>>61491

>Ну я с ISE сравниваю


А ISE к теме каким боком вообще относится?
898 361547
>>61522
Тем что она тоже Хилых.
899 361553
>>61547
А MAX+PLUS II тоже альтеровская, не собираешься сравнить?
900 361556
>>61553
НУ ты спросил где связь - я тебе ответил.
901 361558
>>61522
Ися просто вивада в юношестве.
902 361614
>>61558
Скорее PlanAhead это Vivado в юношестве.
903 361701
Посоветуйте IDE для программирования Altera Cyclone IV. Я загрузил Quartus Lite, но при создании проекта он просит указать тип устройства и загрузить пакет поддержки устройств с оффсайта. Я зашёл на их сайт, выбрал Cyclone IV, но мне написали, что Quartus Lite его не поддерживает. В какой ещё бесплатной ide можно программировать?
904 361703
>>61701
Мб ты слишком последнюю версию квартуса скачал, которая его уже не поддерживает? В 15 и 16 сыклон 4 точно есть
905 361704
>>61703
>>61701
Четвертый циклон поддерживают версии квартуса до последней включительно http://fpgasoftware.intel.com/devices/
906 361721
>>61701
Помнится моя плата с циклоном 4 на борту как раз с лайтом работала.
907 361743
>>61701
Там надо или комплексную версию качать, или отдельно докачивать поддержку четвёртого Сыклона.
908 361910
testbench waveform выпилили из ise 14.7?
909 361976
Посоветуйте недорогой самодельный jtag, который поддерживает chipscope.

chipscope поддерживает virtual cable? Через меню plugin у меня только такое "xilinx_platformusb PORT=USB21 FREQUENCY=6000000". И parport еще.
910 361977
В ise только можно подключать вручную созданные sdf или есть визард для их создания?
911 362258
hg
912 362396
>>16943 (OP)
Кто объяснит разницу между GDDR3 и DDR3? Чего особенного в Gрафической памяти и какие подводные если поставлю GDDRx заместо DDRx?
913 362397
>>62396

>GDDR3


DDR3 SDRAM (англ. double-data-rate three synchronous dynamic random access memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных, третье поколение)

GDDR3 (англ. Graphics Double Data Rate 3 — двойная скорость передачи графических данных 3) — специальная технология памяти для графических карт, разработанная ATI Technologies.

Имеет почти такое же технологическое ядро, как DDR2, но более высокую эффективную частоту.


Я ненастоящий сварщик, но мне кажется, что это немного разные типы памяти.
914 362400
>>62396
У тебя есть gddr модель для симуляций?
915 362447
>>62396
GDDR на более высоких частотах работает, как минимум.
Даташит у меня есть только на DDR, так что большего не знаю.
916 362448
>>62396

>Общими отличиями GDDR от DDR являются более высокие номинальные частоты работы первой. Также GDDR содержит упрощения электрического интерфейса и применение ряда специальных приёмов управления буфером ввода-вывода, что позволяет достичь несколько большей пропускной способности и более высоких рабочих частот по сравнению с DDR SDRAM. Кроме этого, GDDR имеет по сравнению с DDR более низкое энергопотребление и тепловыделение при работе на равных частотах.



Даже на викии есть. Короче, контроллер немного другой надо писать.
917 362474
>>62448

>контроллер немного другой надо писать.


Сразу после, как ты найдешь доки.
918 362477
>>62474
Легко гуглится пример даташит на память hyb18h512321af с видеокарты. Визуально интерфейс как у DDR3, поэтому и возник вопрос в чем подвох и отличие?
919 362499
>>62477
Лучше чего-нить посвежей.
Но тут по фишкам ничего нет. Ну кроме ддр адреса, в отличие от ддр4.
https://www.micron.com/-/media/documents/products/data-sheet/dram/gddr/4gb_gddr5_sgram_brief.pdf
920 362506
Как/где axi-слейвам назначаются адреса? Можно пример кода?
921 362525
>>62506
Не совсем понятен вопрос, ты в принципе не в курсе, как это делается, или тебя конкретно Address Editor в IP Integrator не устраивает?
922 362529
>>62525

>IP Integrator


А в ise?
923 362530
>>62525
axi-интерконнектор знает адрес слейва или проверка адреса производится самим слейвом?
924 362531
>>62530
Старшие биты использует акси интерконнект, чтобы переадресовать транзакцию на нужный интерфейс. Младшие биты использует слейв, чтобы выбрать нужный регистр. Слейв не знает о своём месте в пространстве адресов, он только младшие биты смотрит.
925 362551
Какие есть способы, правила правильного соединения axi4lite и axi4full? Например, когда слейв axi4lite.
926 362552
>>62529

>А в ise?


ISE петухи идут нахуй.
927 362555
>>62551
Когда на один интерконнект вешаются axi full и axi light, при генерации проекта вивадо автоматом вставляет на нужный интерфейс конвертер протокола. (Ещё она умеет согласовывать интерфейсы с разной частотой и шириной шины, да и вообще няшка.)
928 362559
>>62551
Если неиспользуются бёрсты, то можно соединить 1 в 1, если используются бёрсты, то нужно вставить модуль разбивающий бёрсты на одиночные транзакции
929 362563
Как правильно поступить, если нужно соединить между собой два axi-мастера? Или два axi-слейва.
930 362583
>>62563
Никак. Ты хочешь чего-то неправильного и даже, я бы сказал, грешноватого. Уточни свою задачу.
931 362632
>>62583
Задачи нет - учеба. Хочу проверить ddr память на борде. Думал собрать так: контроллер ddr axi-slave + spi-slave axi-slave + axi-interconnect + risc-v axi-master (или fsm axi-master, но я пока не готов написанию такого). С компа через spi записывать в память, а потом читать.
932 362637
>>62632
Ну так ты не слейв со слейвом соединяешь, а подключаешь несколько слейвов к одному мастеру. В виваде тыкаешь в интерконнект и выбираешь число мастеров и слейвов. Насчёт исе тебе господин выше уже пояснил, я склонен его поддержать. На самом деле я им пользовался 666 лет назад и не помню, как там эта хуйня настраивается.
933 362640
Что нужно чтобы прошивать одну ПЛИС другой ПЛИС по jtag? На главной плисе нужен parallel flash loader?
934 362641
>>62640
теоретически да, но не нужно

Есть куча способов прошить одну плис другой, обычно одна плис эмулирует работу загрузочной флеш для второй
935 362642
>>62641

> не нужно


Что так?

> эмулирует работу загрузочной флеш


А в пзу так зашить можно?
936 362644
>>62642
Лютый оверкил делать жтаг

Проще иметь одну флеш на всех, гугли по словам cascade chainload
937 362650
>>62583

> Ты хочешь чего-то неправильного и даже, я бы сказал, грешноватого


В смысле? Прости, а как по твоему работают дма контроллеры или многоядерные системы? Axi для этого и пилилась, чтобы мультимастер мультислейв нормально работал
938 362678
Сам плисач
Хочу вкатиться в fpga и выбираю плату
Эту стоит взять?
https://ru.aliexpress.com/item/1000006630084.html
И что там к ней ещё надо? Ну типа отладчик или что?
939 362767
>>62678
spartan6 64MB ddr3 в два раза дешевле
940 362770
>>62767
с 128MB
941 362784
>>62770
>>62767
И с ISE вместо среды разработки.
942 362875
>>62767
Ну я могу и этот artix-7 себе позволить, не особо напрягаясь. Думаю даже usb3.0 плату докупить до кучи. Это же не 20к за отладочную плату
>>62784

> И с ISE вместо среды разработки.


В смысле? У xilinx плохо со средами разработки или что?

И ещё, тут юзал кто нибудь китайские отладчики с али для xilinx?
943 362881
>>62875

> Думаю даже usb3.0 плату докупить до кучи.


Закидай говном мануалами для совсем тупых и безмозглых амеб как ее запускать. Платка есть, а останков мозгов не хватает для запуска и укрощения поноса из трафика из этой игрушки.
944 362922
>>62881
Ты видимо шутишь, ведь это я ньюфаг, который спрашивает совета в этом итт треде. Но как я понял, на сайте Кипариса овердохуя примеров и аппноутов, как с этим делом работать. От руководства программиста до подключения к ПЛИС.
image (2).jpg1 Мб, 3199x2438
945 362929
>>62922
Нет, не шучу. Тоже ньюфаг себе выкопал худенькую платку с EP4CE15F23 и еще более тощую платку с EP4CE115F23 под мигалку гирляндой (платки искались максимально голые с большим количеством IO под бредовые идеи очень надеюсь что они получатся). Ну и поделки от Кипариса, про которые вообще не в курсе что и как и с какого бока к ним подходить.
Плюсики в карму QMTech и FPGA Board Store.
946 362948
>>62929

> поделки от Кипариса, про которые вообще не в курсе что и как и с какого бока к ним подходить.


Там же тонна всяких примеров
https://www.cypress.com/documentation/code-examples/usb-hi-speed-code-examples
https://www.cypress.com/documentation/code-examples/usb-superspeed-code-examples
947 362960
>>62875

>В смысле? У xilinx плохо со средами разработки или что?


У xilinx всё отлично со средами разработки если это не ISE. Vivado заебок, например, но она не поддерживает старые линейки плисов, вроде Spartan 6.
948 362971
>>62960

> Vivado заебок, например, но она не поддерживает старые линейки плисов, вроде Spartan 6.


А как это?
В смысле для мира ПЛИС это нормально, что новые ide не поддерживают старые камни? Почему так?
949 362973
>>62971
Потому что внутренности разные. Тебя же не удивляет что для процессоров с разными архитектурами, как правило, требуются разные компиляторы?
950 362978
>>62973
Ну там основной набор команд не меняется десятилетиями, и какой-нибудь gcc-arm может компилить хоть для кортексов-м, хоть для взрослых армов в смартфонах. И я бы очень удивился, если бы какой-нибудь следующий gcc вдруг перестал поддерживать предыдущее поколение. Ну в-общем ладно, я понял суть
951 362981
>>62978

>хоть для кортексов-м, хоть для взрослых армов


Cortex-M это почти что Cortex-A, только без возможности переключения с набора команд thumb-2 на ARM, если я ничего не путаю. Так что отличий не столь много.
https://www.gnu.org/software/gcc/gcc-9/changes.html

>Support for the deprecated Armv2 and Armv3 architectures and their variants has been removed. Their corresponding -march values and the -mcpu options that used these architectures have been removed.

952 362982
>>62971
Потому что поддержка старых камней увеличивает объём программы. Если правильно помню, то поддержка одного Сыклона 4 требует около 500 МБ.
953 362984
>>62981

> Cortex-M это почти что Cortex-A,


Ну вот и я думал, что spartan-7 это почти что spartan-6, только на 28нм техпроцессе
954 362985
>>62982
Как у вас всё сложно, однако
955 362986
>>62981
Кстати, armv2 это пиздец какое старьё, 86(!) год.
956 362987
>>62982
У альтеры/интела это можно докачать отдельно. Но при этом поддержку старья понемногу выкидывают, как и везде. Поэтому объем - это не аргумент.
957 362997
>>62987
Ну так всё ровно сама интеграция этого старья в новое ПО усложняет это самое ПО. Например для древних Флексов не было ЧипПланера, была какая-то его приметившая версия, не помню как называлась. И чтобы поддерживать Флексы нужно держать модуль этого старого ЧипПланера в ПО.
958 364224
>>62948
Ебать-колотить. Мало того что пылящимся wget-ом не слить, а только через ручное хождение по ссылкам (у того же st можно сразу пачкой слить), так еще и нужно делать зоопарк из древнего кейла. Вообще похуй. USB3.0 не очень скоро устареет, поэтому без разницы - на днях или через пару лет получится укротить. DIY же.
959 364246
Что делать, если на моей плате стоит чип EP4CE6E22C8N, а в Quartus нет такого чипа (но есть похожие маркировки)?
960 364247
>>64246
Покажи что есть в кактусе. Букву N не найдешь, а вот С8 - найдешь.
Безымянный.png70 Кб, 915x589
961 364248
962 364270
>>64246
Иногда бывает так что в Квартусе только GX серии 4 Сыклонов стоят. Остальные надо докачивать. Хотя тут от дистрибьюта зависит, есть такие в которые недокачаешь. Вообще если работаешь только с такой плисиной ставь верисии Квартуса постарее, они и быстрее и лучше работают. Я предпочитаю 9.1SP2, там и встроенный симулятор ещё есть.
963 364302
>>64270

>встроенный симулятор ещё есть


Добавлю ещё, что он для 4 Сыклона не работает.
964 364304
>>64302
Работает все на 9ке.
965 364341
>>64304
Пиздишь.
966 364393
>>64341
На какой версии квартуса для циклона работают точно все тулзы?
967 364443
>>64393
Какие тулзы? Для какого циклона?
Квартус 9.1SP2 работает норм для циклонов с 1 по 3 включительно. Для 4 тоже работает, но нет встроенного моделирования, а оно и не нужно по большому счёту, если можешь в верилог и моделсим.
968 364553
Посоветуйте fpga-борду с dram (не sdram) или sram до 20$
sage 969 364560
>>64553

> dram (не sdram)


Хоть понял что за хуйню написал? DDRх и SDRAM - это динамическая память, разница в том что SDRAM передает данные по одному фронту тактового сигнала, а DDRx - по двум фронтам тактового сигнала.

> sram


Погугли как адово нелинейно растет стоимость SRAM от 4 мегабит и выше.
Видимо с размером памяти не определился, раз такой вопрос.

> Посоветуйте fpga-борду


Предпочтения? Altera, Xilinx, Lattice?
Это трололо пост если че.
970 364562
>>64560

>Хоть понял что за хуйню написал?


Мм, опытный разработчик не знает про DRAM, а спеси.
971 364570
>>64562
DRAM, да. DRAM реально такая некрофилия нужна?. Почитай мне на ночь сказки про типы памяти. В тишине знаешь ли плохо засыпаю.
Кандидат для тестов KM41C256.
dram.jpg171 Кб, 2385x1041
972 364571
>>64562
Картинка отклеилась или кто-то забыл refresh памяти сделать.
973 364577
>>64571
Хули это говно провалилось? Дешевле срам, но и быстрее тормознутых сдрам. Идеальная середина.
974 364604
>>64577
Можно в цифрах? Очень желательно привести маркировки(названия) микросхем статической и динамической памяти для сравнения характеристик. Статическая память 2-4 мегабита вполне вменяемо стоит и нет ебли с регенерацией.
975 364794
>>64604

>Статическая память 2-4 мегабита вполне вменяемо стоит


Конкретные марки?
976 364796
>>64794
Вообще-то ты первый бзданул и не назвал даже пары кандидатов для сравнения.

> Дешевле срам, но и быстрее тормознутых сдрам


Как-то так научись хотя бы digikey пользоваться https://www.digikey.com/products/en/integrated-circuits-ics/memory/774?k=&pkeyword=&sv=0&pv142=1644&sf=0&FV=ffe00306,f040017&quantity=&ColumnSort=0&page=1&pageSize=25
Более-менее основные варианты - 3-4$ за SRAM 256Кх16 с временем доступа 10нс. Дораха - пиздуй в кетай к дяде Ляо.
977 364805
>>64553

> Посоветуйте fpga-борду с dram (не sdram)


OCHE TOLSTO. Ну разве что искать додревние платы двадцатилетней давности на вторичном рынке.

> или sram до 20$


Выбери одно. Или sram или «до $20» (стартеркитовские платы обойдутся где-то в $45, чего-то более дешёвого мне не попадалось). Ну или покупай у дядюшки Ляо плату «без нихуя», с одной ПЛИСиной. Будет тебе килобит 200 статической памяти внутри чипа.

>>64577
https://electronics.stackexchange.com/questions/42330/sdram-advantages
979 364851
Правильно ли понял документацию? Как минимум синтезировался проект с коркой ALTLVDS_TX 3 канала с сериализацией 9 и скоростью 630 мегабит.
В самом дешманском EP4CE6E22C8 используя банки 5 и 6 получу 3 канала LVDS под данные и один под тактовую частоту?
Используя HSIODR могу передавать до 640 мегабит на канал и по итогу получить поток данных в 1920 мегабит (240 мегабайт в секунду)?
980 364860
хуй
981 364908
В свободное от работы время дошел до симуляции цепей. Хочу прошить свой чип. Сколько раз можно перепрошивать четвертый циклон? Или количество перепрошивок неограничено?
982 364910
>>64908
Если конфигурационное ПЗУ перешиваешь (память 25 серии или EPCS) - то читай даташит на память. Десятки тысяч.
Если же через JTAG заливаешь конфигурацию в сам циклон - то остается пожелать удачи в попытке убить SRAM память в циклоне, что в принципе нереально. Хоть каждую секунду перешивай - не получится ушатать. Исключая вариант когда забыл поставить свободные порты input tristate и поставил output driven low или подобное.
983 364916
Как на windows 10 использовать USB blaster? Quartus нет видит его. В списке неизвестных USB-устройств в панели управления есть бластер, но написано, что драйвер для него недоступен. Я нагуглил, что по этому элементу списка (с названием бластера) можно кликнуть и появится предложение выбрать драйвер с диска, но это не работает. В папке с квартусом драйвера вижу. Как их установить?
984 364918
>>64916
Чей бластер? От Waveshare у меня не запускался, как и на PIC18F2550. Точнее видны, но при любых действиях по таймауту все отваливается.
Новая версия rev.c на PIC18F14K50 - сразу встала и работает.
Устанавливалось через "из местоположения на диске" и указывал куда-то в недра 17-го кактуса.
985 364922
>>64916

>В папке с квартусом драйвера вижу.


Должны быть, либо ты устанавливал что-то не то или как-то не так. Попробуй найти драйвер поиском по расширению файла (.inf и .cat).
986 364925
>>64918
Китайский. Какой бластер лучше?

Еще вопрос по прошивке. Я описал такую цепь:

module light(x1, x2, f);
input x1, x2;
output f;
assign f = ~((x1 & ~x2) | (~x1 & x2));
endmodule

Конфигурацию пинов задал. Параметрам x1 и x2 соответствуют две кнопки, а значение функции f связано со светодиодом. Но почему-то без нажатия на кнопки диод горит, а при нажатии гаснет. Чтобы сделать наоборот, я добавил логическое отрицание. Почему цепь работала не так, как я ожидал, и лампочка загорается, когда f = 0?
987 364927
>>64925

>Но почему-то без нажатия на кнопки диод горит


Смотри схему твоей платы. Кнопка может быть подключена таким образом, что когда она не нажата на входе будет лог. 1.
988 364928
>>64925

> Китайский. Какой бластер лучше?


Рабочий. На PIC18F14K50 точно работает в разных вариантах и позах.

> Но почему-то без нажатия на кнопки диод горит, а при нажатии гаснет.


В код не вникал. Схему платы смотрел? Прямо в лоб пробовал соединять кнопку со светодиодом и смотреть что будет?
1) На не нажатых кнопках 0 и при нажатии 1 или наоборот?
2) Светодиоды зажигаются 0 или 1?
(Нужное подчеркнуть)
989 364933
>>64916
У меня на вин10 удалось совладать с юсб бластером только через установку драйвера от 9ого к квартуса в режиме винды "без проверки подписи драйверов".
990 364934
>>64933
А я просто открыл диспетчер устройств, нашел в нем бластер и установил драйвер через меню. Причем драйвер установился только когда я указал путь к папке /quartus/drivers. Если я прямо указывал папку с драйвером для x64, инсталлятор драйверов говорил, что не видит драйвер.
991 364937
>>64934

> Причем драйвер установился только когда я указал путь к папке /quartus/drivers.


Это все я пробовал кучу раз и на разных компах.
Какая версия квартуса?
992 364938
993 364942
>>64934

>Если я прямо указывал папку с драйвером для x64, инсталлятор драйверов говорил, что не видит драйвер.


Естественно, потому что установщику нужен .inf файл.

>>64938
Аналогично. Драйвер ставил от квартуса версии кажется 18.0 или 18.1. Причем у одного сотрудника стоит на десятке квартус версии 9.0 (других версий не стоит) и тоже все работает.

>>64937
Проверь в диспетчере устройств VID/PID твоего бластера.
994 365042
The keyword “assign” is used for continuous assignments to an already declared port or a wire

Что значит continuous в этой контексте? Последовательный или непрерывный (в смысле, обновление значения справа непрерывно вызывает обновление шины слева)?
995 365057
>>65042

>непрерывный (в смысле, обновление значения справа непрерывно вызывает обновление шины слева)


Зис.
Комбинационная схема - это непрерывное присвоение. Изменение одного входа моментально влечёт изменение на выходе, согласно логике этой комбинационной схемы, естественно в любой КС есть задержки и время срабатывания элементов, но это уже проблема в другой плоскости.
996 365110
>>65057
Как будто я "припаял" этот wire?
другой анон
997 365111
>>64942

> VID/PID


09FB/6001
998 365125
>>65111
Да, это правильные ид.
Даже не знаю что тебе посоветовать. Драйвер для бластера устанавливается точно так же как драйвера для других устройств.
http://free-pc.ru/windows/kak-ustanovit-drajver-neskolkimi-sposobami.html

>3. Установка драйвера через диспетчер устройств


Указываешь там папку с файлом usbblstr.inf (C:\квартус\quartus\drivers\usb-blaster). Все, готово.
Единственное что оно может ругнуться на отсутствие подписи, если квартус слишком старый.
Вот прямо сейчас проверил с квартусом 18.1 и китайским клоном бластера на PIC18F14K50, все устанавливается. С оригинальным альтеровским бластером тоже все работает.
999 365127
Р
1000 365153
>>65125

> посоветовать


Для себя я уже нашел костыль, если что:
>>64933

Пробовал от 9.0, 13.1 и какой-то 17-18, устанавливаются только через пердолинг с режимом без проверки подписи.
Если не сложно, можешь кинуть ссылку на дрова, либо на облако залить.
Но 17 или 18 я как раз с офсайта качал.
1001 365157
Почему этот ваш квартус не строит нормальной иерархии проекта?
На вкладке hierarchy один лишь топовый модуль, а остальные на вкладке files. Как вообще жить с этим?
1002 365159
>>65110
Смотря к чему. Если к триггеру - то нет. Если к элементу И - то да.

>>65157
Ты сначала откомпилируй, после этого крестик маленький появится, на него и нажми.
1003 365162
>>65159
Для просмотра иерархии мне надо минут 20 ждать пока спомпиллится? Я верно понел?
1004 365163
>>65159

>Если к триггеру - то нет. Если к элементу И - то да.


Разве триггеры используются в комбинационных схемах?
1005 365168
>>65163
О том и речь что это разные вещи. Триггер, чтобы сменить состояние на выходе, ждёт тактового сигнала, а именно фронта. Комб. схема ничего не ждёт, меняет сразу.
Посмотри, может поможет
https://www.youtube.com/playlist?list=PL4UMfOeGYsvblwrP3VYKHq11xgkxVqoUj

>>65162
Ну если ты накидал кода за один раз, что надо 20 минут ждать, то да.
1006 365181
>>65163
assign q = c ? d : q;
Не понимаю о чем ты, но разве это не триггер, пусть даже с статическим управлением?

>>65168
Что-то ты странное пишешь. Если припаять провод к триггеру, то провод (сам по себе) уже нельзя считать комбинационным устройством?
1007 365182
>>65168
Нахуя вот вообще было придумывать это деление на комбинаторную и синхронную логику? Оно же в чистом виде редко встречается.
1008 365185
>>65181

>assign q = c ? d : q;


>Не понимаю о чем ты, но разве это не триггер, пусть даже с статическим управлением?



Это мультиплексор
1009 365186
>>65185
Мультиплексор с обратной связью это не триггер? Если есть память, т.е. на выход влияет предыдущее состояние - значит триггер.
1010 365187
>>65168

>Ну если ты накидал кода за один раз, что надо 20 минут ждать, то да.


В вивадо и ise ничего компиллить не надо было. Иерархия обновляется автоматически либо по команде. Зайлинкс более юзер-френдли ^^
Без названия.png2 Кб, 366x138
1011 365188
>>65186
Ты какой-то ботаник. Вот тебе мультиплексор. Где там память?
1012 365189
>>65188

> Мультиплексор с обратной связью это не триггер?


> с обратной связью


> обратной связью


Где на твоей схеме обратная связь на выходе мультиплексора?
1013 365195
>>65181

>assign q = c ? d : q;


>Не понимаю о чем ты, но разве это не триггер, пусть даже с статическим управлением?


Нет, это не триггер. Это триггерная схема, т.е. комб. схема с обратными связями, которую ты сам нахуевертил. Чуешь разницу? Такие схемы делать строго настрого запрещается. У нас во дворе вообще за такое убивают нахуй. А всё потому, что такие схемы могут впадать в самогенерацию, виснуть и прочее. За всю эпоху существования цифровой техники человечество выработало необходимый набор триггеров, вот ими и пользуйся, они протестированы, изучены, исследованы и прошли проверку временем. Это тот случай когда отсебятину пороть не надо.

>Что-то ты странное пишешь. Если припаять провод к триггеру, то провод (сам по себе) уже нельзя считать комбинационным устройством?


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

>>65187
Да хер там. Это пожалуй единственное его преимущество. Сравни например время добавления айпиблоков, ОЗУ хотя бы, или ПЛЛ, в Квартусе и Айсе. Тебя ждёт сюрприз.
1014 365196
>>65182
Постоянно.
Вот тебе пожалуйста мультиплексор >>65188 , применяется везде и всюду.
1015 365199
>>65195

>Это триггерная схема


Где ты там схему разглядеть ухитрился? Это просто кусок кода, описывающий D-триггер со статическим управлением. В какую схему он может синтезироваться это отдельный вопрос.
1016 365200
>>65199
Схема схема, вход есть?, выход есть? - схема. Только, ещё раз, триггерная, а не сам триггер.
1017 365201
>>65200
У тебя логика как у инопланетянина. Ну давай, заставь этот код работать нестабильно. Разумеется без синтеза, только симуляция.
1018 365206
>>65201
Я говорю не только про ПЛИС, но про всю схемотехнику в целом. На рассыпухе запаяешь такую хрень - тоже работать не будет, хотя шансов больше. Да даже и ПЛИС, симуляция это же не самоцель, рано или поздно всё это в железе работать должно. А в симуляции можно такого понаписать, что даже синтезироваться не будет, не говоря уже о хоть какой-то работе.
1019 365209
>>65206

>А в симуляции можно такого понаписать, что даже синтезироваться не будет, не говоря уже о хоть какой-то работе.


Молодец, ты уже почти пришел к выводу о том, что код - это не схема.

>На рассыпухе запаяешь такую хрень - тоже работать не будет


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

>симуляция это же не самоцель


Verilog и vhdl вполне можно использовать для симуляции рассыпухи, например. Чем не самоцель? Естественно что при этом вполне можно использовать не синтезируемое описание.
А тестбенчи ты значит не пишешь?
1020 365213
>>65209

>ты уже почти пришел к выводу о том, что код - это не схема.


А я такого и не говорил.

>Если ты про соединение входа с выходом у мультиплексора, то это и без тебя тут все знали.


Не все, раз вопрос всплыл.

>Но кусок кода это еще не схема.


Причём тут вообще код? Вопрос был про то, почему нельзя делать обратные связи в КС.

>Verilog и vhdl вполне можно использовать для симуляции рассыпухи


Ради чего? Потому что можем? Если мы говорим о проектировании, то наша конечная цель - работа в железе, а не в симуляции.

>А тестбенчи ты значит не пишешь?


Причём здесь это?
cv4xnuE.jpg25 Кб, 500x281
1021 365224
1022 365225
>>65224
Из телеги спиздил?)
1023 365228
>>65225
С реддита))))))
1024 365232
>>65228
Подъебал
1025 365284
>>65225
Странно у меня почти никогда не было ситуаций, когда после симуляции у меня не работало на железе. Ну кроме таймингов и метастабильности.
1026 365290
>>65284
Для этого нужно не знать цифровую схемотехнику и вкатываться в ПЛИС тупо с изучения синтаксиса HDL.
1027 365341
>>65284
А что ты собственно делал, какого уровня сложности?
1028 365551
На компьютере - вывести "hello world"
На микроконтроллере - мигнуть светодиодом
А что на ПЛИС?
1029 365552
>>65551
мигнуть светодиодом
1030 365556
>>65552
При чем подключенным к кнопке.
1031 365563
Плисаны, где берете воруете ип-ядра, мегафункции?
1032 365570
>>65552
Тоже как на микроконтроллере? Или по другому как-то?
Напиши код, плиз
1033 365578
>>65570
module hui (
input wire clk,
output wire led
);

reg [23:0] clk = 0;
always @(posedge clk)
clk <= clk + 1;
assign led = clk[23];

endmodule
1034 365579
>>65578
fix clk -> cnt
1035 365580
>>65578
module hui (
input wire clk,
output wire led
);

reg [23:0] cnt = 0;
always @(posedge clk)
cnt <= cnt + 1;
assign led = cnt[23];

endmodule
1036 365598
>>65578
А что, обязательно клок заводить?
1037 365600
>>65598
Внезапно да. Иначе как заставишь считать счетчик?
генератор.png30 Кб, 781x407
1038 365632
>>65600
>>65598
Светодиодом можно попробовать без генератора помигать.
Проверил вот такое на китайской плате с EP4CE10E22C8, вполне себе работает.
reactanime.jpg71 Кб, 500x542
1039 365639
>>65632
Отвратительно.
1040 365643
>>65639
Генератор на линии задержки из элементарных логических элементов есть в советских справочниках по схемотехнике.
1041 365644
>>65639
Что тебе не нравится?

>>65643
Тут все же немного иначе. LUT это не один логический элемент, фиг знает какая там переходная характеристика будет.
1042 365648
>>65632
Как всё сложно, ну да ладно, спасибо. Просто навеяло соседним ардуино тредом, где препод заставляет анона эмулировать работу базовых логических элементов на микроконтроллере
1043 365669
Не знаю, куда ещё писать по верилогу, поэтому напишу сюда: что я делаю не так в тестбенче? 1 пик - тестбенч, 2 пик - что должно получиться (когда ручками клок тактировал в квартусе), 3 пик - что выводит моделсим с тестбенчем с 1 пика.
1044 365673
>>65648

>где препод заставляет анона эмулировать работу базовых логических элементов на микроконтроллере


Классика бесполезных учебных заданий.
n.png31 Кб, 1161x660
1045 365684
>>65669
Ну я даже не знаю. С чего ты взял что ошибка в самом тестбенче? Единственная разница между клоком на твоей второй и третьей картинке это начальное состояние.

>[0:15]


От этого у тебя биты наоборот будут выстроены, слева будет младший бит, а справа старший. Мне кажется что так лучше не делать.
1046 365746
1047 365748
>>65643
>>65644

>Что тебе не нравится?


ПЛИС - это не рассыпуха. После каждой компиляции ячейки используются разные, если не предпринимать специальных мер. Кроме того, связи между ячейками достаточно медленные, это не простой проводник, это целая куча мультиплексоров, позволяющие соединять ячейки почти в произвольном порядке, и они, зачастую - эти связи - работают медленнее чем сами ячейки. Всё это приводи к тому что подобные схемы работают либо нестабильно, т.е. плавает частота, либо работают не при каждой компиляции, либо перестают работать при изменении климатических условий.
1048 365751
>>65748
А я бы еще глянул таких трюков на fpga/cpld
1049 365752
>>65748

> если не предпринимать специальных мер.


Как на вивадо с этим бороться? В квартусе chip planner есть.
1050 365753
>>65752
planahead?
1051 365769
>>65753

> planahead


Ты меня похоже троллишь. Смог нагуглить его только для ISE.
В вивадо я ещё нуб, но приходится осваивать.
1052 365770
>>65748
Ты знаешь более надежный способ сделать мигалку светодиодом на FPGA без внешних частотно-задающих элементов?

>ПЛИС - это не рассыпуха.


Будто на рассыпухе такое будет работать достаточно стабильно. Может и на порядок стабильнее будет, но не настолько чтобы можно было такие генераторы где-то применять.
1053 365772
>>65769
Сам нашел похоже - floorplanning.
1054 365774
>>65770
Ну разве только помигать диодом у себя на столе, не более.

А иначе без

>внешних частотно-задающих элементов


никак.
1055 365921
Где можно посмотреть пример подключения sfp-модуля к fpga?
1056 365924
>>65921
Например у TerASIC
https://www.terasic.com.tw/cgi-bin/page/archive_download.pl?Language=English&No=856&FID=0ff4dea89d1960aabaf62cdb07f3bae4
(Платка TR5-Lite. В мануале смотреть страницы 37-38. Похуй что тут SFP+ - они от SFP отличаются только скоростью (10G против 1G) и сигналы управления/состояния одинаковые.)
1057 365930
Как узнают какая полировка оптического коннектора у sfp-модуля? Что-то спеки на модули не ищутся, на самом модуле не написано, во внутренней памяти есть поле с типом коннектора, но не полировки.
1058 365932
>>65930
Более чем уверен что везде UPC (плоская).
APC (угловая) в основном в сетях КТВ где не должно быть сигнала в обратку, или же в сетях xPON.
1059 365935
>>65930
>>65932
Через такую хуитку можно без ебли подключить fiber channel к плисе?
1060 365936
>>65924
А код? На fpga процессор, на процессоре линукс, из линукс уже используешь sfp?
1061 365940
>>65936

> пример подключения sfp-модуля к fpga?


Физическое - показано.
Если про передачу данных - то уже мимо. Не в курсе.
Если же копать в сторону Ethernet - то через SFP подули гоняют вывод SERDES (сериализатор-десереализатор) c кодированием 8b/10b и при гигабите в волокне реально летит 1.25гигабита.
Есть еще вариант SGMII (используется в 88E111x и подобных модулях SFP в выходом на медь) - с ним сложнее, тк есть режим согласования скоростей в отличии от тупого SERDES (но это не точно). И это только прием-передача. Для распознования что за дерьмо прилетело-отправляешь тебе нужен MAC блок.
Поэтому определись - если подключаться к Ethernet - надо будет дофига чего изучать.
Сама SFP - это не более чем тупой лазер и приемник, у которых внезапно есть ограничения по минимальной и максимальной принимаемой частоте и ему вообще поебать что за дерьмо ему будешь скармливать или принимать, поэтому считай что это тупо удлинитель на LVDS линий. Просто так постоянно "1" или "0" не сможешь отправлять - как минимум стоят разделительные конденсаторы на входе, которые отрежут постоянку, а во вторых - подавая постоянный сигнал нарушишь работу АРУ принимающего диода или драйвера лазера не помню где читал про эти грабли.
1062 366121
Поясните за атрибуты
(keep)
(preserve)
(noprune)
и прочие, для чего нужны, как юзаются?
1063 366122
>>66121
Макаба звёздочки по краям сожрала, как обычно.
1064 366131
>>66121
Не оптимизировать эту цепь. Если логически она не нужна или может быть упрощена, компилятор ее все равно оставит. Полезно когда на синтезированый дизайн будешь цеплять отладку или для локализации ошибки, если в процессе оптимизации компилятор выкидывает весь проэкт нахуй
1065 366139
>>66131
А применять то как?
1066 366155
На али нет sfp+ модулей или это я не могу найти?
1067 366156
>>65924

> SFP+ - они от SFP отличаются только скоростью


И коннектором?
1068 366157
>>66156
В смысле, сам сокет, куда вставляются ножевые контакты, такой же, а кожух отличается?
1069 366163
>>66155
Первый попавшийся под МНОГОмод
https://www.aliexpress.com/item/E10GSFPSR-FTLX8571D3BCV-IT-E65689-001-SFP-Transceiver-for-X520-DA2-or-X520-DA1-850nm-300m-10G/32848817962.html

>>66156
>>66157
Сам разъем и сокет одинаковый, контакты одинаковые, сигналы (условно) одинаковые. Все одинаковое, разница в скоростях по парам приема-передачи.
В темноте на ощупь SFP от SFP+ можно отличить по скошенным краям самого модуля в районе контактов, но это не правило и попадаются SFP в корпусах SFP+ например "новые" модули от SNR.
1070 366831
У альтеры есть аналог сдвигового регистра на основе LUT? В Xilinx этот примитив зовется SLR16
1071 366832
>>66831
https://forums.intel.com/s/question/0D50P00003yyGv0SAE/what-is-altera-library-for-16-bit-shift-register-lut-with-clock-enable?language=en_US

Спасибо двач, нагуглил сам.

Следующий вопрос опять же связан с изучением языка богов VHDL. Где квартус хранит стандартные либы? Почему Verilog-колхозники обходятся в основном без либ?
Что полезного можно найти в стандартных либах VHDL?
1072 366840
>>66832

>Что полезного можно найти в стандартных либах VHDL?


https://www.csee.umbc.edu/portal/help/VHDL/stdpkg.html
1073 366843
>>66139
Пишешь эту магическую хуйню перед или над объявлением сигнала, и воаля
1074 366853
>>65551 >>65552
инстанцировать nios/microblaze и написать для него мигалку
1075 366855
>>66853
Не, не оче. Это можно сделать, не написав ни строчки на HDL.
1076 366856
>>66855
Я бы, пожалуй, предложил написать два генератора прямоугольных сигналов с периодом в районе 60 Гц, но чуть-чуть отличающихся. Например, один 59 Гц, другой 61Гц. А потом поXORить их друг с другом и вывести результат на светодиод.
1077 366869
>>66832

>Почему Verilog-колхозники обходятся в основном без либ?


Потому что VHDL-холопы должны страдать.
На, просвещайся
https://www.youtube.com/playlist?list=PL4UMfOeGYsvblwrP3VYKHq11xgkxVqoUj
1078 366871
>>66869
Ты не понел. Verilog я уже знаю.
1079 366875
>>66871
Если так, тогда бы не задавал таких вопросов

>Почему Verilog-колхозники обходятся в основном без либ?

1080 366894
>>65940

> если подключаться к Ethernet - надо будет дофига чего изучать.


А готовые ип-ядра/мегафункции можно где-то купить украсть?
1081 366917
>>66894
https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=93252
https://habr.com/ru/post/234369/
https://fpgawiki.intel.com/wiki/Category:Interfaces
Почитал бы про модель OSI. В оригинале она 7 уровней, для сетевиков - 4. Самому некогда, но интересно было(прошлое время) заняться. Есть гигабитное железо в разных вариациях, есть и свич с 10G портами и SFP+, но нет борды FPGA с 10G трансиверами.
1082 366929
>>66875
Пришло время покаяться.
VHDL конченное говно. Переносить код с одной платформы на другую это настоящий ад.
В случае с Верилогом достаточно написать обертки для платформозависимых сущностей. А с VHDL предстоит долгая ебля с либами. Нахуя нужны либы я так и не понел.
1083 366974
Сап плисач. Нужно запилить дешифратор 128in128 на 10 комбинаций. Эдакое key-value хранилище, которое будет работаеть на частоте 150МГц. Если я ебану через кейс не взлетит?
1084 366976
>>66974
Так глянь во что синтезируется
1085 367004
>>66929
Ну вот, ещё один достиг просветления. Присаживайся.
1086 367247
>>67004
Я таки портировал этот код. Помучался знатно, но еще не уверен, что заработает, жду железо.
1087 367341
>>66974
пили на rom через readmemb
1088 367365
>>66974
Сначала составь таблицу истинности, потом минимизируй её картами карно, после чего по получившимся выражениям построй схему в графическом редакторе. Тогда влезет.
1089 367366
>>67365
Ты траливалишь, что ли? Зачем вручную делать то, что компилятор делает автоматически?
1090 367368
Вот есть сраная пердуина за три копйки. В сраной пердуине за три копейки есть встроенный АЦП. А есть божественная ПЛИС, но в ней нет ни АЦП, ни ЦАП, ни другого обвеса, от слова совсем. В чём причина такой вселенской несправедливости?
1091 367372
>>67368
АЦП для серьёзных задач выбирается под задачу. Для автоматизации курятника подойдёт любая хуйня, которую производитель не поленился засунуть в кристалл, и на параметры которой абсолютно похуй, но ПЛИС в таких задачах не используется.
1092 367375
>>67372
Используются или нет это совсем другой вопрос. Засунуть внутрь простенькую АЦП производителю не представляет труда, по деньгам он не потеряет. А пользователю приходится городить огород на плате.
1093 367379
>>67368
https://www.intel.ru/content/www/ru/ru/products/programmable/fpga/max-10.html

>MAX 10 FPGAs offer system-level cost savings through increased integration of system component functions:


>Analog blocks—Integrated analog blocks with ADCs and temperature sensor provide lower latency and reduced board space with more flexible sample-sequencing.

1094 367381
>>67379
Это всё хорошо, только это ЦПЛД и цена до жопы.
1095 367394
>>67381

>это ЦПЛД


Интел их называет FPGA и в них действительно есть все то же, что обычно есть в FPGA, но в добавок конфигурационная память внутри.

>цена до жопы.


По сравнению с чем? Если >>59104 то для BGA плата может оказаться сложнее и дороже, особенно если ты делаешь махарайку в единственном экземпляре.
1096 367405
>>67375

>Используются или нет это совсем другой вопрос.


Самое нелепое утверждение, которое я когда-либо встречал. ПЛИС, как и всё прочее — это инструмент, который делается под определённые задачи.
1097 367429
>>67394

>По сравнению с чем?


По сравнению с тем что можно на алике найти.
1098 367431
>>67405
В анусе у себя что-нибудь нелепое поищи. У меня вопрос простй: почему я должен ставить два корпуса на плату вместо одного?
1099 367435
>>67429
Фиговый критерий, по любым меркам. Экономия небольшая, а риск больше.

>>67431

>почему я должен ставить два корпуса на плату вместо одного?


1. Не должен, можешь использовать MAX10.
2. Твой вопрос из той же серии почему конфигурационную память не сделают сразу внутри.
3. У тебя не возникает вопросов, почему для питания ядра обычно нужно напряжение ниже 3,3 В?
1100 367446
>>67435

>1. Не должен, можешь использовать ATtiny25


Фиксед.
1101 367449
>>67446
Да, в самый раз будет. Тем более что сам вопрос начинался с упоминании ардуины >>67368
1102 367450
>>67446
>>67449
Зачем мне ATtiny, когда мне нужна ПЛИС?
Ладно, чувствую здесь я ответа не получу.
zu.png102 Кб, 1629x847
1103 367451
>>67450
Берешь что-то типа ZU29DR и не ебешь мозги. То что стоит овердохуя - нас не ебет. Хотел FPGA+ADC - получите и распишитесь.
https://www.xilinx.com/support/documentation/selection-guides/zynq-usp-rfsoc-product-selection-guide.pdf
1104 367452
>>67450
Ты даже не можешь внятно написать чем тебе не подходит MAX10.
1105 367455
Существует в Верилоге атрибут ( full_case ). Зачем он нужен, если у case есть default?
1106 367456
>>67450

>Зачем мне ATtiny, когда мне нужна ПЛИС?


Нет, не нужна.
1107 367457
>>67455
Не знал о таком. Прочитал, тоже кажется что это не нужно.

>если у case есть default?


Только там еще присвоить значение нужно, так что при использовании full_case код немного короче будет. Также это вроде как работает только для синтеза, а для симуляции не учитывается.
1108 367458
>>67457
На счёт симуляции не знаю, а вот что full_case, что default = 3'dx дают одинаковую схему - факт.

Аналогично с ( parallel_case ), что он есть, что его нет, RTL-схема одна и та же.
1109 367593
посоветуйте гайд по квартусу ii
с меня тонну нефти
1111 367670
>>67593
с меня как всегда
1112 367876
>>66929

>достаточно написать обертки для платформозависимых сущностей. А с VHDL предстоит долгая ебля с либами


С какими конкретно либами? И что ты подразумеваешь под платформой?
1113 368119
Перенаправили из /pr/сюда. Хоть мне и кажется, что мой вопрос больше соответствует той доске.
Cап /ra/! заканчиваю радиотехнический факультет провинциального Политеха. Программирование было с нихуя, за исключением пары-тройки шаблонных работ в Verilog. Раньше хотел пойти на второе высшее, но прочёл мнение, что программистам академическое образование ни к чему. Хотел бы вкатиться в программирование всяческих микроконтроллеров и прочего. Но понимаю, что это будет валяться мёртвым грузом без самых минимальных навыков и знаний. Короче, ещё один запрос каких-то базовых курсов, учебников и т.д. Чтобы уже через полгода мой быдлокод работал . Наиболее интересны языки: С++ (Arduino) и VHLD/Verilog (ПЛИС)
1115 368137
>>68119
Нейтрального мнения об канале https://www.youtube.com/channel/UCXgs4exdtMpz4ccBZS3Yp4g
У меня только один вопрос - как он не заебался все это делать и снимать?
1116 368138
>>68131
Открыл предпоследнее видео, а там минут 45 про case, casex и casez. При этом ни слова о том что будет, если подать на вход сигналы с состояниями z и x. Ну да, кто ничего не умеет - тот идет работать в отдел стандартизации, а кто даже этого не умеет - тот идет учить.

>>68119

>С++ (Arduino)


Да уж, это сильно.
1117 368139
>>68137
Это эксгибиционизм.
1118 368144
>>68119

> Программирование


> Verilog

1119 368215
>>68138

>подать на вход


На вход чего?
1120 368216
>>68139
Я такая же херня.
case.png28 Кб, 374x618
1121 368227
>>68215
Очевидно что на вход case, casex и casez, т.е. в качестве того что в стандарте называется expression. Если применительно к видео, то на вход модуля Test, в котором набирался в этом видео код со всякими case, casex и casez.
Вот тебе пример. Что выведет в результате? И самое главное, какие из этого можно сделать выводы? Если в том видео такое разбиралось, то извиняюсь, значит недостаточно внимательно смотрел.
case2.png24 Кб, 404x629
1123 368327
>>68300
Нет, по моему это явно не то. Там ты подаешь на вход только комбинации из нулей и единиц. А я писал о том, что при использовании casex, при симуляции можно будет проглядеть появление неопределенных состояний на входе. То есть, при использовании casex, при симуляции может быть все хорошо, но на самом деле внутри будут неопределенные состояния, а это может вылезти уже при синтезе.
Вот на картинке немного более наглядный пример. Выведет

>case default


>casex 2'b00


>casez default


Из этого явно видно, что если при симуляции где-то внутри образуются неопределенные состояния, то casex их может замаскировать. Если уж объяснять различия кейсов, то этому эффекту нужно было уделить достаточно времени.
1124 368336
>>68327

>Там ты подаешь


Я - не он.

>при использовании casex, при симуляции можно будет проглядеть появление неопределенных состояний на входе


24:20
1125 368347
>>68336
Да, проглядел. Ну тогда почти нормально, только правильные выводы не сделаны. Обрати внимание на 41:30. На самом деле не нужен casex, а вовсе на casez. По крайней мере в синтезируемом коде casex вреден.
Хотя я тоже могу в чем-то ошибаться.
1126 368355
>>68347

>По крайней мере в синтезируемом коде casex вреден.


Почему? (предыдущий диалог не читал)
1127 368465
>>68347

> На самом деле не нужен casex, а вовсе на casez. По крайней мере в синтезируемом коде casex вреден.


Не совсем понял мысль, ну да ладно.
1129 368499
>>68471
Да, убедительно.

Бля, пиздец. Хуле так плохо? Как можно X в проводе воспринимать как "тебя не должно ебать, что здесь находится, расходитесь, здесь нечего смотреть"? Нахуй такое делать в симуляторе, если по физическому проводу подать такой сигнал физически невозможно? Я хотел придумать смишную шутку, сравнивая с чем-нибудь подобное поведение, но даже специально не смог придумать что-то более нелепое. Я всегда считал, что X как значение сигнала означает "неизвестно или явно не установлено, возможен любой вариант", и не предполагал, что может быть иначе.
1130 368567
Сорян, если не в тему, но есть вопрос. Мне нужно запилить на ПЛИС схему, которая как можно быстрее вычислит, в каком диапазоне находится двоичное число. Т.е. 13-ти битный входной диапазон нужно разбить на 32 поддиапазона и вычислить в каком из поддиапазонов находится входная комбинация. Мне в голову пока приходит только мысль о том, чтоб поставить 5-ти разрядный компаратор, который сравнит входной сигнал с 16-м диапазоном, если меньше, то сравниваем вход с 8-м, если больше, то с 25-м и т.д.
1131 368612
>>68567
Это не "как можно быстрее".

"Как можно быстрее" — это подать вход на 30 компараторов одновременно и вывести сигнал от компаратора, который показывает "не меньше", если следующий за ним показывает "меньше".

>Мне в голову пока приходит только мысль о том, чтоб поставить 5-ти разрядный компаратор


Почему пятиразрядный? Ты точно знаешь, что границы диапазонов у тебя определяются старшими 5 разрядами, а в младших 8 всегда нули? Что будешь делать, если диапазоны разбиты как 0-1, 2-3, ... , 60-61, 62-8191? У тебя границы-то вообще предполагаются жёстко заданными, или подаваемыми на схему в процессе работы?
1132 368812
Почоны, недавно на ЛОРе новость пробегала, что открыли какую-то там MIPS архитектуру, MIPSOpen чтоли. Теперь любой кот может свой ЦПУ замутить на ПЛИСе? Или как?
1133 368813
>>68812
Начинай фапать https://habr.com/ru/post/275215/
1134 368829
>>68812

>свой ЦПУ замутить на ПЛИСе


Будто раньше нельзя было. Даже в этом треде есть исходный код простенького процессора (150 строк на верилоге). Или ты про процессоры, на которых будет работать линукс? Так и такие, с открытым исходным кодом, уже довольно давно существуют.
1135 368952
>>68812
С добрым утром, молодой человек: https://en.wikipedia.org/wiki/Soft_microprocessor
1136 368994
>>68812
RISC-V. Сейчас основной дроч на формальную верификацию. Есть даже свободно-открытые ПО от сообщества гиков и FPGA-платы от Lattice с открыто-свободным битстримом. Не такое крутое, конечно, как у Altera или Xilinx, но зато швабодка.
image.png61 Кб, 869x610
Хуан Жэньсюнь 1137 368996
День добрый, мне нужно придумать преобразователь соотношения частот f1/f2 в двоичный код, что можете сказать об этой структурной схеме? В интернете я не смог найти примеры деления двух частот, и до конца не понимаю как мне делать схему, посоветуйте как реализировать это, надеюсь на вашу помощь
Если есть пример похожей электрической принципиальной дайте знать
1138 369010
>>68996
И в течении какого периода счётчики должны считать перед тем как поделить?
1139 369011
>>68996
Но зачем АЦП, если используешь как простой компаратор? И зачем тут ПЛИС?
1140 369014
>>69010
Без разницы, так как нужно соотношение частот
>>69011
Препод меня походу наебать решил и сказал что АЦП
1141 369016
>>69014
Данным способом с разницей, чем дольше - тем больше точность. Если у тебя каждый счётчик подсчитает по одному периоду какой будет результат?

Если эти частоты невысокие относительно тактовой, тогда можно подсчитать длительность одного периода каждого сигнала в единицах тактов тактовой частоты и после поделить.
1142 369181
>>68829
>>68952
>>68994
С добрым! Я просто вообще не в теме, поэтому подумал что это какая-то крутая новость, а так получается просто рекламная акция? А какого уровня нужна ПЛИС, чтобы сделать простенький ЦП (типа Z80 или STM32F103)? Какая получится производительность? Чтобы подключить внешнюю DRAM-память, понадобится отдельная ПЛИС? Чтобы сделать вывод изображения по LVDS / DPI (ноутбучные / мобильные панели) - для этого нужно будет задействовать ещё одну ПЛИС? Вобщем, что-то типа хобби-ПК хочется реализовать.
1143 369185
>>69181
Нет, все поместится в устаревший spartan6
1144 369195
>>69181

>Вобщем, что-то типа хобби-ПК хочется реализовать.


Парень, нахера оно тебе надо? Иди лучше в веб дезигн. Там и денег больше будет.
1145 369268
>>69181

>сделать простенький ЦП (типа Z80 или STM32F103


STM32F103 не самый простенький, надо сказать.
1146 369269
>>69268
cortex m3 нет же в открытом доступе. m1, кажется, есть
1147 369272
>>69181
Открытая лицензия RISC-V даёт возможность собирать абсолютно кастомный CPU. Швободные FPGA-платы дают возможность делать это относительно недорого, у себя дома, в железе, а не только в симуляторе. Формальная верификация и современные среды разработки позволяют автоматически проверять дизайн твоей архитектуры на соответствие формальным правилам синтеза, вписываемость её в установленные ограничения, отсутствие багов, что даёт возможность поманяфантазировать о развитии в недалёком будущем технологий костылирования железа до уровня костылирования ПО. Это очень круто для людей в теме.
Память и всяческие контроллеры ввода/вывода на FPGA-платах обычно присутствуют. Есть, конечно, любители паять это дело вручную.
1148 369462
>>69185
>>69268
>>69272
Понятно, благодарю.
fitimage.php.jpeg26 Кб, 500x500
1149 369663
Есть недорогая китайская девборда с отверстиями под разъемы с 2.54 шагом. Не могу решить, папу туда запаивать или маму.

Часть коннекторных падов поключена к плис скоростными дифлиниями и планируется подключать к борде что-то более-менее скоростное, типа hdmi.
180-degree-2-54mm-pitch-double-row.jpg640x640xz.jpg50 Кб, 640x640
1150 369667
1151 369702
Анон, поддерживают какие-либо инструменты формальной верификации 1'bX? Типа, мы задаём в assume, что при i_tvalid==0 |-> i_tdata=N'bXX...XX, и любой assert триггерится, когда проверяемое условие зависит от сигнала, зашкваренного 1'bX-ом?
1152 369726
>>69702
Да, Synopsys VC Formal поддерживает, называется это у них "X-Propagation Verification (FXP)" Сам не пробовал, денег нет таких.
1153 370567
>>16964
еуые
1154 370783
>>16943 (OP)
Подключил китайский usb blaster на stm32f103c8t6, поставил драйвера из quartus lite 18.1, а при открытии Tools/Programmer из квартуса ловлю BSOD .
Как быть?
1155 370784
>>70783
причём в CentOS7x64 в виртуалке всё нормально подхватилось, но мне не хочется каждый раз для прошивки запускать виртуалку.
1156 370811
>>70783
Переустанови ШИПДОШS
1157 370813
>>70783
Перепробовал кучу дров (от 16, 16.1, 19.1, для семёрки) - либо BSOD, либо квартус не видит бластера. Поставил таки в бубунту snandalone programmer и всё заработало.

>>70811

>Переустанови ШИПДОШS


Без гарантии, что бластер заработает, и потом ещё день ставить весь мой софт и всё настраивать. Спасибо, анон, ты гений.
1158 370817
>>70813
Может у тебя с пекой чего, попробуй на другой.
Магистратура электронщика 1159 371176
Здравствуйте, заканчиваю бакалавра по специальности " Мехатроника и Робототехника".
В процессе обучения сформировалось стойкое желание разрабатывать электронную аппаратуру, писать под неё программы (под этим я подразумеваю всякие микроконтроллеры, ПЛИСы и т.д.).
Так же хочется расширить знания по цифровой схемоте, методам изготовления микросхем, плат, различной периферии и т.д.
Итак, вопрос, какие направления магистратура и ВУЗы дают такие знания?
1160 371180
>>71176

>сформировалось стойкое желание разрабатывать электронную аппаратуру


К врачу, если само не пройдет.
1161 371182
>>71180

>пук

1162 371197
>>71176

>микроконтроллеры, ПЛИСы


Слишком разное
1163 371198
>>71176

> какие направления магистратура и ВУЗы дают такие знания?


Никакие, в вузах только устаревшая хуита.
1164 371200
>>71198
Я понимаю, но они же хоть что то знают?
1165 371201
>>71197
Хорошо, только ПЛИСы
1166 371204
>>71197
Хуевый будет специалист что-то делающий на FPGA, если не сможет написать простенькую программу на Си. Разное тут скорее "методы изготовления микросхем" и остальное. Да и то, это немного рассказывают для общего развития на всех смежных специальностях.

>>71198
Точно, все устарело. Математика, физика, РЦС, основы ЦОС и прочее. А еще в FPGA теперь без транзисторов наверное обходятся, потому что они тоже устарели.

>>71201
Для того чтобы быдлокодить всякую ерунду не требуется высшее образование.
1167 371205
>>71204

> Математика, физика, РЦС, основы ЦОС и прочее. А еще в FPGA теперь без транзисторов наверное обходятся, потому что они тоже устарели.


> инб4 в магистратуре учат, а не дают устаревшие лабы из 70х

1168 371206
>>71204

>Для того чтобы быдлокодить всякую ерунду не требуется высшее образование.


Я не хочу быдлокодить, поэтому и спрашиваю где можно поучиться?
1169 371207
>>71206
Если так ставить вопрос (пусть меня научат!), то нигде наверное. Думаю, что на любой специальности рассказывают много чего необходимого, весь вопрос только в том, что у тебя после этого в голове задержится.
1170 371211
>>71197
Может он хочет софтпроцессор и писать для него программы.
1171 371213
Нюфаг итт.
Хочу вкатиться в плис.
На руках Даймонд и плата.
С чего начать?
1172 371216
>>71213
Светодиодом помигай.
1173 371342
Антоны, кто-нибудь пользовался параллельной симуляцией с использованием флага -mc2 в QuestaSim? Не могу найти сетап гайда для этой опции (требует какую-то хитрую библиотеку и скрипт setup.sh в директории _mc2)
1174 371778
Кто-нибудь видел свободную реализацию подобного gpif cypress? Я понимаю, что там state machine, но хотелось бы поучиться на подробностях и нюансах.
1175 371780
>>71778

>свободную


открытую
1176 372000
Всем ку, тут есть такие, кто активно использует эту штуку?

https://cocotb.readthedocs.io/en/latest/introduction.html
1177 372068
>>72000
Говно без задач.
1178 372089
>>72068
поч? плюсики минусики какие есть?
1179 372171
>>72089
Минусики таковы, что как только ты захочешь применить эту вещь к чему-то более сложному, чем мигание светодиодом, окажется, что пердолинг растет по экспоненте в квадрате.
Плюсики там написаны (правда сомнительные): занимаешься пердолингом не на Систем Верилоге, а на Путоне.
1180 372466
>>71342
А Ментор уже может в параллельность?
Сам им пользовался только совсем давно в бесплатной версии из комплекта Quartus, сейчас на работе используем Cadence Xcelium, как раз в понедельник получили версию 19.03 и сегодня буду смотреть, как заставить его в параллельную симуляцию.
1181 372520
>>72466
Квеста на прыщах может. Но там танцы с бубном.
1182 372765
Поделитесь более-менее промышленной реализацией uart, которую используете в своих проектах?
1183 372787
>>72765
Каждый уважающий себя плисовод обязан сам себе запилить uart.
1184 372789
>>72787
Я пилил в универе, но сейчас не хочу изобретать велосипед.
1185 372790
>>72789
Ну раз пилил, значит уже изобрёл. Доведи до ума и радуйся.
1186 373149
1
1187 373218
>>72765
Чем тебя этот не устраивает? https://opencores.org/projects/uart2bus
1188 373219
>>73218
Для начала, его бы стоило спросить, чем его не устраивает UART из Quartus/Vivado.
1189 373302
>>73219
Ну например, что у кряктуса UART можно использовать только как корку для ниоса.
Мимо-другой-анон
1190 373308
>>73302
В смысле? У него же выведен Avalon ST (вроде, хотя, может, и MM), разве этого недостаточно? Или тебе нужен именно AXI или APB и чтобы без мостов?
1191 373436
>>73308
По-моему его нельзя инстанцировать в вакууме, гуи не позволяет, только как корку внутри Ниоса. Может из исходников получившейся сборки его можно выдернуть, но это такая себе ебля, можно у же и свой написать (в книге Pong Chu есть хороший пример)
1192 373772
Хочу захуйарить гигабитный езернет в дохуя медленных интерфейсов, вроде uart. Для начала пусть будет 32 низкоскоростных интерфейса. Как всё это архитектурно реализовать?

Это же возникает мультиплексор 32в1, не факт, что вообще что-то путное разведется.

Может бывают какие-то конвейерные мультиплексоры?
1193 373777
>>73772
Может начнешь с чего-то условно попроще?
Погугли поточные (потоковые) сети типа SDH(PDH) и элементарный поток E1. Там как раз что хочешь сделать. Осторожно, там ебаный и неиллюзорный дроч с синхронизацией между всеми узлами. А мне впадлу этим заниматься.
1194 373794
>>73777
Погуглил. Это же всего лишь протокол, там не сказано как его реализовать на FPGA
1195 373806
>>73772
Такое разрабатывают за деньги.
1196 373809
>>73772
Недавно понадобилось данные шириной 2880 бит переупаковть отдельными посылками по 32 бита и положить в FIFO.

Добавил простенький FSM, который обрабатывает ready/генерирует valid протокола AXI-Stream, и хилыховскую корку AXI Stream data width converter (320 байт → 4 байта, т.е. 90в1). Вообще не ебался, всё заработало сразу, из шины шириной 2880 бит делает 90 посылок по 32 бита вокруг пальца на глазах у всего мира как по нотам. Не смотрел, что там синтезируется, но, наверное, луты. Хуле на них смотреть? Советую AXI Stream использовать для твоей цели, много бесплатных корок для стандартных операций с ним (FIFO, переупаковка по ширине, clock domain crossing, пакетирование, маршрутизация, дублирование, объединение, etc).
1197 373810
А ещё недавно задача была почти один в один как у тебя, надо было с сенсора камеры принять 10 линий LVDS, объединить и отправить по более быстрому интерфейсу. Каждая линия передаёт по одному пикселю, требовалось сперва по отдельности десериализировать линию, потом собрать в один поток пикселей в порядке очереди и передать с некоторой степенью параллельности (4 пикселя на посылку). Тоже делал при помощи AXIS, там возникала сложность, что пиксели 10-битные, а AXIS работает побайтово. Забивал старшие биты нулями, переделывал в AXI Stream, переупаковывал по ширине при помощи готовой корки, выкидывал нули там, где они не нужны. Работает прекрасно.
1198 373812
>>73794
Упустил одну мелочь - в потоках Е1 у тебя постоянный поток говна, а не то густо, то пусто как в пакетных сетях Ethernet.
Для первичного разбора ситуации самое то и проще в реализации. Реально не ебу как там происходит первичная синхронизация чтобы поймать 0 слот относительно которого идет прием и разбор на подпотоки.
Тут тебе просто дан пример - что такое оборудование есть с бородатых времен. Привет цифровым АТС. Чего только в потоки E1 не пихали - и Ethernet, и rs232 (живьем видел) и много чего. Нехватает 64 килобит? Бери склеивай 2,3,4.. слотов читай как задание на реализацию для продвинутых.
Напоследок скажу что всякое потоковое оборудование (те же конечные мультиплексоры) обычно стоят как крыло от самолета, в отличии от металлолома под пакетные сети.
Так что твоя идея не нова, все давно реализовано, ищи и дан будет ответ.
1199 373814
>>73812
Как ты в этом контексте различаешь потоковое и пакетное?
1200 373820
>>73814

>Передаваемые по линии E1 данные организованы в кадры


Вообще не понимаю о чем он
1201 373836
>>73814
>>73820
Очень просто.
В Е1 - даже если нечего передавать - передаются нули. Там нет пауз или тишины в линии - всегда идет передача.
В пакетных сетях (тот же Ethernet) - данные передаются фреймами определенного формата и длины, между которыми есть промежутки (IPG) и длина фрейма разная - более-менее постоянная длина заголовка с адресами и переменной длины для данных. Нечего передавать - у тебя только link pulses на линии.
Из-за всех этих служебных полей у тебя образуется неслабый джиттер в выдаче данных, которого нет и он предсказуем и постоянен в поточных сетях. Для жесткого риалтайма - это фейл.
Для промышленности есть немного другой Ethernet с кучей костылей, в частности IEEE 1588, особые свичи допускающие кольца в сети (видел у бывшего Micrel).. Джиттер там никуда не девается, которого принципиально нет в поточных сетях, где задержка передачи стабильна и постоянна.
1202 373984
>>73836
cпасибо за ликбез
1203 374041
Обосрите меня нежно, закидав ссаными тряпками более-менее окольной информацией про максимальные токи ядра, pll и подобной периферии у Cyclone IV.
Altera говорит пиздуйте в Power Estimator, а смысл там смотреть данные для мигалки светодиодом? Данные для максимально тяжелой загрузки при использовании всей логики и триггеров на максимальной частоте оно не показывает.
1204 374511
Плисаны, допустимо ли внутри олвэйса сбрасывать сигнал по его же высокому уровню?

reg we;
always@(posege clk)
begin
if (event1) we <= 1;
if (we) we <= 0;
end

Я понимаю, что здесь лучше сделать детектор фронта, но дело происходит в здоровой стейт-машине и как бы мне не хотелось одним лишь детектором фронта не обойтись.
1205 374512
>>74511
Здесь вроде глитч образуется, не?
1206 374568
>>74511
В твоём варианте we будет перещёлкиваться каждый posedge clk, если event1 высок несколько тактов подряд. Хочешь, чтобы we длился ровно 1 такт — надо писать детектор фронта, хули поделать, жизнь — боль.

Алсо писать, как у тебя, допустимо, но выглядит как говно, сделай хотя бы if/else, чтобы два неблокирующих присваивания за одно событие одному регистру не происходили, такое невозможно в железе.

begin
if (we) we <= 0;
else if (event1) we <= 1;
end
1207 374569
Полноценный детектор фронта не сильно сложнее, кстати.

reg [1:0] we;
always@(posege clk)
begin
if (we[0]) we <= 2'b10;
else if (event1 && we == 2'b00) we <= 2'b01;
else we <= 2'b00;
end

Нужный тебе сигнал будет на we[0]
1208 374570
reg [1:0] we;
always@(posege clk)
begin
if (we[0]) we <= 2'b10;
else if (event1 && we == 2'b00) we <= 2'b01;
else if (!event1) we <= 2'b00;
end

быстрофикс
1209 374571
>>74568

>В твоём варианте we будет перещёлкиваться каждый posedge clk, если event1 высок несколько тактов подряд


Это да, но по event1 я перескочу на другое состояние одновременно со сбросом we.
1210 374572
>>74568
Бля, а че так нельзя?

reg [1:0] we;
wire trig = we == 2'b01;
always @(posedge clk)
we <= {we, event};
1211 374573
>>74571
Можно.
Я люблю, чтобы на выходе модуля был регистр, а не комбинационная схема, так clock domain crossing проще делать.
1212 374580
>>74573

>clock domain crossing


Часто приходится это делать? Из моей практики разве что на всякие внешние ресеты приходилось ставить синхронизатор. А шины данных через тактовые домены пробрасываю с помощью двуклоковых fifo/bram
1213 374582
>>74580

>А шины данных через тактовые домены пробрасываю с помощью двуклоковых fifo/bram


Нахуя, достаточно же одного триггера-флага.
1214 374587
>>74582
Мы с тобой об одном и том же говорим?
CDC-синхронизатор это устройство из двух и более последовательных регистров. Как с его помошью пробросить целую шину?
Если на каждый бит шины поставить по синхронизатору - то это так не заработает.
large.jpg58 Кб, 750x593
1215 374588
>>74580
Вспомнил историю, после которой я начал так делать со всеми модулями, для которых неизвестно, куда в будущем может уйти их выход. Там даже не было cdc.

Был один модуль, у которого на выходе была комбинационная логика — он брал значения из регистров, лутом вычислял результат и передавал наружу без защёлкивания. Был другой модуль, у которого в одном из подуровней был асинхронный резет:

always @(posedge clk, negedge aresetn)
if (!aresetn)
result <= 0;
else
result <= some_xynta;

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

А потом оказалось, что на более высоком уровне иерархии комбинационный сигнал с первого модуля проходит на асинхронный резет внутри второго. А комбинационная логика даёт валидный сигнал только в заданные моменты времени, а между ними она может болтаться как угодно. В итоге у меня резет срабатывал в каждом такте, хотя "валидное" значение всегда было 1. Я искал этот баг с бубном и жертвоприношениями несколько дней. После этого комбинационные выходы у меня вызывают инстинктивное отторжение, вроде психической травмы. Ну и асинхронные резеты тоже. Плюс вспомнились ранее прочитанные гайдлайны, где выходы рекомендовалось делать на регистрах, и пришло осознание, для чего оно так.
1216 374589
Но вообще CDC приходится делать довольно регулярно, потому что управляющая логика синхронна с клоком софт-процессора, а обработка сигналов — на какой-то своей, сколько потянет. Обычно тянет больше, чем микроблейз.
1217 374590
>>74588
Бывает, хуле.

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



Надо с этим совладать. А то как же например без комбинаторных выходов запилить AXI-интерфейс?
1218 374591
>>74590
Если такое приходится делать, я обычно вставляю AXI register slice. Но правило, что выходы должны быть на регистрах, я почерпнул как раз из гайдлайнов по AXI.
1219 374593
>>74587
Или ты меня не понял, или я тебя.
В одном тактовом домене сначала пишешь в регистр своё передаваемое слово, потом выставляешь флаг в триггере. В приёмном тактовом домене ждёшь пока флаг выставится и если выставится - значит можно читать с регистра передаваемое слово, оно там актуально и стабильно. Никаких двуклоковых fifo/bram тут не нужно.

>>74588

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


Это как так оказалось? Чей-то проёб, не иначе. Асинхронный сброс на то и асинхронный сброс что делается для сброса всей системы в исходное состояние, а значит внимание ему должно уделяться особое.
1220 374594
>>74593

>Чей-то проёб, не иначе.


Люди ошибаются, человеку свойственно ошибаться. Нет программ сложнее хеловорлда без багов, и железки сложнее мигалки светодиодом без багов тоже нет. Но не каждый день удаётся словить баг, который невозможно увидеть на ILA, потому что ILA пишет сигнал только в "правильные" моменты.
1221 374596
>>74593
Это будет работать при условии, что состояние на шине данных будет длительное не будет меняться во время синхронизации. Какой-то конфигурационный параметр передать можно, но поток данных таким образом эффективно не передать.
1222 374597
>>74596
Передать, только медленно. А ели нужна скорость, то - да.

>>74594

>Но не каждый день удаётся словить баг, который невозможно увидеть на ILA


Я взял за правило в начале имён асинхронных входов ставить букву а, что-то вроде aReset, что предотвращает от подобных косяков.

Тоже прохладную запилю.
У меня было два автомата, оба Мили. И вот они обменивались сигналами между собой. Казалось, что могло пойти не так? А на деле некоторые выходные сигналы одного автомата срывались в автогенерацию, т.е. начинали переключатся на какой-то высокой частоте, значительно выше тактовой, и вернуть в рабочее состояние можно было только перебросив питание. Я весь извёлся пока понял в чём дело. У автоматов Мили выходы зависят не только от состояний, но и от входов, и когда у них заводишь сигналы друг на друга, то возникает обратная связь, т.е. петля, через их комбинационные схемы, что и приводило к таким эффектам. Дня 4 убил на поиски проблемы.
1223 374599
>>74597
Это, по ходу, как раз причина, почему в гайдлайнах AXI пишут про регистры на выходах. Я перезагуглил, там не написано, что регистры прям на выходах должны быть, но написано, что от входов до выходов не должно быть чисто комбинационных путей. Ну типа, если тебе слейв выдал ready==0, хочется ему сразу же ответить valid==0, без защёлкивания. Вот только если два подобным образом написанных модуля включатся друг в друга, они могут уйти в автогенерацию.
1224 374600
Плисаны, нужна схема, которая выдает айдишники допустим в диапазоне от 0 до 1024. После использования айди возвращаются в рандомном порядке для последующего использования. Что-то туплю, как это запилить?
1225 374603
>>74600
Насколько строгие требования к рандомности? Криптографические?
1226 374604
>>74603
Можно по порядку, я так понимаю можно отдать по счетчику, а когда счетчик закончится гонять по кругу возвращенные ID, но вот что делать если какой-то из id не вернули я не могу придумать.
1227 374605
>>74603
А, понял. Это они возвращаются рандомно. Я б сделал 1024-битный массив "свободно-занято" и несколько каскадов приоритетных декодеров, дающих на выходе номер наименьшего незанятого бита.
1228 374606

>но вот что делать если какой-то из id не вернули я не могу придумать.


Таймаут делать надо. Если не хочется делать 1024 таймера, то можно сделать группу таймеров, которые будут по очереди проверять освобождение айдишников внутри своей группы. "переходим к занятому биту — если он висит в течение заданного промеждутка, сбрасываем — если он пометился как возвращённый за время наблюдения, переходим к следующему занятому". Если айдишники в нормальном режиме освобождаются быстро, то один счётчик может проверять довольно большую группу и зависнуть только на реально потерянном.
1229 374629
>>74599
А можешь скинуть название этого гайдлайна?
1230 374635
>>74629
ug761 (Xilinx AXI Reference Guide)
1231 374636
>>74635
Спасибо!
1232 374642
>>74593

>Асинхронный сброс на то и асинхронный сброс что делается для сброса всей системы в исходное состояние


И как ты поступаешь, если у тебя есть две ситуации сброса, начальный и принудительный в случае появления ошибки? Только не говори, что делаешь два разных ресета, наверняка же один используешь для всех целей. Отсюда такие баги и лезут. По крайней мере пока в первый раз не обжёгся, а потом-то уже конечно дуешь и на воду.
1233 374643
Анонче, поясни за всю хуйню.
Учу Verilog, и у меня появились два вопроса:
1) Почему Synplify pro, не может нормально подсказать, где ошибка? К примеру, сейчас полчаса ебал мозг на простейшем примере, пока не нашёл опечатку в названии передаваемого модулю значения. Ладно бы это было просто что-то не то, так такой переменной у меня не существует вообще.
В чем проблема сделать так, чтобы выдавались ворнинги/ошибки на неизвестные аргументы, как это сделано в GCC?
2) Встроенный в среду текстовый редактор абсолютно не умеет в автокомплит, подсветку синтаксиса (всё что не касается ключевых слов) и прочее. Такое вижу не только в IDE которой пользуюсь сейчас, но видел и в относительно свежих Квартусах.
Опять же, почему так? И чем все в таком случае пользуются? Явно же не пишут во встроенных редакторах. Notepad++ или Sublime с плагинами? В нормальную подсветку синтаксиса кажется могут, но они вроде не очень умные, по источникам из других файлов ходить не могут, и прочее. Тоже не очень удобно.
1234 374644
>>74643

>пока не нашёл опечатку в названии передаваемого модулю значения.


Для необъявленного идентификатора автоматом создаётся новый объект типа wire. В ворнингах это есть. Разумеется, в 99.99999% это означает, что ты где-то опечатался. Это норма.жпг, меня сначала тоже бесило, потом привык. Перестаёт быть проблемой, когда знаешь, куда в ворнинги смотреть.
1235 374645
>>74644
У меня даже ворнинга не было на это ну или я не увидел, но он выдал ворнинги только на то что пин не использован в модуле.
1236 374666
>>74643

>Явно же не пишут во встроенных редакторах.


Именно так и делают.
1237 374667
>>74642

>И как ты поступаешь, если у тебя есть две ситуации сброса, начальный и принудительный в случае появления ошибки?


Сбрасывать схемой сброса, у которой выход триггерный. Схема даёт импульс сброса на старте системы и в процессе работы по команде.
1238 374669
>>74644

>Разумеется, в 99.99999% это означает, что ты где-то опечатался.


А оставшийся 0.00001% — это ты решил проверить "чё, правда создаётся?" — после чего забил на эту вредную хуйню навсегда.
1239 374689
Наверное, немного нерелетивный вопрос, но как на техническом уровне осуществляется рандомайзер в разных архитектурах? Я совсем дурак нешарящий, но предполагаю, что банальным выходом из метастабильности. Вроде в тех же х86 для программного рандома используется алушное деление с остатком, однако вполне возможно это обычный псевдорандом. Вопрос навеян вот этим >>74600
Алсо почему для плисов до сих пор пишут на verilog/vhdl и даже на "блочных" языках? Ведь есть же более симпотичный SV.
1240 374693
>>74689
https://en.wikipedia.org/wiki/Hardware_random_number_generator#Using_observed_events
Что касается SV, то его использование ограничено поддержкой в средствах разработки. Какой-нибудь хипстерский симулятор его поддержит, а синтезатор внутри вивадо — нет.
1241 374694
>>74643

> И чем все в таком случае пользуются?


https://www.veripool.org/wiki/verilog-mode
1242 374982
>>74693
Синтезаторы внутри Vivado, Quartus, Diamond поддерживают SystemVerilog
Бесплатная версия ModelSim тоже поддерживает, кроме кавереджей, ассерешенов и пары прочих ништяков.
Хочешь ништяки? Никто не мешает тебе стянуть QuestaSim с электроникса.
1243 375004
>>74982

>стянуть QuestaSim с электроникса


И как это сделать?
1244 375005
>>74982
Вот только стоит попробовать с этим связаться, и понимаешь, что лучше было и не связываться.

https://forums.xilinx.com/t5/Synthesis/System-Verilog-support-in-Vivado/td-p/801873
1245 375009
>>75005

>‎10-20-2017


Скажи честно, ты ебан?
1246 375012
>>75009
Сижу в вивадо 2017.4 потому что более новых поломана функциональность IP-корки, которая мне нужна. Так что иди нахуй со свои подходом уровня арчешкольников.
1247 375017
Ебать цены.
https://plis2.ru/training.html
1248 375018
>>75017
Ты же потом будешь по 300000кккк/пс заколачивать. Считаю ваще божеской ценой за курс.
1249 375019
>>75012

>Сижу в вивадо 2017.4 потому что более новых поломана функциональность IP-корки, которая мне нужна.


Знаю я одного такого чела. Только он в планэхеде сидит.
1250 375021
>>75019
Ну а я знаю чела, который сидит в 2019.1 и делает только мигалки светодиодом, дальше что?
1251 375024
>>75021
Да ничего. Рано или поздно индусы таки впилят полную поддержку SV, пусть в Виваде 2022, а ты как сидел на 2017.4 так и будешь сидеть, потому что КОРКА СЛОМАЛАСЬ.
1252 375025
>>75024
Вот только работать надо, задача должна быть решена, это требование №0. Перейти на системверилог в списке приоритетов стоит несколько после. Поломанность новых версий я проверяю с 2017 года регулярно.
1253 375027
>>75025

>Вот только работать надо, задача должна быть решена, это требование №0.


Да ктож спорит. Поэтому мой знакомый чел и сидит в планэхеде.
1254 375028
>>75024
Олдфаг в треде. Сижу в Квартусе 9.1.
1255 375030
>>75028

>раздался голос со стороны альтеропараши

1256 375032
>>75030

>ксайлинксопетух закукарекал за место авроры

1558976980708-b.jpg54 Кб, 453x599
1257 375036
>>75004

>2019


>не иметь доступа на FTP

1258 375071
>>75004
Регаешься на електрониксе, пишешь пару десятков постов (желательно информативных), просишь добавить тебя в свои и получаешь доступ к ФТП.
1259 375154
>>75071

>просишь добавить тебя в свои


Кого просишь?
1260 375160
>>75154
Там на форуме раздел есть, который так и называется - "Доступ в свои".
1261 375173
>>75036
>>75071

>и получаешь доступ к ФТП


Или не получаешь.

Все вы тут такие охуенно умные, говорите, как будто прямо каждому хоть как-то показавшему адекватность будут давать доступ в свои. Люди за 40 лет со стажем на электрониксе в 10 лет с сотнями постов, помогавшие другим, часто туда не получают доступ. Либо отвечают модератору на дополнительные вопросы вроде конкретного названия специальности в дипломе, места работы, места жительства. Никто не мешает модератору задавать тебе эти вопросы - отвечаешь на них ты исключительно добровольно. Ты не хочешь отвечать? Ну а модератор не хочет тебя добавлять.
И, одновременно с этим, часто доступ туда получают двадцатилетние студенты, ещё не имеющие даже диплома бакалавра и занимающиеся, разве что, своими проектами и имеющие ~50 постов на форуме.
Всё зависит от рассматривающего заявку модератора и того, что у него в голове на этот момент. Если понравишься - может добавить. Не понравишься - тебя проигнорируют.
1262 375174
>>75173
Есть конкретный пример 40 летнего чела с 10 летним стажем, которому доступ не дали? Мне аж интересно стало, каким далбичем надо быть, чтобы тебя отфутболили.
1263 375175
>>75160
ясн
1264 375176
>>75175
Хуясн. Посмотри последние заявки и покажи, кому там отказали.
1265 375178
>>75176
Ты чё буянишь, я вообще не приделах.
1266 375253
Аноны, мне нужно вычислять смещение в памяти путём умножения входного числа на константу. Если я поставлю DSP48 для этого дела это нормально будет или bad practice? ну типа DSP48 в задачах ЦОС на вес золота, а я его для такой хуйни ставлю(хотя у меня в плисине не будет ЦОС)

Как вообще умножение на логике пилят?
1267 375256
>>75253
Поставь знак умножения, хуле
1268 375257
>>75253
Обычно смещения кратны степени двойки, можно обойтись логическим сдвигом
1269 375258
>>75257
В моём случае так не получится( Смещение кратно 5 и 7

>>75256
И сколько каскадов лутов я получу? на 150 МГц взлетит?
1270 375260
>>75258
Ебани алгоритм умножения в столбик.
1271 375365
>>75253
DSP48 и предназначены для умножения входного числа на константу, хуле. Так 99% фильтров работают, гонятся данные сквозь цепочку MAC, а те их на константы умножают, соответствующие форме импульсной характеристики. Так что ставь, не ссы.

Рекомендованный practice, правда, действительно использовать звёздочку и дать инструментам сделать inference блока DSP48. Если они будут тупить и инферить каскады лутов, можно добавить куда надо атрибут ( use_dsp = "yes" ), он охуенно работает, инферит в DSP48 даже аллаха. Не забудь до и после умножения пайплайновые регистры воткнуть, они будут правильно назначены на внутренние регистры DSP48, максимальная частота вырастет.
1272 375566
Я тут с платиной, но на итт возможно последняя надежда.
Что нужно для вкота? Моя более-менее понимат цифровые примитивы, комбинационную логику, триггеры, fsm, uart etc. Как устроено это ваше fpga - туманно, но представляю. Асло как описывать железяки на hdl, синтез и симуляция - тоже в какой-то степени разобрался, за исключением разве что верификации.
Второе. Достаточно скачать условный лайт квартуса и кодить на hdl, и уже после синтеза подбирать подходящую борду под проект, или необходима сама плис? Если последний вариант, что тогда брать для моргания диодом?
Чем бы заняться с плис (или без) для лучшей практики на подобии >>16964?
1273 375576
>>75566
Возьми борду.
1274 375600
>>75566

>Достаточно скачать условный лайт квартуса


Vivado
1275 375610
>>75566

> Что нужно для вкота?


Самое главное, что нужно для вкота - задача, которую требуется решить. Остальное - этапы ее решения, не более.
1276 375708
>>75610

>Самое главное, что нужно для вкота - задача, которую требуется решить. Остальное - этапы ее решения, не более.


Люто поддвачиваю. Без цели или задачи зайдешь в тупик.
Рискуешь притянуть к себе столько всего, что можно магазин открывать или засинтезировать пентиум (не знаю, влезет не влезет в 100K-200K LE) или повесить на стену как картину.
У меня вырисовывается на чем можно потренироваться - сделать эмулятор параллельной NOR памяти, содержимое которой хранится в DDR2 памяти и как-то снаружи заливается/читается. Хорошо так пришлось поебстись что бы используя 2 банка (Altera) подключить (в теории) DDR2 память 64M16 x2 и синтезировать IP CORE DDR2.
1277 376199
>>16943 (OP)
Посоветуйте отладочную плату artix-7 для вката. Где-то до 20к рублей.
Заранее спасибо.
1278 376211
>>76199

>artix-7


Почему сразу даешь четкое название желаемого камня? Чем он так зацепил? Явно это должно быть на плате, но что именно - не говорится.
Почему сел на стул с хуями от Xilinx, а не от Altera или Lattice?
1279 376223
>>76211
Потому что в альтеры уже умею ну почти. На артиксах уже планируются некоторые проекты, да и ac-701 есть, но домой ее лень тащить. Поэтому хотелось бы прикупить какую-нибудь дешёвую платку для ковыряния.
1280 376225
>>76223
https://www.aliexpress.com/item/33031494563.html
https://www.aliexpress.com/item/1000006630084.html
Такой бомжевский вариант? Их платка с EP4CE15 вполне себе работает на учебных примерах.
С Zynq работал? Есть что про него для выкатывающихся тупых и безмозглых амеб?
1281 376227
>>76225
кек, с памятью дешевле
1282 376231
>>76225

> Zynq


Нет ещё, но возможно тоже придется.

Спасибо за варианты, но мне даже обычные товары с али не всегда доходят, но попробовать можно.
xc7a.png68 Кб, 1486x738
1283 376236
>>76227
Ни ешь, подумой!
У них разница по логической емкости в 3 раза.
Али определенно рвет шаблоны. Вот живой пример >>62929 - детально не гонял если че - 4 циклон на 115К LE. Вся платка в районе 100$, включая планку памяти. Простенький циклон 4 на 15K LE - меньше 20$.
У одних из одного из оффициалов ЭФО коммерческая 4CE115 стоит около 335$. Как так то? Страшно сказать сколько стоят обосранные Flex10K 70$. Нашлась задачка для флексов где они будут жить в окружении родных 5В.

>>76231
5й циклон не зашел - хуй проссышь. Про Zynq хоть мануал есть и здесь частенько пиарят какую-то шину AXI - наверное проще будет выкатиться на мозгах от antminer.
1284 376243
>>76211

>Почему сел на стул с хуями от Xilinx


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

>какую-то шину AXI


Общепринятый стандарт, вообще. Который используется везде. В отличие от маргинального Avalon.
1285 376245
>>76243

>везде


Это где?
1286 376252
1
1287 376356
>>76225

> https://www.aliexpress.com/item/1000006630084.html


На эту плату жаловались, что кристалл слишком маленький:

>DDR3 контроллер занимает ~40% кристалла. Простенький дизайн из МикроБлейза, DDR3, EthernetMAC, QSPI и UART занял 90% кристалла. А так все хорошо



>>76236

> Али определенно рвет шаблоны. Вот живой пример >>62929 - детально не гонял если че - 4 циклон на 115К LE. Вся платка в районе 100$, включая планку памяти. Простенький циклон 4 на 15K LE - меньше 20$.


> У одних из одного из оффициалов ЭФО коммерческая 4CE115 стоит около 335$. Как так то?


У этого же продавца на али плата с Kintex-7 стоит раз в пять дешевле, чем голый чип на диджикее: https://www.aliexpress.com/item/32907109444.html Я так подозреваю (потому как у него ассортимент «то густо, то пусто» и документация напоминает незабвенную инструкцию к шоаррской лисе), что это чья-то подработка: паяют и продают оставшееся после основного проекта.
1288 376367
>>76356

>>DDR3 контроллер занимает ~40% кристалла.


Почему в spartan6 slx16 он занимает около 5% cells, а тут 40k?
1289 376368
1290 376384
Читаю vol.verilog.com. И нихуя не пойму, что это значит?

а) assign #10 x = f(y);
б) assign #(5,10) x = a ? b : c;

А конкретно не понимаю, что означает решетка и какое-то число рядом с ней? Я думал, что решеткой задаётся какой-то параметр, но чот я уже не уверен.

Алсо, задача нескольких параметров перечислением не совсем понял как работает. Если я укажу таким же образом два параметра, когда в инстанциируемом модуле их пять, что произойдёт? Оставшимся трём просто присвоится дефолтное для них значение которое указано в объявлении параметра в модуле??
1291 376386
>>76384
Это задержки. В первом случае единая задержка, во втором — раздельно для фронтов и срезов. Не задавай ничего перечислением, вообще не используй его и забудь. Это типа оператора goto, в языке есть, но considered harmful.
1292 376389
>>76386
Не уверен что ты прав по поводу фронтов и срезов.
Я сейчас проходил тест, так понял, что второе (а именно #() шарп и скобки), означает задание параметров перечислением. А первое судя по всему да, задержки.
Только не понял, как эти задержки применять (точнее, где можно и где нельзя).
1293 376391
>>76389

>Не уверен что ты прав по поводу фронтов и срезов.


Ну ты ещё попизди мне тут.

>Только не понял, как эти задержки применять (точнее, где можно и где нельзя).


В симуляциях можно. При написании модулей, которые будут реализовываться в ПЛИС ("синтезируемого кода") нельзя.
1294 376393
>>76389

> #() шарп и скобки), означает задание параметров


Это в случае создания экземпляра модуля
https://youtu.be/Y9sPacLyYCI?t=1095

, а в твоём случае это как раз задержки.
1295 376396
>>76367
Кароч, я в курсе, что у spartan6 встроенный контроллер (два) ddr.

Да вы гоните, что можно собрать контроллер ddr3 на логических ячейках. На какой макс частоте он заведется?
1296 376400
>>76391

>В симуляциях можно. При написании модулей, которые будут реализовываться в ПЛИС ("синтезируемого кода") нельзя.


Эт я понимаю. Не понимаю синтаксически где нельзя ставить.
>>76393
Ну и хули они не поясняют тогда? Официальный же учебник, ёбаный в рот
1297 376405
>>76400

>Эт я понимаю. Не понимаю синтаксически где нельзя ставить.


Ставиться они могут везде, где ты делаешь присваивания.
На практике имеет смысл ставить их только внутри блоков initial и forever, в которых ты описываешь сигналы, которыми ты тестируешь свой модуль. Типа:

reg clk, clken, reset;

counter counter_inst (
.clk(clk),
.clken(clken),
.reset(reset)
);

initial begin
clk = 1;
forever #5 clk = !clk;
end

initial begin
reset <= 0;
clken <= 0;
#10 reset <= 1;
#10 reset <= 0;
#10 clken <= 1;
end

Потом, когда углубишься в продвинутое тестирование, может, ещё какие-нибудь варианты придумаешь, но это сильно потом.
1297 376405
>>76400

>Эт я понимаю. Не понимаю синтаксически где нельзя ставить.


Ставиться они могут везде, где ты делаешь присваивания.
На практике имеет смысл ставить их только внутри блоков initial и forever, в которых ты описываешь сигналы, которыми ты тестируешь свой модуль. Типа:

reg clk, clken, reset;

counter counter_inst (
.clk(clk),
.clken(clken),
.reset(reset)
);

initial begin
clk = 1;
forever #5 clk = !clk;
end

initial begin
reset <= 0;
clken <= 0;
#10 reset <= 1;
#10 reset <= 0;
#10 clken <= 1;
end

Потом, когда углубишься в продвинутое тестирование, может, ещё какие-нибудь варианты придумаешь, но это сильно потом.
1298 376432
>>76405
Ок, я тебя понял. Единственное, а учебнике есть конструкции где задержка находится справа, а тебя такого примера применения нет бессмысленно?

Что такое forever? В учебнике про него пока ничего не было, Я, правда, прошёл пока только первую главу.
1299 376434
>>76432
Ты зря, мне кажется, начал вкот со справочника по синтаксису HDL вместо учебника по цифровому дизайну (с примерами на HDL). Большая часть сахара, которую ты вызубришь, будем лежать мёртвым грузом, пока не забудется, а для решения задач ты будешь использовать лишь небольшую часть, наиболее удобную под твои задачи. Я задержки распространения (там, где она находится справа) на практике не использовал, это, по-моему, для ASIC-разработчиков, которым надо время распространения сигнала по линиям моделировать. А для плисов тул автоматом разместит всё так, что задержки влезут между тактами, либо скажет "не могу разместить твою схему, переделывай".
1300 376441
>>76434
Мне на курсах скинули мануал по VHDL и мануал по Verilog. Я думаю там и правда будет та часть, которая только для плисов ибо курсы будут от производителя плисов, но для общего понимания языка, думаю, будет не лишне понять, что вообще он умеет.
По онлайн примерам вообще пиздец какой-то, у меня эти огороды даже не всегда заводятся.
1301 376453
>>76245
Нам в универе говорили, что альтера практически нигде не используется.
>>76405
Сейчас бы верилог использовать.
>>76434

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


Я замечал, что обычно принято изучать все основные конструкции языка, а потом переходить к рассмотрению уже того, какое подмножество является синтезируемым. Но так да, начинать нужно со схемотехники и черчения схем на бумаге с их просчётом.
1302 376455
>>76441

>будет не лишне понять, что вообще он умее


Тогда че мелочиться? Открывай стандарт и ебош.
1303 376456
>>76453

>в универе говорили, что альтера практически нигде не используется


>Сейчас бы верилог использовать.


Прям комбо. Расскажи, че за совковый универ?
1304 376457
>>76455
Мне сказали впитывать vol.verilog.com - я впитываю vol.verilog.com
Чо те не нравится? Откуда мы знаем, какие знания от меня ожидают, я же не у тебя корки буду получать.
anime4.jpg313 Кб, 800x881
1305 376459
>>76453
Я уже слышал всё, что ты хотел сказать про sv, и уже отвечал тебе выше по треду. Давай ты вместо того, чтобы мозги впустую ебать, будешь лучше свои советы давать с использованием sv? Количество мозгоебли упадёт, качество контента в треде вырастет, сплошной выигрыш.
1306 376535
>>76453

>Нам в универе говорили, что альтера практически нигде не используется.


У вас в универе ангажированные преподы.

>Сейчас бы верилог использовать.


Ой, ВХДЛ-щик закукарекал.

>Но так да, начинать нужно со схемотехники и черчения схем на бумаге с их просчётом.


А вот тут неистово плисичую.

>>76441
Я тебе уже кинул ссылку на курс >>76393 , очень годный, для начинающих самое оно.
1307 376583
>>76535
Я прекрасно понимаю что он вроде бы и годный я его начинал смотреть, но я пока буду колоться и жрать кактус. Мне так легче воспринимать.
А теперь, если ты не против, я бы попросил помочь мне с кактусом. А именно пикрил. Почему в конце задержка 15, а не 5? Просто опечатка?
image.png16 Кб, 538x337
1308 376584
Пик отвалился
1309 376613
>>76583

>Почему в конце задержка 15, а не 5?


Это не задержка на картинке, а момент времени на временной шкале. То есть не "произойдёт через 15 квантов времени", а "произойдёт на 15-м кванте времени от старта симуляции". На 10-м кванте поменяется значение r2, на 15-м кванте оно дойдёт до w1, т.к. w1 тупит 5 квантов.
1310 376629
>>76613
Понял. Странно что сразу не сообразил. Логично, учитывая что они начинают оба сразу действовать.
Ещё вопрос тогда по ней.
Если я правильно соображаю, w2 имеет на шине задержку #5, так же как и w1. Assign это не процедурная операция, тогда почему w2 срабатывает после w1? Или он всё же параллельно срабатывает, и картинка не то имела ввиду, за что я зацепился?
1311 376632
>>76629
Картинку дегенерат какой-то рисовал. Там в двух блоках показан квант времени #5, но блоки идут один за другим.
1312 376641
>>76629

>картинка не то имела ввиду


Ты бы лучше в каком-нибудь modelsim-e моделировал, нагляднее было бы.
1566649305598-b.gif825 Кб, 344x498
1313 376651
>>76641

>2019


>modelsim

1314 376652
>>76651
Есть что-то лучше?
hinatayukariyuyushikidrawnbyokayparium312c58f5312e247969e78[...].jpg493 Кб, 830x1433
1315 376659
>>76652
Xcelium. А вообще, Альтиум вот-вот собирается что-то выкатить. Альтиум Дизайнер у них няшный (а не как токсичный ментор), надеюсь, что и симулятор тоже будет.
1316 376660
+1
1317 376684
>>76659

>Xcelium.


И че в нем есть, кроме многоядерности (которая есть в квесте)?
x.png15 Кб, 780x127
1318 377153
Ёбаная скотоублюдская вивада, это же работало в предыдущей версии, какого хуя они это вырезали? Теперь что, две версии кода писать, с иксами для тестирования и без иксов для синтеза? Охуенное тестирование выйдет, 10/10 просто.
1319 377227
>>76386

>Это типа оператора goto, в языке есть, но considered harmful.


Блин, а я в своих тестах повсеместно использую задержки. >>76405

>


>initial begin


>reset <= 0;


>clken <= 0;


>#10 reset <= 1;


>#10 reset <= 0;


>#10 clken <= 1;


>end



Вот так в тестах получается лучше не писать? (если что-то более сложное, чем передёрнуть ресеты)
Или я тебя неправильно понял?
1320 377237
>>77227
Это было про подключение модулей перечислением.
Типа когда ты модуль подключаешь как

counter counter_inst (clk, clken, reset, out_data);

вместо

counter counter_inst (
.clk(clk),
.clken(clken),
.reset(reset),
.out_data(out_data)
);
2019-09-0415-20-56.png63 Кб, 633x487
1321 377241
>>77237
В некоторых случаях удобно перечислять. Но я никогда не использую этот метод.
1322 377244
>>77241
Из какой pdf эта картинка?
1323 377245
>>77237
Закончил я этот курс vol.verilog.com
Ну хз, я пока вреда именно подключения перечислением не увидел (на малом количестве соединений, конечно же).
Меня там смущает скорее не неименуемое подключение, сколько возможность задавать параметры перечислением. Вот это какой-то баттхёрт.

>>76384-кун

Алсо дико понравились вставки из разряда "Ну эта функция языка работает, хотя работать не должна", или "Из-за особенностей самой первой реализации, данная вещь работает так как работает и никак иначе, хоть мы и знаем, что это неудобно"
"В отличие от других языков, например Си, Верилог не поддерживает конструкцию и++, вместо этого необходимо писать и = и + 1" и даже проверочный вопрос далее такой встречается.
Охуенно конечно. Не то что бы это пиздец критично, но и не то что бы имплементировать инкремент в верилоге выглядит дохуя сложной задачей.
1324 377254
>>77244
Стандарт verilog-2001
1325 377256
>>77245

>пока вреда именно подключения перечислением не увидел


Есть большой шанс перепутать порты.
1326 377258
>>77245

>"В отличие от других языков, например Си, Верилог не поддерживает конструкцию и++, вместо этого необходимо писать и = и + 1" и даже проверочный вопрос далее такой встречается.


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



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

и то и то пофиксили в SV
1327 377262
>>77256
Ну когда у тебя до 4х портов в модуле, не так критично. А в курсе больше и не было. Я же говорю, ПОКА не увидел.

>>77258
Да, тоже не понял фишки с массивами.
Сейчас перешёл к изучению VHDL'а. Есть какой-нибудь подобный онлайн-курс?
1328 377267
>>77262
А когда 50+ портов да еще этот модуль постоянно приходится допиливать ещё как критично
1329 377268
>>77262
Алсо зачем ты решил вкатиться в FPGA? С твоим энтузиазмом лучше в программирование уйти, а в этом болоте рано или поздно ты разочаруешься в финансовом плане.
1330 377355
Есть ли возможно в квартусе сгенерить времянку всех сигналов готового проекта?
1331 377390
>>77355
Что такое времянка всех сигналов?
1332 377393
>>77390
Временная диаграмма сигналов.
Типа как в вейвформе, только сразу для всего синтезированного проекта.
1333 377400
>>77393
Она зависит от того что ты подашь на входы, т.е. зависит от входных последовательностей. Откуда квартусу знать что ты в неё хочешь подать?
1334 377406
>>77400
Я слышал в новом Квартусе вернули симуляцию, это так?
1335 377534
>>76456

>совковый


Лол, нет.
МИФИ, вообще-то.
>>76535

>Ой, ВХДЛ-щик закукарекал.


Потому что использовать VHDL правильно.
Verilog мало кто даже нормально поддерживает.
Screenshot20190907172234org.telegram.messenger.jpg534 Кб, 1080x2340
1336 377542
>>77534

>Verilog мало кто даже нормально поддерживает


Где? В твоём совковом МИФИ?
1337 377553
Есть какое-нибудь готовое решение на 14bit serdes между двумя плисами, без передачи клока отдельным каналом?
1338 377570
>>77542
В том же ISE. Ты сам-то свой verilog пробовал компилить?
1339 377572
>>77570
Verilog прекрасно компилится в ISE. У меня есть подозрение, что ты не различаешь Verilog и System Verilog.
1340 377660
>>77355
Квартус не знаю, но в новых версиях выпилили симулятор, только через сторонний можно это сделать. Попробуй икарус или моделсим.
1341 377661
>>77553
Какая ПЛИСина?
У Xilinx можно Aurora протянуть.
1342 377680
>>77661
Cyclone iv и stratix iii.
1343 377682
>>77680
Про интеловские ядра не знаю, но по идее должен быть какой-то аналог авроры.
А что ты там пилишь?
1344 377691
>>77682
ЦОС, а конкретно передача по одной линии lvds кучи данных.
1345 377693
>>77691
Какая требуется пропускная способность? gtx-трансиверы будешь задействовать?
1346 377694
>>77693
100мбит/с.
Передача уже реализована, но очень ебано и по информационно-зависимому чем больше единиц, тем дольше передача каналу. Хочу попробовать избавиться от этого.
Про gtx не знаю даже, я просто самоучка.
1347 377695
>>77694

>100мбит/с


Это можно обычным serdes принять. Делаешь самосинхронизирующуюся кодировку (манчестерское кодирование) с одной стороны, с другой — оверсемплинг (пусть 400мбит/с), с которым можно в пределах некоторого рассинхрона определить, оставался ли сигнал неизменным дольше пары тактов или изменился за меньше чем пару тактов.
1348 377696
>>77695

> пусть 400мбит/с


А если tx 100MHz, а rx 200MHz максимум? Должно заработать? Не охуею ли от рассинхрона?
1349 377697
>>77696
Охуеешь, потому что 100MHz в манчестерском коде фактически означает 200MHz (потому что на каждый символ передаются два значения, дающие либо фронт, либо срез), и для их приёма с оверсемплингом нужно 400MHz. А без манчестерского кодирования ты не определишь, куда синхронизироваться. Тебе не похуй ли, сколько мегагерц? Не тебе ж на них шататься, а плисине, а плисине похуй, она железная.
1350 377699
>>77697
Наши местные плисоведы почему-то боятся частот выше 100МГц, дескать у них все по пизде сразу идёт.
1351 377701
>>77699
Зато прикинь, если заработает, как утрёшь нос своим дидам?
И в резюмешечке напишешь, что работал с 400MHz
1352 377704
https://pastebin.com/R6apL1fZ

Если я таким макаром распарсю UDP и IP заголовки это вообще законно? Меня не расстреляют?
1353 377706
>>77704
Тебе LE жалко или что?
1354 377707
>>77704
Или лучше запилить сдвиговый регистр и парсить нужные мне поля после заполнения?
1355 377708
>>77706
Не жалко. У меня комплексы по поводу того, что мою писанину назовут гвоном если на нее посмотрят
1356 377709
>>77708
Всегда найдется тот, кто обзовет твою писанину говном, но свою писанину почему-то показывать никому не хочет.
1357 377711
>>77701
Проиграл.
А вообще, это наверное из-за того, что они не трассируют линии? Где вообще почитать про оптимизацию на высоких частотах?
1358 377714
>>77711
Аппноты от производителя плисины почитай.

У них обычно есть 1) референс-дизайны для последовательных интерфейсов с использованием блоков serdes и 2) гайдлайны по разводке дифференциальных линий на платах.

В идеале, тем и другим должны заниматься разные люди, но мы же в рашке, так что один студент обычно тянет лямку за весь пьющий чаи отдел.
1359 377715
>>77714

> один студент обычно тянет лямку за весь пьющий чаи отдел


Знакомо. Я ещё схемотой и свч занимаюсь.
1360 377716
>>77553
В альтеровских FPGA (во втором стратиксе и более поздних точно есть, в четвёртом циклоне тоже) есть хардблок (т.е., выполненный в кремнии, а не на ячейках) LVDS SERDES. Коэф. сериализации - до 10. Ширина линии - какая хочешь.
Мы делали 16-битные с коэф. сериализации 6 и рабочей частотой 1,2 ГГц.
Тренировку делай сам (встроена только DPA, bitslip нужно делать самому, для чего есть соотв. вход).
1361 377731
>>77716

> LVDS SERDES


Это ты про alt_lvds? У меня между плисами одна дифпара, а там нужно с клоком на tx/rx, да ещё и 10бит максимум.
Но скорее всего я что-то не так понял.
1362 377737
>>77731
Вот если ты на них сделаешь десериализацию в 8 раз, то сможешь получать свои данные как 2 бита @ 50MHz при оверсемплинге 400MHz. Загоняешь в serdes 400MHz, выходит из него 8бит 50MHz, выделяешь из них нужные данные, которых после всех преобразований останется два бита на тех же 50MHz. Потом пакуешь их по 7.
1363 377743
>>77716

>Тренировку делай сам


А что такое тренировка?
1365 377746
>>77744
Читаю и не могу понять. Что такое equalization, что за eye и как она получается?
1366 377747
>>77746
Это элементарные понятия. Ты где-то проебался в обучении.
1367 377748
>>77747
Где про это почитать?
1368 377751
>>77716
Закидай говном доками - как вообще происходит синхронизация потоков?
Включил корку serdes, на выходе появились LVDS сигналы.
Приемник с другой стороны сразу по приходу сигналов начнет десереализацию или нужен какой-то внешний сигнал синхронизации? Не будет ли при приеме сдвига битов на 1 влево-вправо где-то на electronix читал про еблю с начальной синхронизацией передач?
Где-то в AN видел особо жесткие требования чуть ли не как для DDR2 памяти к разводке LVDS. Допустим у меня 4 линии + клок и тактовая пусть 500МГц (чуть меньше, чем в гигабитном Ethernet). Какой разброс длин внутри и между парами допустим на таких частотах? Ебаться с каждым миллиметром? Допустим длина трасс под 20-30-40см
1369 377752
ПЛИС-аны, подтвердите или опровергните.
На 4-м циклоне с тактовой 125МГц и памятью DDR2 шириной 16 бит - получится эмулировать 16 битную SRAM с временем доступа 50-70 нс? Реальную SRAM на 64 мегабита собирать - ебанешься, включая цены на одиночные микросхемы SRAM такого объема, поэтому встроенная память - не вариант.
На ZX-PK пишут что даже на тактовой 100 МГц SDRAM с трудом получается эмулировать SRAM с рабочей частотой под 11МГц.
1370 377754
>>77751

>жесткие требования чуть ли не как для DDR2 памяти к разводке LVDS.


Что не так?
1371 377768
.>>77751

>Ебаться с каждым миллиметром?


Крайне желательно. Сам же себе спасибо скажешь, когда всё заработает с первого раза. Или проклянёшь, когда не заработает, и теперь надо ебаться со всякими выравнивателями, наворачивая даташиты по 500 страниц без гарантии успеха.

>Приемник с другой стороны сразу по приходу сигналов начнет десереализацию


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

>Не будет ли при приеме сдвига битов на 1 влево-вправо


Если клок идёт вместе с данными, то обычно всё норм.
1372 377796
>>77737
Как я по одной линии 2 бита прогоню?
1373 377798
>>77796
Или я могу поставить по два alt_lvds друг за другом?
1374 377800
>>77731
Так сразу бы и написал, что не ширина линии 14 бит, а коэффициент сериализации 14.
>>77751
Вот блин, мне интересно, ты нихрена не знаешь, но, при этом, занимаешься трассировкой плат. Как тебя до этого вообще допустили? Мне, например, сказали, что платы я делать никогда не буду, т.к. мои личностные характеристики не позволяют мне заниматься такой работой.
>>77798
Нет. Делай второй уровень сериализации/десериализации на ячейках.
1375 377801
>>77800

> нихрена не знаешь, но, при этом, занимаешься


Забыл где живёшь?
1376 377802
>>77800

>Вот блин, мне интересно, ты нихрена не знаешь, но, при этом, занимаешься трассировкой плат. Как тебя до этого вообще допустили?


Ты забыл что мы живем в пидорашке? У нас можно всё, у меня вот 80% троек в дипломе и я единственный из группы пошел по специальности долбоёб.

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


Хрюкнул на всю лабораторию. Тебе повезло на самом деле. Это неблагодарная работа. Очень мало хороших инженеров по этой специальности - даже люди со светлыми головами замыкаются в этой хуйне и перестают думать. Из инженера превращаются в трассировщика. А зарплата даже хуже, чем у ПЛИСоёбов, такие дела.
1377 377805
>>77802

> зарплата даже хуже, чем у ПЛИСоёбов, такие дела.


Это сколько? 40к?
1378 377806
>>77805
У нас у плисовода/программиста (SoC, МК, ЦСП) средняя ЗП 100к, у разработчика печатных плат - 160к, например.
1379 377813
>>76356

>У этого же продавца на али плата с Kintex-7 стоит раз в пять дешевле


могу пруфануть. На это плату (не сразу) продаван дал схему, 10Гэ завелось, брат жив. Примеры тоже хорошие, есть IP/UDP echo
1380 377817
>>77806
Это в какой стране?
1381 377822
>>77805
Почти в точку: 50к
А еще что характерно 80% трассировщиков бабы.

>>77806
Это скорее исключение. И один хрен, казалось бы вам дофига платят, но даже вшивому фронтэнд-джуну могут платить еще больше.
1382 377823
>>76356
Есть мнение, что кинтексы с али отреболенные, отсюда такая цена. Я бы взял эту плату но она что называется не пришей пизде рукав.
Логики много, а интерфейсов нихуя.
10G это круто, но куда ее подключать?

Разве что пилить на этой плате какой-нибудь майнер.
1383 377824
>>77822

>И один хрен, казалось бы вам дофига платят, но даже вшивому фронтэнд-джуну могут платить еще больше.


Тут включается вопрос а чем ты сам по жизни заниматься хочешь. Все-таки радиолюбительство (и сопутствующие сферы) - это философия.
1384 377826
>>77822

>Это скорее исключение.


Я бы сказал, что это какой-то странный перекос, который явно не обусловлен рыночком. Положа руку на сердце, этих трассировщиков за 160к/наносекунда можно было бы разогнать, понабрать за втрое буквально меньшие деньги макак-студентов, умеющих перерисовывать рекомендуемые решения из аппнотов, и было бы в целом не хуже.
1385 377827
>>77822

> Почти в точку: 50к


А я плисоеб и мне столько платят в дс2.
1386 377828
>>77827
Лох. Пойди потребуй прибавки у начальства.
1387 377829
>>77828
Это не работает. Исследования показывают, что наибольший рост зарплат происходит у людей, которые меняют места работы с ростом квалификации.
1388 377833
>>77827
В дс1 не думал перебраться?
1389 377835
>>77824

>Тут включается вопрос а чем ты сам по жизни заниматься хочешь. Все-таки радиолюбительство (и сопутствующие сферы) - это философия.



Радиолюбительство всегда можно оставить в качестве хобби. Другой момент, что в нашей сфере можно найти тёплое место, где и на хлеб с маслом будет хватать и работать на расслабоне. Только вот это путь вникуда, есть большой шанс оказаться на помойке.

>>77826

>понабрать за втрое буквально меньшие деньги макак-студентов



Это тоже неправильный подход. Если хорошо подумать, у конструктора большая ответственность. Нужно просто за эту ответственность с них спрашивать. Накосячил, какой-то интерфейс не заработал - штраф на половину оклада. Если косяков нет - ну не такие уж и большие это деньги. Про перекос по сравнению с FPGAшниками согласен на 100% обычно везде наоборот.
1390 377836
>>77835

>Радиолюбительство всегда можно оставить в качестве хобби.


В качестве хобби ты вряд ли сможешь найти задачи уровня "ебануть фильтр для 100Гбит езернета".
1391 377837
>>77827
Это обычная зп для FPGAшника. Я ездил по собеседованиям в ДС. У меня опыт кое-какой есть, реализованные проекты и вот это всё. Но итог везде одинаков. Пробовался в 3 места, везде согласны взять, но максимум что предложили 80к. Да нахуй оно надо? В Москву надо ехать за 6-значной зарплатой я считаю.
1392 377838
>>77836
100G - это очень круто, да. Вот только какой с них толк? Кроме того, что потешил чсв.
А еще наверняка твои махарайки будут предлагать РКН или подобным конторам. Как вообще после этого, совесть не будет мучать?
1393 377839
>>77838

>100G - это очень круто, да. Вот только какой с них толк?


Ну так а какие задачи ты хочешь решать? Очередное SDR радио или поливалку для огурцов на FPGA?
1394 377842
>>77822
Ну да, джависты, да и те же фронтэндщики у нас получают дохуя.
>>77837
У меня в Москве ЗП 80к. Могла бы быть больше (платят столько, сколько запросил на собеседовании) - у других на такой же должности, как у меня, она, в среднем, в полтора раза больше. Я получаю только оклад без надбавок и премий.
Это при том, что занимаюсь, в основном, макакской работой.
1395 377845
>>77842
Может человеку с улицы никто не хочет давать нормальные деньги. Но скорее всего такой рынок. Такие как ты готовы рабоать за копейки и по сути обваливают этот самый рыночек. И ведь таких полно.

Я вот не представляю, как в ДС можно на 80к жить? Особенно если нет своего жилья.
1396 377847
>>77845

>Я вот не представляю, как в ДС можно на 80к жить?


Хуя ты зажрался.
1397 377849
>>77847
Смотри, в моем мухосранске средняя зп 33. У меня 50.
В Москве средняя 80(за год вангую выйдет на 85-88) и FPGAшники довольствуются той же 80кой.

А теперь посмотри на цену за жилье, транспорт и остальные траты. Да я на свой полтинник здесь король. А в Москве с 80к хуй с горы. Таксисты здесь так же зарабатывают. Без обид, но себя нужно ценить, Анон. Иди проси прибавку.
1398 377853
>>77849
И самое печальное - это покупка жилья. Я уже выплатил ипотеку в мухосранске за 3 года.
В Москве на 80к ты за 3 года даже нормальный первоначальный взнос не накопишь. Поэтому я считаю за любую умственную работу в столице (5/2 полный рабочий день) надо просить не меньше сотки. Кто платит меньше - они вас наёбывают.
1399 377864
>>77849
Я другой анон. 80к для Москвы, если ты вчерашний понаехавший студент без семьи, вполне нормальная цифра. Не пожируешь особо, но и не совсем хуй без соли.
1400 377866
>>77853
нахер тебе покупать жилье, если повысишь квалификацию и съебешь в гермашку или сшашку?
1401 377867
>>77835

>Накосячил, какой-то интерфейс не заработал - штраф на половину оклада.


Рецепт прямиком из сборника "Прохладные истории пидорашьего менеджмента: 10 лучших способов пустить под откос рабочий процесс и развалить к хуям коллектив". Люди ошибаются, это нормальный фактор. Не надо с наёмных рабочих спрашивать за риски как с организаторов бизнеса. Они не организаторы. Они от такого просто озвереют, даже среди студентов-нищемакак обстановка будет более рабочая.

>Если хорошо подумать, у конструктора большая ответственность.


Я не оперирую идеей "справедливой зарплаты" или "достойной зарплаты", я просто констатирую, что на рынке есть люди, способные выполнять те же задачи гораздо дешевле без ущерба для результата. Я-то всегда за то, чтобы у любого наёмного работника зарплата была как можно выше, но это делается увеличением спроса на них, а в пахомии желающих пилить махарайки больше, чем желающих организовывать их разработку и производство. (Поэтому считаю, что все хорошие люди своей основной целью должны ставить съёб.)
1402 377869
>>77866
Мне в следующем году уже 30 будет. Куда уже сьебать из подводной лодки? Родителей-пенсионеров кину здесь?

>>77867

>Рецепт прямиком из сборника "Прохладные истории пидорашьего менеджмента


Так разве не пидорашьий менеджмент устроил такой перекос?
1403 377871
>>77869

>Мне в следующем году уже 30 будет. Куда уже сьебать из подводной лодки? Родителей-пенсионеров кину здесь?


Твой выбор, твоя жизнь. Единственная, если что. Можно посвятить её тому, чтобы жрать говно, но это странный выбор.

>Так разве не пидорашьий менеджмент устроил такой перекос?


Наверняка, но если пидораший менеджмент может устроить одно говно, это не значит, что он не может устроить другое.
1404 377878
>>77833
У меня тут квартира и учеба.
1405 377897
>>76356
Лот https://www.ebay.com/itm/Altera-Stratix-III-EP3SL200F1152C3N-IC-on-PCB-Violin-Memory-Inc/254230166715
Подойдет для мигания светодиодом или LE закончатся раньше чем успею пернуть?
1406 377900
>>76356
Такой хуйни хватит чтобы сразу помигать двумя светодиодами или могу расчитывать максимум на полтора светодиода?
https://www.ebay.com/itm/Altera-Stratix-IV-EP4SE820F43C3-On-Board-for-chip-recovery/333275638289
1407 377904
>>77897
>>77900
Что ты собрался делать с BGA, извращенец?
1408 377905
>>77904
Очевидный РЕБОУЛИНГ
1409 377906
>>77904
Тот же JLC явно утверждает что умеет в 6 слойные платы. Решил уточнить - подойдет или нет для мигания светодиодом (или светодиодами если повезет)?
Не слабовата будет? Потянет?
1410 377916
>>77906
Помигаешь отдуши, может даже что-нибудь намайнишь.
1411 377917
>>77906
Обожаю двачерский юмор.
1412 377921
>>77897
>>77900

>мигание светодиодом


Cadence Stratus скинуть?
1413 377923
Сап, плисаны. Какие задачи решать с помощью ПЛИС оптимально?
1414 377925
>>77923
Требующие низкой латентности и/или высокой степени параллелизма вычислений.
str.jpg175 Кб, 1626x1088
1415 377936
>>77921
У меня только такой дешманский закос под FPGA.
Схемки нет, надо потрошить и прозванивать каждый из 700 с хуем выводов. После этого можно помигать минимум 4-я светодиодами на плате.
Где можно взять (кроме open cores) максимально точную корку 580ВМ80А на Verilog? Именно 580ВМ80, Z80 и его клоны не интересует.
1416 377938
>>77823

>кинтексы с али отреболенные


Еще скажи, прожаренные в духовке.
1417 377939
>>77936
Я назвал тул для HLS, если что.
1418 377941
>>77939
HLS? Что что?
Чем плох стандартный Verilog / VHDL? Тот же OpenCV?
Такие тормоза как я если и балуются - то засинтезировал, сконфигурил, смотришь. Долго и нудно, да. Для простых проектов типа мигалок светодиодом - норм.
1419 377942
>>77941
Ничем, просто почему-то у меня то, как ты рассказываешь про свою плату и про мигание светедиодом вызвало ассоциацию с ардуйнёй, а оттуда уже с HLS.
1420 378193
Как под виндой выводить диагностические сообщения Flexlm? Скачал Q 13.0 SP1 с кряком, он работает, но нет лицензии на некоторые IP, например, на PCIe.
Под линуксом в тулах Cadence чтобы узнавать фичи, которые нужно прописать в лицензионный файл после патча тула, можно было перед запуском тула прописать в консоли `export FLEXLM_DIAGNOSTICS=3`. Что для этого делать под виндой?
1421 378204
>>78193

>Что для этого делать под виндой?


Нужно всего лишь переустановить ШИПДОШС
1422 378232
>>78204
А серьёзно?
1423 378233
>>77942
Ну ты сравнил.. Где ардуино, а где HLS. По мне в HLS проект пилить сложнее, чем на чистом HDL. Там нет этих ваших абстракций, притянутых за уши парадигм и прочего мозготраха. хотя, возможно я сейчас как динозавр рассуждаю, ведь просматривается явная аналогия между переходами с HDL -> HLS и схематик -> HDL.
1424 378237
>>78233

>просматривается явная аналогия между переходами с HDL -> HLS и схематик -> HDL.



Переход из схематика в HDL - изменение способа ввода схемы.
Переход из HDL в HLS - смена парадигмы.
1425 378239
>>78237
Короче пизда HDL-щикам. Скоро их заменят программисты.
1426 378241
>>78239
Ну в принципе да, сразу как только HLS и прочее говно сможет синтезировать что-то более сложное, нежели моргалка светодиодом.
1427 378244
>>78241
А что сейчас разве не может?
1428 378254
Подкиньте идей для хобийных проектов на FPGA
1429 378256
>>78244
Нет. Чтобы запилить что-то средней сложности (фильтр там простенький) и то надо ебаться со всякими директивами - оптимизаторами.
1430 378257
>>78254
UART ебани.
1431 378258
>>78239

>Короче пизда HDL-щикам. Скоро их заменят программисты.


Лол. Они даже в страшном сне не подумают идти на такие зряплаты.
1432 378262
>>78257
Может еще диодиком помигать??
1433 378266
>>78257

>UART ебани.


У кого-то скоро станет реальностью. Есть бредовая идея поучить Verilog на реальных примерах, "клонируя" давно прогнившие экскременты мамонтов типа ВВ51, ВВ55, ВИ53 и подобное.
Уже нарисовал платку под КР580ВМ80А+ГФ24+ОЗУ+ПЗУ+ обосранный Flex10K30 с AT17LV010.

>>78262
Это я умею. Точнее умею только зажигать, а гасить - только задувая. До мигания так и не дошел и не понимаю - как так получается.
1434 378267
>>78262
Ну тогда ебани ICA и разделение источников, записанных с нескольких микрофонов.
1435 378269
>>78267
А что такое ICA? Утка какую-то дичь выдает
1436 378288
>>78269
Independent Component Analysis
Фигня, которая появилась с классической задачей "cocktail party problem"
1437 380711
>>17906

>ПЛИСаны, я не понял, вот я насинтезировал конфигурацию и залил ее в эту вашу FPGA, отключил питание и все пропало?



Вроде как в серии MAX от Altera есть плисы с флеш. Можно сделать чтобы прошивка заливалась по включению питания.
1438 380746
>>17906
Некропостинг, да.

>насинтезировал конфигурацию и залил ее в эту вашу FPGA, отключил питание и все пропало?


Да. Не знал что FPGA одноразовые? Залил конфигурацию и после передергивания питания она стирается. Flash память радом для лохов. Смотри и учись как правильно делается http://dihalt.ru/poslednij-geroj-truda-chast-0fh.html
".. на базе легендарного компьютера PDP-11. Адская машина!!! Грузится это чудо с здоровенных, размером с виниловую пластинку, 8″ дискет. Т.к. дискеты уже давно все в кал убитые и старые, а гарантии, что в следующий раз можно будет загрузить систему нет никакой, то станок пашет без перезагрузок уже лет 20, подключённый к трём аккумуляторам и, на всякий случай, дизелю. Дабы поддерживать его жизнь в случае проделок Чубайса."
1439 380770
Подскажите, как быть. Речь идёт о хобби-проекте на ПЛИС. Суть в следующем - идея годная, реализация слабая. Задача сложная - сделать так, чтобы моё хобби стало вашим хобби. Есть идеи?
1440 380773
>>80770

>Есть идеи?


Как минимум порадоваться. В отличии от остальных анонов - есть конкретная цель/задумка/проект, а не "с чего вкатываться?" и это огромный плюс.
Со сложностью проекта определился? Как минимум по части сколько надо выводов и какие планируются интерфейсы ввода-выдода? На чей стул присел? Xilinx/Altera/Lattice/Microsemi?
1441 380781
>>80773

Всё очень просто и в то же время очень сложно. Вообще-то идей несколько и одну даже воплотил в Cyclone III EP3C10E144C8.

Что касается интерфесов, пока есть только UART. В теории, совсем в теории, для каких-то применений его достаточно. А вообще хотелось бы задействовать всю мощь ПЛИС и отладочной платы.

Там же в куче самописный интерфейс для SDRAM MT48LC4M16A2-75. Но не очень стабильно работает. В тестах отрабатывает отлично, регенерация есть, а в проекте глючит.

Да что ходить вокруг да около - хочу предложить оригинальную 32-х битную процессорную архитектуру. И транслятор ассемблера для неё.
1442 380790
>>80781
Что-то это мне напоминает...
https://zx-pk.ru/threads/23528-reverse-u16.html https://github.com/mvvproject/ReVerSE-U16
https://github.com/donnaware/ZBC---The-Zero-Board-Computer/blob/master/design/ZBC RevD.pdf Мне такому ленивому хуйлу впадлу найти циклон и генератор. Тут явно выведен com-порт и даже есть программный ethernet 10base-t.
Так что можешь на чуть сэкономить время и взять готовое или скопипастить. Для SDRAM в принципе похуй, а для DDRx - нужно следить за выводами, которые специально отведены под шину данных и забив на это - можно эпично соснуть.
image.png173 Кб, 1141x979
1443 380796
>>80790

>Что-то это мне напоминает...



Zet processor is an open implementation of the so widely used IA-32 architecture (generally called x86).

Нет, конечно не x86. Вот карта инструкций.
1444 380799
>>80796
Отсылка была как минимум к коду, из которого можно попробовать выдрать контроллер SDRAM и сопутствующие "периферийные" устройства.
Потактовой версии 580ВМ80А случаем нет? Клоны не интересуют. Именно "родной" советский 580ВМ80А.
kit3.jpg121 Кб, 604x453
1445 380820
>>80796
Ты тот шизик со спейсача, одержимый сверхценной идеей, что космические аппараты бьются из-за неправильной архитектуры бортовых ЦВМ?
1446 380827
>>80820
Почему сразу шизик? Но да, я полагаю что неправильная архитектура бортовых ЭВМ это существенный фактор. Но это скорее к софту относится. Более надёжную систему можно построить и на уже используемом железе.

Мне бы хотелось донести до вас красоту вот этой системы команд. В отдельной теме, но пока можно и здесь.
Жёлтый цвет - инструкции зарезервиованы. Условные и безусловные переходы только относительные. Адрес возврата из подпрограммы всегда в регистре. Все операции только 32 бита. Плавающей запятой нет. Уже можно ругать.

Одна из идей - "бесконечно" расширяемая система команд за счёт увеличения длины инструкций.
1447 380832
>>80827
Присоединюсь к анону выше. Ты шизик. Я так и не понял, ты уже сделал этот процессор или все никак?
Помимо этого, по твоей таблице без детального описания инструкций можно только гадать, что ты там навыдумывал. И писать программы ты будешь, разумеется, на ассемблере?
image.png118 Кб, 1271x211
1448 380837
>>80832

> Я так и не понял, ты уже сделал этот процессор или все никак?


Прототип давно сделал. Работает. Но это лишь небольшая часть от того, что хотелось получить в итоге. Самое вкусное как раз и не реализовано.

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


Да. Согласен. Наверное это нужно в первую очередь.

Ну вот смотри - в первой строке однобайтовые команды.
NOTCH это превифкc. Если ты поставишь его перед инструкцией перехода, условного или безусловного, то в регистре R15 запомнится адрес следующей инструкции. Инструкция RETURN тупо делает переход по содержимому R15. Переходы это знаковое смещение от текущей инструкции - 8, 16 или 24 бита знаковое смещение.

IDLE, TASK_ID, SEND, RECV - это то, что придёт на смену прерываниям, в том числе аппаратным. Это сообщения.

LOCK, FREE - захват и освобождение буфера сообщений.
SET_MR и GET_MR это соответственно запись и чтение буфера сообщений из регистра/в регистр.


Ещё один префикс KOL. Если он используется перед загрузкой константы 8 или 16 бит, то при загрузке константы старшие биты регистра не затираются.

Команды INC и DEC позволяют увеличивать/уменьшать регистр не только на 1, но и на константу от 1 до 16.

Что касается инструкций 0xdx, то они заточены для работы со структурами и списками. Их реализация необязательна, но их использование позволяет упростить и уменьшить код - указать смещение адресу. И опционально проверить резултат операции на ноль/не трогать флаги.

Команды сложения и вычитания всегда используют перенос.

> И писать программы ты будешь, разумеется, на ассемблере?


Пока да. На макроассемблере, который часть кухни скрывает макросами.
1449 380846
Что за куча негатива? Какая разница кто что делает? Ну делает свой процессор, и что?
Некоторые на логике и ПЗУ собирают https://www.bigmessowires.com/nibbler/ , другие на реле - http://tqfp.org/tag/релейный компьютер/ , из "россыпчатой логики" https://www.bigmessowires.com/bmow1/ . Может туда съебете авторов покритиковать и поливать говном?

Единственный "недостаток" всех таких проектов - как писать управляющую программу, кроме как на ассемблера.
1450 380858
>>80827

>Почему сразу шизик?


Потому что пытаешься решить проблему, которой не существует. Проблемы в системах управления, которые решаются сменой ISA — это исключительно твои ни на чём не основанные фантазии. Одно дело, если тебе хочется джаст фо фан запилить проц с интересной тебе ISA, это ок. Другое — когда ты начинаешь верить в постулаты, не основанные на эмпирическом знании, это уже шиза.
1451 380862
>>80846

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


Вовсе не обязательно. Форт или лисп недолго и на ассемблере написать.

>Что за куча негатива?


Мне кажется, что не за сам процессор, а за "революционность" идей и невнятную подачу информации. Да и нет тут заметного негатива.
1452 380865
>>80858

>которые решаются сменой ISA


Оригинальная ISA это вообще побоочный продукт. Я же оговорился вот тут >>80827

> Более надёжную систему можно построить и на уже используемом железе.



Изначально я хотел добавить несколько инструкций для работы с сообщениями в любую популярную архитектуру. Это бы решило множество моих проблем - компилятор, библиотеки, специалисты и т.д. Но засада заключалась в том, что свободного места под коды операций у популярных архитектур нет. Особенно у x86. Посмотри за счёт чего сейчас расширяется система команд и какие монстры получаются. Отсюда и оригинальная ISA, которая к надёжности не имеет отношения.

Надёжность следует из синхронности. Если ты без прерываний в суперцикле будешь опрашивать порты и реагировать на полученные данные, то это будет достаточно надёжная система в плане временных характеристик, но она будет иметь плохое время отклика и сильно греться. Если ты используешь прерывания, то система будет иметь хорошую отзывчивость, сможет засыпать между прерываниями, но у тебя появится проблема СИНХРОНИЗАЦИИ.

Да, ты не считаешь синхронизацию проблемой, потому что её решают все разработчики, она давно известна, все уже привыкли и никто её проблемой не считает - все современные сиситемы так или иначе решили эту проблему.

Называй меня как хочешь, но я ТВЁРДО УБЕЖДЁН и проверил экспериментально, что замена прерываний синхронными сообщениями это лучший компромисс между надёжностью и эффективностью. Любую систему можно построить как множество задач, обменивающихся сообщениями. Прерывания это тоже в некотором роде сообщения, но они асинхронны.

Я думаю по поводу сообщений у тебя не возникнет возражений, потому как, я надеюсь, VxWorks и QNX/Neutrino наиболее часто используются в космической технике и используют эти принципы.

Камень преткновения это синхронность. И плисоводы меня поймут - они первым делом бьют по рукам за асинхронный дизайн. Если пойти чуть дальше и на уровне ядра ОС отказаться от асинхронности, то решатся проблемы надёжности, изохронности и энергопотребления. Конечно не "бесплатно" - взамен появляется проблема сложности. Недосмотрел и получил проблему взаимоблокировки. Пример - задача №1 посылает сообщение задаче №2, которая посылает сообщение задаче №3, которая посылает сообщение задаче №3. В итоге все друг друга ждут и система заблокировна. Эта проблема решается проектированием. А если кому лениво расписывать программно-аппаратный комплекс на таком уровне - пусть берёт готовое решение, продуманное за него, и обвешивает его нужной функциональностью.

Что касается прерываний, то их следует заменить сообщениями. Если бы ты видел, как при этом урощается обработчик, ты бы меня поддержал. Суть в том, что задача спит в ожидании события - сообщения от другой задачи, прерывания от устройства или таймаут. Любое внешнее событие приходит в одно место. Обработка сводится к анализу события, реакции на него и переходу в состояние ожидания. В итоге управление тем же спутником или луноходом выглядит как несколько десятков спящих задач, периодически выходящих из сна, как-то взаимодействующих и переходящих снова в состояние сна.

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

Ещё раз - я не утверждал что ISA связана с надёжностью. Возможно корреляция какая-то есть, но мне ничего об этом неизвестно.
1452 380865
>>80858

>которые решаются сменой ISA


Оригинальная ISA это вообще побоочный продукт. Я же оговорился вот тут >>80827

> Более надёжную систему можно построить и на уже используемом железе.



Изначально я хотел добавить несколько инструкций для работы с сообщениями в любую популярную архитектуру. Это бы решило множество моих проблем - компилятор, библиотеки, специалисты и т.д. Но засада заключалась в том, что свободного места под коды операций у популярных архитектур нет. Особенно у x86. Посмотри за счёт чего сейчас расширяется система команд и какие монстры получаются. Отсюда и оригинальная ISA, которая к надёжности не имеет отношения.

Надёжность следует из синхронности. Если ты без прерываний в суперцикле будешь опрашивать порты и реагировать на полученные данные, то это будет достаточно надёжная система в плане временных характеристик, но она будет иметь плохое время отклика и сильно греться. Если ты используешь прерывания, то система будет иметь хорошую отзывчивость, сможет засыпать между прерываниями, но у тебя появится проблема СИНХРОНИЗАЦИИ.

Да, ты не считаешь синхронизацию проблемой, потому что её решают все разработчики, она давно известна, все уже привыкли и никто её проблемой не считает - все современные сиситемы так или иначе решили эту проблему.

Называй меня как хочешь, но я ТВЁРДО УБЕЖДЁН и проверил экспериментально, что замена прерываний синхронными сообщениями это лучший компромисс между надёжностью и эффективностью. Любую систему можно построить как множество задач, обменивающихся сообщениями. Прерывания это тоже в некотором роде сообщения, но они асинхронны.

Я думаю по поводу сообщений у тебя не возникнет возражений, потому как, я надеюсь, VxWorks и QNX/Neutrino наиболее часто используются в космической технике и используют эти принципы.

Камень преткновения это синхронность. И плисоводы меня поймут - они первым делом бьют по рукам за асинхронный дизайн. Если пойти чуть дальше и на уровне ядра ОС отказаться от асинхронности, то решатся проблемы надёжности, изохронности и энергопотребления. Конечно не "бесплатно" - взамен появляется проблема сложности. Недосмотрел и получил проблему взаимоблокировки. Пример - задача №1 посылает сообщение задаче №2, которая посылает сообщение задаче №3, которая посылает сообщение задаче №3. В итоге все друг друга ждут и система заблокировна. Эта проблема решается проектированием. А если кому лениво расписывать программно-аппаратный комплекс на таком уровне - пусть берёт готовое решение, продуманное за него, и обвешивает его нужной функциональностью.

Что касается прерываний, то их следует заменить сообщениями. Если бы ты видел, как при этом урощается обработчик, ты бы меня поддержал. Суть в том, что задача спит в ожидании события - сообщения от другой задачи, прерывания от устройства или таймаут. Любое внешнее событие приходит в одно место. Обработка сводится к анализу события, реакции на него и переходу в состояние ожидания. В итоге управление тем же спутником или луноходом выглядит как несколько десятков спящих задач, периодически выходящих из сна, как-то взаимодействующих и переходящих снова в состояние сна.

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

Ещё раз - я не утверждал что ISA связана с надёжностью. Возможно корреляция какая-то есть, но мне ничего об этом неизвестно.
1453 380871
>>80865
Я нихуя не понял что ты называешь сообщениями. Может напишешь более доступно? И на счет отсутствия свободного места под опкоды - явно бред. Взять хоть risc-v или mips.
1454 380872
>>80865
Нет никакой проблемы синхронизации. Многопоточность — это абстракция, которая вынесена за пределы уровня железа на уровень софта потому что человечество выработало именно такой путь решения сложных задач: иерархически разделять всё по нескольким уровням абстракции от простого к сложному. Процессор ничего не знает про потоки, зато он прост и надёжен. А то, что ты хочешь, перенести на него управление многопоточностью — это попытка совместить две аккуратно разделённые абстракции в один переусложнённый комбайн, который ни верифицировать, ни протестировать на всём множестве возможных состояний будет невозможно, и решаемые которым мнимые проблемы никто проблемами не считает, а считает грамотным иерархическим подходом к нарастающей сложности. Это предложение из серии "а давайте перепишем гуй на ассемблере, летать же будет, ёба!" Нахуй и в пизду такое счастье.
1455 380876
>>80871
Сообщения это точки взаимодействия между задачами. Это IPC - Inter Process Communication. Прерывания тоже транслируются в IPC. В микроядре L4 это делается программно, самим микроядром, моя цель - реализовать их аппаратно. У сообщения есть таймаут - не ждать, ждать заданное время или ждать бесконечно. На этом базисе строится всё.

Вот, из соседней темы пост >>380844 Видишь как реализована функция задержки? Циклом с опросом TickCounter. Как бы делал ты? Вероятно что вешался бы на таймер (если ОС не предоствляет функицию задержки). Посредством сообщений эта задача решается элементарно - ждёшь сообщениие от самого себя в течение заданного времени. Время зарежки отдаётся другим задачам или процессор спит, если нет активных задач.

И снова к прерываниям - транслируй прерывания в IPC, и половина задачи решена.

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

Давай попробуем разобраться на примере. Вот на крыле самолёта есть лампочка, которая моргает. Предлагаю тебе написать программу, которая будетт управлять морганием этой лампочик. С возможностью запускать и останавливать моргание, а так же с возможностью менять частоту моргания. На HDL языках это будет очень простая программа. А как насчёт программы для микроконтроллера? Если приведёшь пример такой программы, я покажу аналогичный пример на сообщениях. И посмотрим у кого получится проще и элегентней.

> И на счет отсутствия свободного места под опкоды - явно бред. Взять хоть risc-v или mips.



Когда я начинал, RISC-V то ли вообще ещё не было, то ли он был известен лишь в узких кругах. Что касается MIPS, то может быть и можно. Давно это было, смотрел корки MIPS на opencores.org и решил не связываться. Как бы не очень люблю трёхадресные команды, не очень люблю RISC Кстати, если не лениво, то подскажи хотя бы два свободных ОП-кода для него. Как минимум нужны две инструкции - SEND и RECEIVE. Адрес задачи для коммуникации в регистре, таймаут в регистре, 14 регистров под сообщение, остальные регистры меняться не должны и принадлежат задаче.
1455 380876
>>80871
Сообщения это точки взаимодействия между задачами. Это IPC - Inter Process Communication. Прерывания тоже транслируются в IPC. В микроядре L4 это делается программно, самим микроядром, моя цель - реализовать их аппаратно. У сообщения есть таймаут - не ждать, ждать заданное время или ждать бесконечно. На этом базисе строится всё.

Вот, из соседней темы пост >>380844 Видишь как реализована функция задержки? Циклом с опросом TickCounter. Как бы делал ты? Вероятно что вешался бы на таймер (если ОС не предоствляет функицию задержки). Посредством сообщений эта задача решается элементарно - ждёшь сообщениие от самого себя в течение заданного времени. Время зарежки отдаётся другим задачам или процессор спит, если нет активных задач.

И снова к прерываниям - транслируй прерывания в IPC, и половина задачи решена.

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

Давай попробуем разобраться на примере. Вот на крыле самолёта есть лампочка, которая моргает. Предлагаю тебе написать программу, которая будетт управлять морганием этой лампочик. С возможностью запускать и останавливать моргание, а так же с возможностью менять частоту моргания. На HDL языках это будет очень простая программа. А как насчёт программы для микроконтроллера? Если приведёшь пример такой программы, я покажу аналогичный пример на сообщениях. И посмотрим у кого получится проще и элегентней.

> И на счет отсутствия свободного места под опкоды - явно бред. Взять хоть risc-v или mips.



Когда я начинал, RISC-V то ли вообще ещё не было, то ли он был известен лишь в узких кругах. Что касается MIPS, то может быть и можно. Давно это было, смотрел корки MIPS на opencores.org и решил не связываться. Как бы не очень люблю трёхадресные команды, не очень люблю RISC Кстати, если не лениво, то подскажи хотя бы два свободных ОП-кода для него. Как минимум нужны две инструкции - SEND и RECEIVE. Адрес задачи для коммуникации в регистре, таймаут в регистре, 14 регистров под сообщение, остальные регистры меняться не должны и принадлежат задаче.
1456 380880
>>80872

>Процессор ничего не знает про потоки, зато он прост и надёжен.



Ага. Прост. Спекулятивное выполнение, предсказание переходов, переименование регистров - всё очень "просто".

> Процессор ничего не знает про потоки, зато он прост и надёжен.


Интел как-то пробовал https://en.wikipedia.org/wiki/Task_state_segment
Так и болтается для совместиимости эта бесполезная вещь.
Но даже на этом Intel не успокоилась и породила вот это - https://en.wikipedia.org/wiki/Hyper-threading

> Нет никакой проблемы синхронизации.


Угу - семафоры и критические секции - вот это вот всё с потолка взялось.
1457 380887
>>80880
На примере х86 рассуждать об архитектуре — это зашквар, если, конечно, речь не о том, как х86 безнадёжно вынужден тащить за собой все колебания линии партии, неудачные эксперименты, ошибки проектирования и костыли. Причём накопление нелепостей и идиотизма уже таково, что его тоже вынесли на отдельный уровень абстракции, заставив заниматься им простое и надёжное RISC-ядро.

>Угу - семафоры и критические секции - вот это вот всё с потолка взялось.


Это не проблемы синхронизации. Это задачи синхронизации и инструменты, которые работают, решают задачи и выполняют заявленные функции.
1458 380890
>>80887

>Причём накопление нелепостей и идиотизма уже таково, что его тоже вынесли на отдельный уровень абстракции,



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

>Это задачи синхронизации и инструменты, которые работают, решают задачи и выполняют заявленные функции.


Вот именно это мы обсуждалv в /spc - >>512088
Давай не будем возвращаться к законам Кларка и NIH-синдрому.
1459 380893
>>80890
>>80876
Ты какой-то чудной. Тебя спрашивают как работают твои сообщения (на уровне инструкций), а в ответ ты начинаешь писать о том, как они хороши. Ну не странно ли это?
1460 380894
>>80876

>На HDL языках это будет очень простая программа. А как насчёт программы для микроконтроллера?



По прерыванию от таймера выходной порт меняет своё состояние
По прерыванию от управляющего интерфейса перенастраивается таймер

Вот и вся программа.
1461 380895
>>80893

>Тебя спрашивают как работают твои сообщения (на уровне инструкций)



SEND и RECV осуществляют вход в планировщик. Программный или аппаратный, это уже детали. Планировщик коммутирует регистровый файл устройству выборки и выполнения. Пока так.
1462 380896
>>80894

>По прерыванию от таймера выходной порт меняет своё состояние


>По прерыванию от управляющего интерфейса перенастраивается таймер



Хмм. Мой вариант:

Ждём событие, если пришёл таймаут, меняем состояние, иначе обновляем значение таймаута из события.

Таймеры не нужны
1463 380897
>>80896

>пришёл таймаут


>Таймеры не нужны


Это как? Что за микроконтроллер без таймеров?
1464 380898
>>80897

>Это как? Что за микроконтроллер без таймеров?



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

Иными словами все таймеры заменяются одним счётчиком, который считает такты до ближайшего события.

Истину говорю вам - таймеры не нужны.
1465 380900
>>80898
Чем это, сделанное аппаратно, лучше того же самого, но сделанного программно на ЛЮБОМ из существующих микроконтроллеров?
1466 380901
>>80898
Ты только что изобрёл ртос. Там тоже большинство таймеров отдаются под нужды системы.
1467 380904
>>80900
Чуть эффективнее. Иногда даже не чуть. Погугли на тему "scheduler hardware acceleration". В некоторых ситуациях код планировщика может съесть до 20% процессорного времени.

Но даже программная реализация получается лучше, чем традиционные решения с кучей таймеров - пример выше с управлением морганием лампочкой.
1468 380906
Архитектурами занимаются целые группы ученных в исследовательских центрах крупных международных корпораций и тут ты такой красивый со своей охуительной прорывной идеей выскакиваешь. Ебать, как амд/интел/арм до такого не додумались?
1469 380911
>>80904
Понятно. То есть никаких преимуществ, потому что контроллер - не числодробилка, и проц всё равно большую часть времени находится во сне/ожидании.

>Но даже программная реализация получается лучше, чем традиционные решения с кучей таймеров - пример выше с управлением морганием лампочкой.


Но все эту задачу всё равно сделают на паре прерываний. Наверное, потому что им просто не открылась Истина, что они делают непросто и неэлегантно. Жалкие людишки.
1470 380921
Лучше расскажите, как сделать обработку пакетов.
Есть axi-stream шина(слейв и мастер или как там сейчас политкорректно? ). По axi необходимо поддерживать 8 различных сессий обмена данными. Если обрабатывать всё это в одной FSM получится дохуя ветвлений и потом заебусь это дело отлаживать.
Есть ли смысл в данном случае использовать броадкаст - то есть разделить 1 шину на 8 получится что каждая сессия будет работать со своей шиной. Или забить, пилить всё в одной FSM?

Вообще есть ли предел числу состояний после которого начинаются проблемы с дизайном?
1471 380922
>>80906

> тут ты такой красивый со своей охуительной прорывной идеей выскакиваешь.



Если что, я занимаюсь этой бедой не один год http://l4os.ru/.

А тут вот можно с макроассемблером поиграться и пару примеров посмотреть - http://everest.l4os.ru/download/MacroAssembler.zip
1472 380923
>>80921

>Есть ли смысл в данном случае использовать броадкаст


Ровно для этого и придуман был AXIS interconnect и сигнал tdest.

>Вообще есть ли предел числу состояний после которого начинаются проблемы с дизайном?


Прямой зависимости от числа состояний нет. 16-битный счётчик можно считать FSM с 65536 состояниями.
1473 380924
>>80923

>Прямой зависимости от числа состояний нет.


Ну как это нет зависимости? А если потребуется подать на комбинаторную логику текущее состояние? Если у меня предположим 3-битный регистр состояния - будет потрачена всего 1 LUT. В случае с 8-битным регистром уже одним LUT не обойтись.
1474 380925
1475 380926
>>80924

>В случае с 8-битным регистром уже одним LUT не обойтись.


С ростом числа состояний у тебя проблемы с головой начнутся раньше, чем с производительностью.
1476 380928
>>80926
Ну например, при использовании one hot-кодирования состояний проблемы начнутся быстро.
Ладно, хрен с ним, с кодировкой состояний. Основная проблема даже не в них.
Для передачи пакетов обычно использую сдвиговый регистр, а т.к. вариантов пакетов слишком много, получается жирный мультиплексор.
1477 380970
>>80928
Onehot-кодирование было изобретено как раз для избежания проблем с декодированием состояний. Есть другие варианты. Например, тебе было норм использовать три активных бита, можно придумать кодирование, которое каждое из возможных валидных состояний задаёт определённой комбинацией из трёх единиц среди кучи нулей. Есть всякие автоматизированные генераторы для таких вещей, я ни разу не использовал, не было нужды.

>т.к. вариантов пакетов слишком много, получается жирный мультиплексор.


Конвейеризация поможет от всего. Дели по поддиапазонам, буферизируй и потом разбирай каждый поддиапазон.
1478 381135
Хочу запустить какой-нибудь эмулятор cocнолей на FPGA. Какую архитектуру рассмотреть?

Не хотелось бы самостоятельно писать проц и вот это всё. Готов взять чужое ядро проца, портировать его под архитектуру доступной мне плисины(xilinx 7 series) ну и допилить проект в части подключения к плате джойстика, образа картриджа, вывода звука и изображения.

Начал читать про денди. Всё бы ничего, вот только они наворотили дел с интерфейсом картриджа. Разрядности адресной шины недостаточно, поэтому используют специальные чипы(мапперы) которые переключают банки памяти. Под каждый тип картриджа придется делать отдельный эмулятор.

Как с этим обстоят дела у сеги? Накидайте интересных проектов по этой части, если кто интересовался.
1480 381148
>>81142
Это же денди
1481 381210
>>16943 (OP)
Хочу самую круть для обработки и синтеза звука что есть на данный момент, что посоветует мудрый анон? Бюджет не более 100$ за камень
1482 381217
>>81210
Как именно ты собрался обрабатывать и синтезировать звук?
Ты что, из этих... аудиофилов?
1483 381221
>>81217
Обработка это очевидно разные фильтры, а синтез табличный, хочу 16 каналов синтеза
1484 381246
>>81221
Ты по всем тредам лазишь?
1485 381247
>>81221
Ты хоть знаешь что такое фильтр и как он выглядит? Что мешает тебе сделать все это на компе? С чего ты вообще взял, что для этого требуется ПЛИС? Или ты считаешь, что фильтр это такая магическая штука, что кроме как на ПЛИС не заведется?
Вот серьезно, хоть бы с передаточной функции этих фильтров начал что ли. Вообще, что мешает вставить твои фильтры в какой-нибудь симулинк и послушать что будет на выходе?
2019-09-2711-10-25.png143 Кб, 1920x1080
1486 381260
Короче скачал сырцы вот этого эмулятора:
https://github.com/MiSTer-devel/Genesis_MiSTer
С самого утра собирал в блеваде проект дабы оценить объем работ по портированию. По закону жанра в репозитории не оказалось части файлов, но вроде нагуглил.

Сейчас вот сижу и смотрю на огромную портянку файлов в иерархии проекта и охуеваю. Есть шансы во всем этом разобраться?
1487 381261
Еще пытался запустить в зашквартусе оригинальный проект. В qpf-файле сказано, что требуется версия 17.0, скачал, установил. Попробовал открыть - хуй там плавал, подавайте версию pro. Где ж ее еще найти эту pro? Как же с вивадо охуенно, не надо ебаться с кряками, не нужно держать на компе зоопарк версий, не надо отдельно устанавливать саппорт пакеты для девайсов.
Достаточно иметь ise 14.7 и более-менее свежую версию вивады и у вас будет возможность работы практически со всей линейкой Xilinx.
1488 381262
>>81260

>Есть шансы во всем этом разобраться?


Вопрос уровня: "Смогу ли я поднять эту штангу?"

>Где ж ее еще найти эту pro?


А если создать проект в твоей версии и самому добавить в него файлы?

Я бы тоже от pro не отказался, у этой версии вроде как есть "инкрементальный" синтез, позволяющий каждый раз не пересобирать весь проект, а только измененные файлы.
1489 381265
>>81262

>А если создать проект в твоей версии и самому добавить в него файлы?



Да уже нужды нет, я хотел только взглянуть на иерархию но уже через вивадо всё собрал. Сейчас сижу подгоняю альтеровский SV-код под причуды синтезатора Xilinx.

Вот у X тоже свои прибабахи. В always_comb повсеместно используется блокирующее присваивание на wire. Казалось бы всё норм, но нет, у хилых так нельзя, меняй wire на logic!
1490 381268
Обана, в 233 строке объявление регистра внутри олвейс блока:

https://github.com/MiSTer-devel/Genesis_MiSTer/blob/master/fourway.v

Что у интела так можно?
2019-09-2712-15-25.png9 Кб, 692x156
1491 381275
Что-то ору с переводчика.
1492 381277
>>81268
Я видел такое в коде под Xilinx. При попытке скомпилировать под Altera я получал закономерную ошибку. Но это был Quartus II (даже ещё не Prime), что там навертел Интел в семнадцатой и более поздних версиях - не знаю.
1493 381279
>>81265

>Вот у X тоже свои прибабахи. В always_comb повсеместно используется блокирующее присваивание на wire. Казалось бы всё норм, но нет, у хилых так нельзя, меняй wire на logic!


Сука, как же я вас, пидоров, ненавижу. Пишете говнокод, потом мне дают этот говнокод и говорят собрать, вносить какие-либо правки при этом запрещая и поясняя, что "wire в левой части в always - ЭТО ПРАВИЛЬНО, т.к. это комбинационная логика" . А у меня Synopsys Design Compiler и VCS такое дерьмо собирать отказываются.
Будь добр, прочитай стандарт на верилог, либо забудь про разработку цифровых схем.
1494 381282
>>81279

> поясняя, что "wire в левой части в always - ЭТО ПРАВИЛЬНО, т.к. это комбинационная логика" .


always это комбинационная логика? Давно и у кого?

> у меня Synopsys Design Compiler и VCS


А зачем тебе они? Ты чужие поделки воплощаешь в кремнии?
1495 381283
>>81246
>>81247
Я пошутил, они повелись, в общем как всегда)
1496 381284
>>81279
Где твой больной мозг увидел, что Я так пишу?
Речь про чужой код с гитхаба.
1497 381320
1498 381333
>>81282

>Давно и у кого?


У вериложцев со времён изобретения always @()
Что туда где-то разрешают засовывать wire в левую сторону, я, впрочем, не знал.

Даже не знаю, как к этому относиться. С одной стороны, люто бесит, что для описания комблогики приходится объявлять reg, которые не компилятся ни в какие регистры в железе. С другой, wire, который внутри блока последовательных операций самостоятельно хранит своё значение, тоже тот ещё майндфак.

мимо*
1499 381336
>>81333

>со времён изобретения always @(*)


Фиксед.
1500 381349
>>81320
Название entity.
1501 381358
>>81349

port map(
...
data_b => (others => '0'),
...
);

Вылезла такая вот ошибка:
[Synth 8-2784] type of aggregate cannot be determined without context ; 11 visible types match here

data_b- это 32 битный порт вериложного модуля. Что здесь не так? Похоже насосуь хуёв от vhdl
1502 381389
>>81358
Прежде чем вставлять модуль, нужно объявить его как компонент, в этом объявлении ты пропишешь все порты с их типами. После этого можно вставлять.
1503 381391
>>81389
Компонент нужно объявлять для каждой сущности модуля?
Тогда почему только на конкретном порту data_b вылезла ошибка?
1504 381394
>>81391
Нет, ты один раз объявляешь компонент в той же секции, где объявляются сигналы (или в отдельном package).

>Тогда почему только на конкретном порту data_b вылезла ошибка?


Пути конпелятора неисповедимы.
1505 381411
>>81394
Спасибо, получилось.

Еще один прикол:
[Synth 8-509] operands of logical operator '&' have different lengths (9 vs. 4)

ioq := (ioq and x"7") xor ('0'&BusA);

ioq - std_logic_vector(8 downto 0)
BusA - std_logic_vector(7 downto 0)

откуда здесь vs. 4 взялось?
1506 381412
>>81411
Там где and x"7".
1507 381413
>>81412
7 это все равно 3 бита, а не 4.
1508 381416
>>81412
Почему на интеле это компилится?
Ебанул вот так:
ioq := (ioq and ('0' & '0' & '0' & '0' & '0' & x"7")) xor ('0'&BusA);
Хуй знает как на языке Богов сказать 5'b0
надеюсь угадал
1509 381429
Есть пачка некро плат со вторым спартаном и изи-юсб.

Слил поставил оче старый ISE. Всё ок, в смысле попробовал что-то наваять на верилоге - оно синтезируется, фиттинг и остальное успешно заканчивается, пины прибил.

Теперь вопрос: а как мне это дело симулировать?

Где брать Modelsim XE? iSim? ЩИТО ДЕЛАТЬ КАК ЖИТЬ БЕДА
1510 381430
>>80746

>Не знал что FPGA одноразовые? Залил конфигурацию и после передергивания питания она стирается.



Есть куча решений с инстант-поверон и флешом унутрях. В том числе рад-харденед.
1511 381444
>>81429
Ну во-1 в ise есть встроенный симулятор. На первое время хватит.
1565777.jpg61 Кб, 309x305
1512 381450
>>81444
Он с какой версии появился и как называется? Я ставил 6.1, нету там ничего.

Так-то я сделал тестбенч (файл на верилоге через их же мастер) и ещё нарисовал тестовые вейформы, но вот запустить это чудо нельзя - нет симулятора.
1513 381451
>>81450
Ставь 14.7 это последняя версия ISE.
https://www.youtube.com/watch?v=EgcU_nXR74Y
1514 381453
>>81413

>7 это все равно 3 бита, а не 4.


Если пишешь X"7", то это 4 бита. X"07" - 8 бит.

>>81416

>Хуй знает как на языке Богов сказать 5'b0


На языке богов ты объявляешь константу
constant c_mask : std_logic_vector(8 downto 0) := "0_0000_0111";
и делаешь and с этой константой.
1515 381457
Второй день ебусь с портированием этой сосноли на Xilinx. А ведь я еще даже не начинал отладку.

В начале года на работе была задача портировать довольно большой проект с Xilinx на Intel, там дела шли гораздо легче.

А как проходят ваши выходные?
1516 381459
>>81457
Ищем мастурбаторы. Пока что глаз положен на Reverse U16 и DivGMX и легкое охуевание где добывать детальки под них.
Фанат-коллекционер Altera и тихо фапаю на Xilinx ZU-28DR.
1517 381460
>>81453

>constant c_mask : std_logic_vector(8 downto 0) := "0_0000_0111";



Весьма компактно и выразительно. Уочень удобно.
1518 381461
>>81451
Она не поддерживает второй спартан, которых у меня около 20шт.
Ачтодальшето.png35 Кб, 809x290
1519 381462
>>81451
у меня сейчас вот так всё выглядит. Можно выбрать разные симуляторы и сделать для них либы для тестов. Но симуляторов, ес-но, нет. iSim не вижу.
1520 381466
>>81461
Ты прав, давно не запускал это говно.
Попробуй icarus verilog, что-то простое отсимулировать хватит с головой.
1521 381469
>>81466

>это говно.



Открыл пример из комплекта, таргет был xc2c00 auto. Всё ОК, ну за исключением невозможности симуляции из-за отсутствия симулятора. Поменял на xc9500xl.

Внезапно вот это вот:

> ERROR:Xst:899 - stmchine.v line 42: The logic for <current_state> does not match a known FF or Latch template.



Блять, они это серьёзно?
1522 381471
>>81462
А тебе с констрэйнами надо? Если нет, то поставь рядом Квартус - с ним ModelSim идёт в комплекте. Или Алтера Интел раздаёт. Но поиметь ModelSim всё же можно.
1523 381472
>>81469
И что ты там такое написал?
1524 381473
>>81469
Возможно тебе повезло и именно эта версия ise имеет баг. Попробуй поискать эрату.
mybutthurts.png25 Кб, 914x388
1525 381475
>>81472
Я ничего не писал, я открыл экзампл "стоп вотч".

Попробовал "always @ (posedge clk)" - аналогично, не взлетело. На XC9500XL всё ломается, ставишь обратно XC2C00 - всё заебись.
1526 381476
>>81473
Я нагуглил, что последняя версия, которая работает со второыми спартанами - это 10.1

Поставлю её.
1527 381477
>>81473
>>81472

К слову, я вчера пробовал свои силы в верилоге и для таргета выбрал эти XC9500XL, которые у меня есть (у них 5в толерантые входы и тут как раз надо такое).

Было много разных странных ошибок, вроде того, что выше. Хотя икарус верилог всё хавал.
1528 381478
>>81471

>А тебе с констрэйнами надо?



Желательно, так-то я игрался с икарус-верилогом, он интегрируется с гнушными тулами и можно делать простые вещи.

Попробую обновиться на 10.1, если будет такая же хуета - ну их нахуй, эти вторые спартаны.
1529 381479
>>81475

Ты специально блокирующее присваивание используешь? Ты или неимоверно крут и знаешь что делаешь, или наоборот.
fuckthatshit.jpg110 Кб, 497x640
1530 381481
>>81479

>Ты


>>81475

>Я ничего не писал, я открыл экзампл

1531 381482
>>81478
Лучше сразу ну их нахуй. На ровном месте такие грабли лезут. Если не любитель ковыряться в старье порвёшь пукан.
1532 381563
>>81482
А что из современного ширпотреба имеет 5в толерантные входы?
1533 381566
>>81563
Каноничные MAX7000S MAX3000, "толстые" MAX II (EPM1270 EPM2210), "толстые" MAX V (5M1270 5M2210).
Если только входы - можешь тупо на резисторах поделить если впадлу буферы искать. Сильно не радуйся, MAX II и MAX V - так же требуют один подтягивающий резистор для совместимости с 5В.
1534 381567
>>81563
А зачем тебе 5в выходы?
1535 381576
>>81567
Мне входы нужны для согласования с существующей 5в базой.
1536 381581
>>81566

> MAX II devices can be 5.0-V tolerant with the use of an external resistor and the internal I/O clamp diode on the EPM1270 and EPM2210


devices.

5в толерантные входы не требуют ничего для согласования с 5в системами. Это обычные 3.3v CMOS, ну и для выхода они предлагают опендрейн + пулапп. :(
1537 381584
>>81581
>>81576
Дяденька, определись.. Какой стул нужен?
Толерантность к ПРИЕМУ 5В (без выдачи сигналов 5В).
Полностью теплые и ламповые 5В на ВХОД и ВЫХОД?
Сейчас выход один - только буферы. Для нищебродов - обычные, питаемые напряжением принимающей стороны или нормальные буферы с двумя питающими напряжениями. Для параноиков в стиле "я не трогал, я просто смотрел" - есть 74LVC07A и подобное (open drain buffer)
Можешь взять обоссанный Flex10K - это FPGA с честными 5V IO, но есть проблемка с конфигурационными ПЗУ типа AT17 или можешь сам конфигурить ее отдельным МК.
1538 381589
>>81584
Я везде писал про 5в толератные входы. из того, что это может - сейчас это остатки xc9500XL, второй спартан, coolrunner xpla3?
А так же море микроконтроллеров с армами (которые вполне могут сэмплировать на мегагерцах ГПИО и делать, что душе хочется). Но это получается дорого и через жопу.
764-3967.jpg481 Кб, 1000x801
1539 381601
>>81475

>if (reset == 1'b1)


Замени на if (reset). ISE не поддерживает логические выражения в условиях, там можно указать только конкретный wire или reg.
1540 381620
>>81601
Это была версия 6.1, я её удалил уже. Повторю проблему - синтез проходит для CPLD xc2c00, но фейлится для CPLD XC9500XL.

Откуда информация, что он не поддерживает подобные конструкции? Для FPGA & CPLD CoolRunner всё чётко.
1541 381627
>>81620

>Откуда информация, что он не поддерживает подобные конструкции?


Из опыта. Я не знаю, может, и поддерживается, а это я рукожоп.
Просто недавно была как раз такая же проблема, чип XC2C256. Код с if(a & b) не собирался. Написал
wire c;
assign c = a & b;
и написал в том always, на который он плевался if(c) - всё заработало.
1542 381628
И добавлю, что у меня это было в 14.7.
1543 381629
Держу Вас в курсе. В субботу удалось скомпилить ядро сеги под Зайлинкс, потом меня срубил грипп, всё воскресенье проволялся с температурой.
Дальше нужно изучать формат ром-файлов от сеги и разбираться как всё это дело запускать.
1544 381630
>>81627
>>81628

Интересно, я когда игрался с 6.1 - мне начало казаться, что у синтезатора для xc9500 есть проблемы, когда одному и то же регистру ты суёшь из разных always @(posedge / negedge) блоков.
Перемещение логики в один блок починило жалобы. Вообще сдаётся мне, что он глючный, прям пиздец.

Уже начал смотреть на альтеру, латтис и актель.
1545 381631
>>81628
Не может такого быть, 14.7 отлично работает.
1546 381632
>>81630

>у синтезатора для xc9500 есть проблемы, когда одному и то же регистру ты суёшь из разных always @(posedge / negedge) блоков


В других САПР такое вообще не поощряется и на это ты получишь ошибку. По-хорошему, так делать вообще нельзя.

>Уже начал смотреть на альтеру, латтис и актель.


Вот у Альтеры ты точно получишь отбивку на попытку обращаться к одному reg из разных блоков always.
>>81631
Я бы не писал, если бы сам не столкнулся с такой проблемой 2 недели назад.
1547 381636
>>81632
У меня был большой проект на спартане 6. Всё совпало с результатом симуляции на 100%
Хотя у меня очень примитивный стиль написания кода. Я всякую хуйню вроде блокирующих присваиваний и другие конструкции, в результате которых не уверен на 100% вообще не использую.
1548 381637
>>81632

>Вот у Альтеры ты точно получишь отбивку на попытку обращаться к одному reg из разных блоков always.


Поддвачиваю. Сам соснул хуйцов при попытке сбрасывать-устанавливать триггер из разных always блоков.
Код компилится, можно прогнать симуляцию. Соснул на моменте синтеза, где явно писалось - ты упоролся, пошел на хуй..
1549 381638
>>81630

>жалобы


Всего лишь? Я бы за такое сразу давал в табло.
1550 381640
>>81630

>когда одному и то же регистру ты суёшь из разных always @(posedge / negedge) блоков


Ты же понимаешь, что это быдлокод?
1551 381642
>>81640
Так это был синтезируемый быдлокод, так было проще.
1552 381643
>>81638
за што это?
1553 381645
>>81642
Это не имеет значения, что он там синтезируется.
always @(negedge) - вообще хуёво ложится на архитектуру FPGA, ведь все ячейки тактируются по переднему фронту. Значит синтезатор на клоковый вход ставит инвертор на луте. Я даже придумать не могу где такая конструкция нужна.
1554 381646
>>81645

> Значит синтезатор на клоковый вход ставит инвертор на луте.


И что плохого ты в этом видишь?

> Я даже придумать не могу где такая конструкция нужна.


Вытянуть лишний мегагерц по быстродействию?
1555 381648
>>81645
Наверное, имелось ввиду стандартное always @(posedge clk or negedge rst_)
1556 381654
>>81646

> что плохого ты в этом видишь?


Расходуется лишняя логика

>Вытянуть лишний мегагерц по быстродействию?


Каким образом?

>>81648
Тогда ок. Но есть нюанс, в некоторых архитектурах FF с ассинхронным сбросом может быть гораздо меньше, чем обычных.
1557 381656
>>81654

>Каким образом?


Сдвинул схему на полтакта и глитчи пропали.
Дяденька, я не настоящий сварщик - я маску на стройке нашёл.
1558 381658
>>81648

>имелось ввиду стандартное always @(posedge clk or negedge rst_)


Ха, в точку! Именно это и было, приседания логикой для ресета.
xilinxcpld.png29 Кб, 601x489
1559 381659
>>81645

>вообще хуёво ложится на архитектуру FPGA, ведь все ячейки тактируются по переднему фронту.



Речь шла про Xilinx CPLD, там сильно проще ваять комбинаторную логику (есть прямой сигнал и дополнение, широкая шина), чем полагаться на триггеры.
1560 381662
>>81659
Вдогонку, если смотреь на схему - то видно, что триггеры можно сетить-ресетить без клока. А в верилоге нельзя смешивать блокирующие и неблокирующие присваивания. Вопрос, как это заюзать?
1561 381665
>>81662
В список чувствительности олвейса внеси ассинхронный сигнал и сбрасывай/устанавливай по этому сигналу.

always @(posedge clk or posedge async_s) begin
if (async_s) rr <= 1; else begin //async
rr <= from_other_logic; //sync
end
end
1562 381687
>>81643
Во-первых, ты не понимаешь, какое железо ты описываешь. Оно на архитектуру ПЛИС не ложится, триггеры переключаются только по posedge. Negedge означает, что клок будет где-то инвертирован с соответствующими неявными, но значительными последствиями для клокового дерева в виде ухудшенных временных характеристик и выросшего потребления клоковых ресурсов. Одновременное тактирование по posedge и negedge на архитектуру ПЛИС не ложится никак, не умеют триггеры такого.

Во-вторых, ты забываешь, что HDL — язык описания схем. Как тебе идея на обычной принципиальной схеме один и тот же транзистор рисовать два раза, в двух разных местах заводя ему на базу разные сигналы, потому что автору показалось, что так удобнее выразить его идею? Не хочется в табло ему дать?
1563 381689
>>81687

>Одновременное тактирование по posedge и negedge на архитектуру ПЛИС не ложится никак,


А как же ddr?
1564 381690
>>81689
Делаются на специальных буферах ввода/вывода, которые умеют работать только на ноги, и у которых задача — разделить ддр-сигнал на два, как раз-таки чтобы внутренняя логика могла с ним работать.
1565 381719
>>81690
Ладно DDR, про это наверное всем понятно. Но как ты будешь приделывать АЦП, которые тоже часто выдают результат по двум фронтам?
1566 381722
>>81719
Это тоже DDR. DDR, если что — это не память для пеки, а double data rate, передача битового потока на удвоенной частоте клока. Делается, соответственно, на всё тех же самых специализированных буферах в/в.
1567 381724
>>81722
Да, тут я несколько неправильно выразился, т.к. часто этой аббревиатурой называют именно память.

>Делается, соответственно, на всё тех же самых специализированных буферах в/в.


Пример того как это делается можешь дать? К примеру, на spartan 6, пусть и устаревшем.
1568 381725
>>81724
wire posedge_data, negedge_data, clk, reset, input_ddr_signal;

IDDR2 # (
.DDR_ALIGNMENT("C0"),
) IDDR2_inst (
.Q0(posedge_data),
.Q1(negedge_data),
.C0(clk),
.C1(!clk), // не ссы, здесь клок перевернётся аппаратно внутри самого буфера. Он это умеет.
.CE(1),
.D(input_ddr_signal),
.R(reset),
.S(0)
);


Качни UG615 и UG381.
1569 381727
>>81687

>Во-первых, ты не понимаешь, какое железо ты описываешь. Оно на архитектуру ПЛИС не ложится, триггеры переключаются только по posedge. Negedge означает, что клок будет где-то инвертирован с соответствующими неявными, но значительными последствиями для клокового дерева в виде ухудшенных временных характеристик и выросшего потребления клоковых ресурсов. Одновременное тактирование по posedge и negedge на архитектуру ПЛИС не ложится никак, не умеют триггеры такого.



Во-первых, я 100% знаю, что и как и как описываю и как оно ложится на ярхитектуру того, что использую. Тригерры имеют отдельно входы для сет и для ресет, а дистрибуция птермов и клока уже из коробки имеет и прямые и инверсные линии, прям сразу.

см >>81659

>>81687

>Во-вторых, ты забываешь, что HDL — язык описания схем. Как тебе идея на обычной принципиальной схеме один и тот же транзистор рисовать два раза, в двух разных местах заводя ему на базу разные сигналы, потому что автору показалось, что так удобнее выразить его идею? Не хочется в табло ему дать?



Я на схеме на один триггер могу завести несколько сигналов, если сигналы будут идти через некоторое количество гейтов для комбинаторного выделения нужного. В чем проблема?
coolrunner2.png28 Кб, 693x525
1570 381728
>>81687

>триггеры переключаются только по posedge.



Смотри на ячейку. Видишь триггер? Видишь, что его можно сеттить и ресеттить без клока?
1571 381729
>>81665

>В список чувствительности олвейса внеси ассинхронный сигнал и сбрасывай/устанавливай по этому сигналу.


>


>always @(posedge clk or posedge async_s) begin



Да, действительно.
1572 381732
>>81728
Бля, у ЦПЛДшников, по ходу, какая-то вообще своя атмосфера безумия. Ну их нахуй. Ты прав, делай что хочешь.
1573 381733
>>81732
Какое, блять, безумие?

Поддержка дуал-эдж триггеров из коробки, и глобальные сет-ресеты без клока. В примерах от зайлинкса явно видно другой способ ака стиль написания кода (для утилизации фич цплд)
1574 381734

> These devices feature a MicroBlaze™ soft processor running over 200 DMIPs with 800Mb/s DDR3 support built on 28nm technology.



Это про спартан7. Вопрос: почему 800 мегабит? Это всего 100 мегабайт в секунду. Что за говно?
1575 381736
>>81734
Объебались, скорее всего. Наверняка речь о DDR3-800 с 800MT/s. Надо ещё умножить это на ширину шины данных.
1576 381737
>>81736
(а то и вообще о DDR3-1600 с 800MHz частотой шины и вдвое большим количеством передач)
1577 381750
>>81732
Такие же тригеры есть и в FPGA, но мало.
12769070600.jpg42 Кб, 600x599
1578 381752
>>81727

>Во-первых, я 100% знаю, что и как и как описываю и как оно ложится на ярхитектуру того, что использую



Плохие новости, ты на гребне глупости
1579 381754
>>81752
Спасибо за пояснение и полезный пост. Теперь я понял, почему ISE любит XC2C00 и не может в свои же XC9500XL.

Как почитаешь постеров - так столько нового узнаешь Nyet
1580 381755
Пыщь-пыщь котятки, подскажите, какой сейчас есть быстрый и лёгкий способ получить 10 гигабит для передачи стрима данных на комп?

ЮСБ3.1, тхандер-болт или ещё что?
1581 381756
>>81755
PCI-E стандартный способ.
1582 381757
>>81756
(В том числе отладочных плат полно, которые разъём под слот имеют соответствующий.)
1583 381758
>>81755
ethernet
1584 381762
>>81756
Я думал про него, но чёрт побери, дома только 2 ноута. Никто не видел миниПИСИАЙ-Е в ноуты? ЕМНИП там могут быть проблемы со скоростью конфигурации ПЛИС.

>>81758
10 ГБе или оптику?
stmchine.png19 Кб, 446x577
1585 381763
>>81475
Некрофил снова на связи, поставил 10.1 айс.

Теперь stopwatch_cr2 на xc9500xl не синтезируется из коробки, но изменение условия с убиранием дуалэдж триггера по фронту и спаду клока - всё починило. Что радует.

Новое сообщение об ошибке было такое:
ERROR:Xst:899 - "stmchine.v" line 43: The logic for <current_state> does not match a known FF or Latch template. The description style you are using to describe a register or latch is not supported in the current software release.
1586 381769
>>81754

>понял, почему ISE любит XC2C00 и не может в свои же XC9500XL.



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

Короче, пиши простым языком, без выебонов и всё будет ОК.
1587 381770
>>81763
Объясни, зачем тебе этот индусский код?
Зачем описывать FSM в двух олвейс-блоках?
1588 381772
>>81770
Структурирование для удобства чтения?
1589 381773
>>81770
Это вообще-то норм практика — разделять комбинационную и последовательную логику.

Вот только то, что на картинке, не похоже на разделение последовательной и комбинационной логики, а похоже на говно.

Из первого блока надо убрать всё, что связано с управлением rst и clken, заменить список чувствительности на @(*) и все неблокирующие присваивания (<=) на блокирующие (=). И быть твёрдо уверенным, что в этом блоке никаких триггеров не генерируется, всё защёлкивание происходит во втором блоке;

rst и clken управлять в отдельном (третьем по счёту) always @(posedge clk) и никак иначе.
1590 381774
>>81772
В чем удобство?

https://pastebin.com/Dw1RhsF7

Вот накидал как бы я сделал. Не надо скакать по коду. Синхронная секция в одном месте, ассинхронная в другом.
1591 381775
>>81773
Вообще, универсальное правило: блоки always должны быть только с @(*) и = и тогда это комблогика либо с @(posedge clk) и <= и тогда это триггеры.

В исключительных случаях допустимо @(posedge clk, negedge aresetn) если очень хочется сделать асинхронный резет, и ты точно понимаешь для чего он тебе нужен.

Всё остальное — НАХУЙ.
1592 381776
>>81775

>В исключительных случаях допустимо @(posedge clk, negedge aresetn) если очень хочется сделать асинхронный резет, и ты точно понимаешь для чего он тебе нужен.



Это зависит от архитектуры. У него старые цплдшки, поэтому ассинхронный сброс допустим.
1593 381777
>>81774

>assign rst = (state == clear) ? 1'b1 : 1'b0;



Так-так, резет генерируется из комбинационной логики, соответственно может дёргаться между тактами, соответственно, может рандомно дёргать асинхронные ресеты, если он на них заведён. Не надо на эти грабли наступать.
1594 381778
>>81776
Допустим он где угодно. А вот для чего он может быть нужен? Зато могу сказать, как он может быть опасен: если на него по распиздяйству заведён вот такой вот сигнал — >>81777 — он может срабатывать тогда, когда не нужно.
1595 381779
>>81777
В исходном коде >>81763
ресет какбэ тоже ассинхронный.
1596 381780
>>81779
Этот исходный код даже не компилируется, похож на говно и вообще написан нубом, который сюда пришёл за советами. Слабое оправдание.
1597 381781
>>81780
Каким нубом? Этот код из примеров xilinx или еще откуда-то. Вот нагуглил.
https://manualzz.com/doc/7987510/xcell29
1598 381782
>>81778
И давай по подробнее. При каких условиях здесь rst будет дрыгать между тактами?
1599 381783
>>81781
Ну ок. За 1998 год я судить, пожалуй, не возьмусь.
1600 381785
>>81780

>и вообще написан нубом, который сюда пришёл за советами



Им что-ли >>81727 ?

>Во-первых, я 100% знаю, что и как и как описываю и как оно ложится на ярхитектуру того, что использую.

1601 381787
Позовите меня, пожалуйста, в тред, когда тут цплд закончится.
1602 381788
>>81787
Вернись, мы больше не будем.
1603 381791
>>81782

>И давай по подробнее. При каких условиях здесь rst будет дрыгать между тактами?



Вот смотри, состояние clear=000. Резет генерируется лутом из трёх сигналов, соответствующих трём битам. Если все три бита нулевые, резет на выходе лута становится 1.

Далее, у тебя есть два состояния: zero=001 и start=010

Допустим, fsm переходит из состояния zero в состояние start. При этом fsm[0] становится 0, а fsm[1] из 0 становится 1. Если проект собрался так, что из fsm[1] сигнал идёт дольше, чем из fsm[0], то при таком переключении возникнет ситуация, когда с точки зрения лута fsm[0] уже стал 0, но fsm[1] ещё не стал 1 и продолжает быть видимым как 0. Тогда на луте все три сигнала оказываются нулевыми, и он выдаёт резет. При том, что стояние clear не наступало, а был всего лишь переход из zero в start.
1604 381795
>>81791
Понятно. Не сталкивался с подобным, видимо потому что не использую ассинхронные ресеты.
1605 381797
>>81791
В какой книге годно описано о смешении ассинхронного и синхронного?
8fb0209ce53.jpg59 Кб, 500x700
1606 381799
>>81780
Это код, котрой идёт в комплекте как минимум с ise 6.x + ise 10.x

Он собирается без предупреждений, но под как минимум оин таргет фейлится.

Кто-то усиленно читает жопой. Здесь так принято, да?

>>81785
Мой коммент о том что я знаю, что делаю, относился к коду из пары десятков строк, который был для XC9536XL. Там я смотрел на итоговый RTL. Примеры из комплекта решил зююзать для тестирования багов синтезаторов - потому что безобидные вещи фейлились без основания.
1607 381803
>>81799

>безобидные вещи фейлились без основания


Но там далеко не безобидные вещи
ise-ise-baby.png110 Кб, 1366x768
1608 381805
>>81462

>iSim не вижу.



Короче, дело к ночи уже, а воз и ныне там. В 10.1 типо есть iSim, и он типа должен запускаться,

>Running ISim simulation engine ...


>This is a Full version of ISE Simulator(ISim).



Однако нихера нет. Ни окошка, ни интерфейса, ни активных кнопочек. Проект - каунтер 4 бит для 3спартана.

Винда 7, х64. ISE x64 не пускается - сразу крэш. А вот 32ая версия - пускается. Кстати драйвера на платформ кабель встали и работают, импакт работает с юсб.

Как же меня это заебало.
1609 381807
>>81805
Ставь виртуалку в win XP
1610 381813
>>81807
Может в линукс поставить? Я поискал, бинарника isimgui нигде нет. Неудивительно, что он не запускается. Пизда, нихуя не понятно.
1611 381814
>>81813
Кстати, я не ставил ничего для работы с virtex. Может симулятор с ними идёт?
1612 381826
>>81813
Смотри, винда есть хп, 7, есть 8, 10 и всё. А линуксов целый зоопарк дистрибутивов, версий. Для тяжелого софта обычно пишут указывают конкретную сборку линукса, в остальных работоспособность не гарантируется. Так что под линуксом может быть еще больше приколов.
>>81814
Судя по логу симулятор есть, но он почему-то не запускается. Возможно по той же причине, что и 64х версия ise. Короче попробуй виртуалку с ХП.
1613 381885
>>81826
Я погуглил, ISE - глючный кусок говна, если судить по форумам и саппорту от зайлинкс. https://forums.xilinx.com/t5/Simulation-and-Verification/Isim-crashing-Windows-7-VM/m-p/219187#M5220

Оно глючит на разных версиях, рекомендуют или ХП или Линукс. Какой пиздец, и это - лидеры в области ФПГА. Я боюсь даже представить, что будет, если я возму актель-микросеми или альтеру-интель.
1614 381902
>>81885

> ISE - глючный кусок говна


>Какой пиздец, и это - лидеры в области ФПГА



Использует древнее говно, удивляется что оно глючит.
1615 381905
>>81902
Оно глючило и в 2010-2011 и глючит сейчас. Внезапно.
1616 381912
>>81885
Поэтому все нормальные люди перешли на 7ю серию либо вообще ультраскейл. Начинать новые проекты на старом железе это такое.
Тем более сейчас младшие модели цинков и спартанов 7 прилично подешевели.
1617 381932
>>81912
huh?
в реальном мире не для всех задач нужны кинтексы, зинки и спартаны. есть задачи - замены горсти горелой логики в ДИП-корпусах плис-ом. или согласование инерфейсов
здесь цплд-шки заебись, пока ещё есть 5в толерант опции
1618 381943
>>81932
Сочувствую, братиш. Наверняка очень неблагодарное занятие.
1619 382024
>>81943
Год назад сталкивался 8088. Да, с этим самым.
1620 382303
>>81261

>Где ж ее еще найти эту pro?


Пересобери проект и дело в шляпе, чё ты как этот.
1621 384430
>>81261

>В qpf-файле сказано, что требуется версия 17.0


qfp-файл можно вообще сделать пустым, вся важная информация находится в qsf
1622 384475
>>81645

>синтезатор на клоковый вход ставит инвертор на луте.


Не на луте, во всяком случае у Сыклонов. У них на входе ячейки есть специально подключаемый инвертор для таких целей. Скомпиль и просмотри как выглядит в чиппланере.

>Я даже придумать не могу где такая конструкция нужна.


Да сплошь и рядом, когда работаешь с асинхронными сигналами на входе ПЛИС, которые не удаётся перетактировать на свою частоту по причине их высокой скорости.
1623 384476
>>81687

> Одновременное тактирование по posedge и negedge на архитектуру ПЛИС не ложится никак, не умеют триггеры такого.


Умеют, но не все.
1624 384478
>>81791

>Допустим, fsm переходит из состояния zero в состояние start. При этом fsm[0] становится 0, а fsm[1] из 0 становится 1. Если проект собрался так, что из fsm[1] сигнал идёт дольше, чем из fsm[0], то при таком переключении возникнет ситуация, когда с точки зрения лута fsm[0] уже стал 0, но fsm[1] ещё не стал 1 и продолжает быть видимым как 0. Тогда на луте все три сигнала оказываются нулевыми, и он выдаёт резет. При том, что стояние clear не наступало, а был всего лишь переход из zero в start.


Всё это называется гонки сигналов.
1625 384518
>>84475

>Да сплошь и рядом, когда работаешь с асинхронными сигналами на входе ПЛИС, которые не удаётся перетактировать на свою частоту по причине их высокой скорости.


Это, например, что? Я честно не могу представить.
1626 384519
>>84518
Хотя, наверное, могу. Приёмник радара какого-нибудь после фильтра со сжатием импульсов.
1627 384537
>>16943 (OP)

ИМХО использовать ПЛИС стОит, когда стоит задача обработки цифрового сигнала и вот ну никак иначе. А когда начинается сложная логика или протокол связи, то все-равно внутрь ПЛИС приходится загружать какой-то из доступных микроконтроллеров (что приводит к еще большему веселью, и никак не отменяет нужды читать доки).

Ну и еще есть стандартные проблемы с восприятием подхода к… даже язык не поворачивается сказать «программированием ПЛИС». Это не программирование в привычном понимание. Программа — набор последовательных инструкций. В ПЛИС с непривычки очень здорово запутаться можно, а каждая ошибка превращается в 10 минут (почти что минимум) безделья и попивания чая на пересборку проекта.

Ну и чтобы еще больше «уравновесить» восторг статьи, чуть критики перечисленных плюсов:
1) не надо читать доки на МК. Зато придется читать доки на: USB, Ethernet, думать как перетащить известную написанную на С/С++ реализацию TCP/IP в ПЛИС, CAN и прочее-прочее добро. То, что есть готовые модули — это хорошо, но документацию то значит придется читать на них, не? а когда чужой модуль начинает вести себя… непредсказуемо? Да он же бесплатно был взят из инета! какие претензии?
2) ну про дедушку пример можно и про плис сказать. в сарайке есть плис, вот из него и соберем. А с тем, что есть эффективный по функциональности, цене в серии и, страшно сказать, времени на разработку МК под этот род задач, даже и разбираться не будем — лень же читать доки и все это в голове держать.
3 и 4ое — мне кажется когда в годах 70х придумывали языки программирование, то в каждой презентации были вот эти слова про «теперь можно сделать хорошо отлаженный модуль», «легко импортировать чужие модули».
1628 384543
>>84537

Конечно не моего ума дело, но я бы запретил на «Хабре» статьи подобного рода. Во-первых статей для начинающих плисоводов в И-нете на всех возможных языках (включая, разумеется, русский) пруд пруди. А главное — авторы подобных статей не понимают одного: программирование FPGA нельзя «попробовать»! Это можно попробовать «попрограммировать» на компе или игрушечную платку с «восьмирёночком» типа «Ардуино». А вот с ПЛИС — это как изучать иностранный язык или играть на музыкальном инструменте, либо ты этим занимаешься по-серъёзному и регулярно, либо не нужно тратить на это время вообще. Кроме того, нужен совсем другой объём знаний по сравнению с программированием. По-крайней мере, истинный плисовод должен очень хорошо разбираться в электронике, как показывает моя многолетняя практика вменяемого плисовода можно сделать только из грамотного электронщика.

кстати, почему на зашквабре такой пиздец с дефисами? "все-равно", "по-крайней мере", хочется их убить всех нахуй.
1629 384545
>>84543
Только вот скоро они будут не нужны. Протоколы, алгоритмы обработки сможет описать любой нормальный программист, используя созданный для этого декларативный функциональный язык, а задача подгонки этого под нужный чип ума не требует и её можно доверить технику, закончившему как-бы-вуз с тройками в дипломе.
1630 384546
>>84543
Зачем ты читаешь петухабр?
1631 384548
>>84545
С каких это пор программисты считаются более квалифицированными чем электроники?

>>84537

>А когда начинается сложная логика или протокол связи, то все-равно внутрь ПЛИС приходится загружать какой-то из доступных микроконтроллеров



Может быть похоливарим насчёт микроконтроллера, который приходится загружать в ПЛИС?
1632 384549
>>84548

>считаются более квалифицированными чем электроники?


С тех пор, как стали зарабатывать больше. Дно из геймдева зарабатывает больше, чем топ-электронщик из нии.
1633 384550
>>84549
Ну "дно из геймдева" не такое уж и дно с точки зрения квалификации, по идее. Это одна из самых байтоёбских специализаций в программировании.

>>84548

>С каких это пор программисты считаются более квалифицированными чем электроники?


С каких это пор сравнивают "квалифицированность" между разными инженерными профессиями? Что это за методика такая?
1634 384552
>>84549
Это не показатель квалификации. Тем более в местах, где не разрабатывается коммерческая гражданская электроника.
1635 384553
>>84550
Спроси у >>84545
1636 384554
>>84553
Так он же вроде описывал, что для выполнения макако-задач т.е. тех, где люди подумали уже за тебя особая квалификация в вопросе не требуется.

>>84552
Поддержу, но у меня в ДС2, геймдев-макака получает больше ну или примерно так же, чем ведущий инженер-схемотехник в ГеоСкане. А там как раз разрабатывается коммерческая гражданская электроника (дроны для геодезической съемки).
1637 384555
>>84543

>Конечно не моего ума дело, но я бы запретил на «Хабре» статьи подобного рода.


Боишься конкуренции? Или того, что "элитное" плисоводство теперь будет доступно каждому мимокроку?

>Во-первых статей для начинающих плисоводов в И-нете на всех возможных языках (включая, разумеется, русский) пруд пруди. А главное — авторы подобных статей не понимают одного: программирование FPGA нельзя «попробовать»!


Ой, та ладно. Про микроконтроллеры тоже самое говорили, а теперь даже домохозяйка может сделать умную занавеску на ардуине по простым гайдам с ютуба.
1638 384556
>>84549

>С тех пор, как стали зарабатывать больше.


Великолепная логика, казнокрадов в таком случае можно всех переквалифицировать в доктора наук.
1639 384557
>>84555

> "элитное" плисоводство теперь будет доступно каждому мимокроку?


Не будет - платят за это мало. Только фанаты или кто влез в наивных 2000 и теперь из-за возраста деваться некуда.
1640 384558
>>84556
Они и есть доктора экономических и юридических наук.
1641 384559
Все из-за глупых фанатиков, у которых глаза горят, когда увидят железку. Меня однажды уговаривали на работу - "Поэксперементируете с нашей аппаратурой, пощупаете живьем, про что читали в универе". А зарплата маленькая и работать много.
1642 384560
>>84558

>Они и есть доктора экономических и юридических наук.


Квалифицированные? Или просто купили/нашли в интернете докторскую степень?
1643 384561
>>84555

>что "элитное" плисоводство теперь будет доступно каждому мимокроку?


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


Платка марсоход.
1644 384562
>>84560
Стоят во главе государства, управляют такими умниками, как ты - значит умнее тебя.
1645 384563
>>84562

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


Ну у них и денег больше чем у тебя, значит и поквалифицированее тебя будут.
1646 384565
Жирный, иди нахуй отсюда.
1647 384570
>>84559

>"Поэксперементируете с нашей аппаратурой, пощупаете живьем, про что читали в универе". А зарплата маленькая и работать много.


Так в чём проблема? Набей опыт 3-5 лет, выучи английский и заводи трактор, тут половина плисо-бояр с двача так сделала.
1648 384583
Пофлеймить насчёт процессорных корок не желаете?
1649 384584
>>84583
А что с ними?
1650 384586
>>84546
Загуглил, откуда была жирная паста постом выше, скопировал оттуда другую жирную пасту.
1651 384587
>>84583
Только если ты не шизик со сверхценной идеей про ПРАВИЛЬНУЮ архитектуру проца, которая решит все проблемы.
1652 384588
>>84587
В чем суть хайпа по RISC-V и в чем его удобство?
Зачем нужно большое количество реализаций одних и тех же инструкций? Чтобы получить железку которая производительнее в определённом юзкейсе, но при этом без геморроя запускает менее требовательные к производительности готовые программы?
Какие ещё профиты предлагаемого подхода?
Это явно не в отсутствие лицензионных отчислений, и так все будут платить за ядра, только не арму.
1653 384589
>>84550

>Ну "дно из геймдева" не такое уж и дно с точки зрения квалификации, по идее.


Таки да, у них в пределах рашки аналогичная хуйня, что и с электронщиками, желающих по фану ебаться с кватернионами за еду заметно больше, чем желающих их нанимать, поэтому рыночек давит в сторону снижения зарплат. Но ты всего лишь покормил жирного, у которого функциональщина вытеснит хдл, хотя за 60 лет она не осилила добраться даже до промышленного программирования.
1654 384591
>>84589

>Таки да, у них в пределах рашки аналогичная хуйня, что и с электронщиками


Рофл в том, что геймдевы на подсосе не только в рашке.

>Но ты всего лишь покормил жирного, у которого функциональщина вытеснит хдл, хотя за 60 лет она не осилила добраться даже


Да хуй его знает, бро. Нейроночки тоже 60 лет стартовали, пока не появилось железо способное их использовать и железо способное их обучать (за какое-то адекватное время). Может быть через десяток лет напишут какое-то сверхпрожерливое говно транслирующее функциональную парашу в сносный ХДЛ-вариант.
Алсо сейчас уже наверно 50% девайсов собирается из покупных IP-ядер, там и знаний программирования не надо, знай подключай блоки по инструкции.
1655 384593
>>84591
Да, проблема действительно не ограничивается рашкой. Но суть всё та же, не квалификация, а сугубо рыночек порешал зп в геймдеве.

Game industry is lower across the board and it’s not surprising at all. You have a million people who all want the same couple thousand jobs because they somehow think programming for games is a lot more “fun” than other programming and they are passionate about games.

That means supply is extremely high and demand is extremely low, companies have all the bargaining power and even when you get hired you have basically no leverage to ask for raises.

Couple that with the longer than average hours and high expectations on performance and there you have the biggest reason a lot of people who set out to make games never actually make a serious attempt once they get established in other industries that pay a lot better, work less hours and are located in areas that cost half what the game industry “hubs” do to live.
1656 384595
>>84591

>Может быть через десяток лет напишут какое-то сверхпрожерливое говно транслирующее функциональную парашу в сносный ХДЛ-вариант.


Дай бох, чтобы через десяток лет хотя бы поддержку синтезируемых конструкций системверилога завезли уже целиком, наконец.
1657 384597
>>84593

>Но суть всё та же, не квалификация, а сугубо рыночек порешал зп в геймдеве.


Так я и не спорил, просто уточнил что это не проблема рашки.
>>84595
Кек. Да вроде актуальные топовые ModelSim и SynplifyPro уже умеют, не?
index.jpeg8 Кб, 264x191
1658 384599
>>84562

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

1659 384600
>>84597

>не проблема рашки.


За рубежом hdl тоже оплачивается ниже, чем web?
1660 384601
>>84600
Я только про геймдев говорил, ну ты чо.
1661 384606
Веб сложнее, чем FPGA. Когда пишу на верилоге я ощущаю себя макакой из-за ограниченности сего процесса. Хоть какое-то разнообразие я получаю только когда призодится решать архитектурные задачи, но мне их достается мало.

Грубо говоря день-два продумываю архитектуру и после этого на долгое время ухожу в рутину rtl-кодирования, потом колесо сансары делает новый оборот.
1662 384607
>>84606

>Веб сложнее, чем FPGA


Почему тогда сайтики делают на фрилансе даже школьники, а логические восьмиканальные анализаторы на ПЛИСах - единицы?
1663 384609
>>84607
Сайтики сайтикам рознь, разве не так?
Всякие штуки за которых хорошо платят не каждому школьнику по зубам.
1664 384610
>>84607
Был бы такой же спрос на стоканальные логические анализаторы, их бы тоже делали школьники.
1665 384611
>>84606

>Хоть какое-то разнообразие я получаю только когда призодится решать архитектурные задачи, но мне их достается мало.


>


>Грубо говоря день-два продумываю архитектуру и после этого на долгое время ухожу в рутину


Про веб тоже самое же, чо ты? И про гейдев.
1666 384612
>>84595
Читал на хабре около бредовую статью o разработке на fpga, в комментах оказалось автор на фирме программит на systemc какие-то инкапсуляторы потоков, нихуя не умеет и не умел в verilog/vhdl и электронику.
1667 384614
>>84612
Да просто у программистов денег дохуя, вот они и могут себе позволить купить отладку с FPGA чтоб чисто ради фана поковырять новую для себя технологию, после чего пишется бредовая статья на петухабр, а отладка отправляется в стол.
1668 384617
>>84537

>то все-равно внутрь ПЛИС приходится загружать какой-то из доступных микроконтроллеров


Да вот не скажи. Я Езернет реализовал без всяких этих ваших Ниосов.

>>84543

>как показывает моя многолетняя практика вменяемого плисовода можно сделать только из грамотного электронщика


Скорее из грамотного прогера, ибо проектирование на плис всё же ближе к прогерству нежели к.
1669 384624
>>84617

>Скорее из грамотного прогера, ибо проектирование на плис всё же ближе к прогерству нежели к.


>


Предлагаю сойтись на том, что грамотный прогер это в первую очередь грамотный электронщик(хотя бы в той электронике, которую он программирует), ибо сначала было слово электронное устройство и только потом программирование, а любителей программировать "черный ящик" на сверхвысокоуровневом языке, предлагаю отправлять к чепушиле, который весь этот холивар и затеял.
1670 384627
>>84537
Бред полнейший.

>А когда начинается сложная логика или


Обработчик цифрового сигнала не должен как-то управляться? Самый простой пример - радиоприемник с цифровой обработкой сигнала и дисплейчиком с менюшкой.
1671 384631
Сколько в дс2 среднему плисоводу платят? И где мы нужны?
1672 384632
Какие высокоскоростные (100MHz на пин) разъемы используют в недорогих али бордах? А то один фирменный разъем плат расширения xilinx стоит как борда с али.

Как та борда на Kintex7+sfp с али. Только там одни sfp, а мне нужно 12битную шину передать-принять.
1673 384633
>>84632
Гугли pinhead, они деляться по папа-мама и шагу, 2.56, 2, и дробное от этого
1674 384634
>>84633

> шагу, 2.56, 2,


И какие потянут 100MHz?
1675 384635
>>84632
https://www.analog.com/ru/design-center/evaluation-hardware-and-software/evaluation-boards-kits/dc854d-b.html
130Msps ADC. Обыкновенные штыри с шагом 2,54. Так что анон выше прав.
1676 384636
>>84634
Да, но лучше конечно lvds
А не проще к SFP подрубить ту вторую плату?
1677 384639
>>84636

>lvds


У него куча разъемов
1678 384640
>>84624
Так то да, речь не о всяких там java-обезьянах, а о прогерах железа. Но чтобы такому прогеру успешно кодить - не обязательно ему быть гуру электроники, достаточно знать какие напряжения имеют логические 0 и 1.
1679 384642
>>84639
У кого него?
1680 384643
>>84640

>достаточно знать какие напряжения имеют логические 0 и 1


Тонкота пошла
1681 384644
>>84632
100MHz можно и обычные штыри выводить, в чем проблема?
1682 384653
>>84609
Вебмакака, пожалуйста.
Сайты это либо интернет-магазины, либо сайт-визитка, всё делается в течении пары часов по туторам с интернета.
1683 384655
>>84643
Будто не так.
1684 384692
>>84588

>В чем суть хайпа по RISC-V и в чем его удобство?



Нельзя просто так и реализовать, например, процессор с инструкциями АРМ. А РИСК-5 - можно. Идея поиметь открытую и бесплатную ИСА, чтоб программисты нарожали компиляторов, линкеров и прочего, и бесплатно без смс и регистрации.

В целом тот же АРМ выглядит удачнее, но деньги и лицензии.
1685 384719
>>84653

>Вебмакака, пожалуйста.


Мимо.

>Сайты это либо интернет-магазины, либо сайт-визитка, всё делается в течении пары часов по туторам с интернета.



Помигать диодиком можно в течении пары часов по туторам с интернета.
1686 384743
>>84692

>В целом тот же АРМ выглядит удачнее



Чем?
1687 384744
>>84743

>Чем?


Чем RISC-V.
1688 384754
>>84744
Это не ответ. Давай сравнивать.
RISC-V использует трехадресные команды?
RISC-V имеет сколько реализаций?
А разных корок ARM десятки. Что ты сравниваешь - архитектуру или реализацию? Или инфраструктуру - компиляторы, отладчики, библиотки?
1689 384917
Подкиньте идейку хоббийного проекта на FPGA
1690 384918
>>84917
SDR эмулятор сигналов ГПС (спуфить ГПС)
blob.jpg321 Кб, 2268x1204
sage 1691 384936
Это пердуино тред?
Где взять скетч "blink" под эту херню и как ее вообще подключать-включать? В самой пердуиноиде ничего не нашел с похожими именами. Как добавить их поддержку?
Куда подавать питание, как и чем прошивать прошивку, куда и как подключать светодиод?
Смогу помигать одним светодиодом или на большее число хватит? Хватит ли на что-то большее чем мигалка светодиодом или облажался при выборе камня для игр? В перспективе смогу подключить пару серв или часы реального времени DS1337, экран 16х2 и пару кнопок?
1692 385074
>>84936
Когда будут пруфы с супом приходи.
blob3.jpg542 Кб, 2378x2096
1693 385080
>>85074

>пруфы с супом


Извиняй, запас Дошиков закончился, надо бы пополнить. Хотя мне больше нравится Троллтон.
Но нахуя? Вот тебе пара светодиодов которые планировал подключить и ими же помигать. Как подключать - в душе не ебу, обратился за помощью, а меня послали на хуй в столовую.
1694 385096
>>85080
Зойчем скрывать серийник?
1695 385098
>>85080
Что ты задумал, извращенец?
1696 385108
>>85080

Красный, жёлтый, зелёный светодиоды как бы намекают что ты должен моргать светодиодами на Ultra HD матрице?
А что если у тебя ничего не получится?
1697 385109
>>85108
Надо было класть Red, Green, Blue. Тогда интереснее. А пока больше на светофор похоже. А для светофора за глаза достаточно и воронежской ПЛИС. Да и вообще, ПЛИС для светофора это как микроскоп для гвоздей.
1698 385113
>>85109
Будет светофор с ну очень низким latency
1699 385116
>>85113
Красный и зелёный будут меняться с частотой 300МГц? Полезно, а то частенько заёбываешься ждать, когда уже наконец зелёный включится.
1700 385128
>>85096

>Зойчем скрывать серийник?


Что бы не спрашивали насколько это древнее и засохшее говно мамонта. 1225

>>85109

>А пока больше на светофор похоже


O RLY? Таки можно к нему подключить аж три светодиода? В постах выше никто так и не ответил - получится или нет подключить более одного светодиода.
Раскусил ты мой коварный план. Даже если не получится светофор - видимо будет мигалка из одного светодиода на елку под Новый Год. Осталось дело за малым - узнать как подключать светодиоды, как подавать питание, как заливать прошивку и в чем создавать прошивку? В пердуиноиде не нашел ее поддержки.

>>85116

>меняться с частотой 300МГц


Это много или мало? Есть с чем сравнить для понимания?
1701 385129
>>85128
Как-то ты толсто троллишь. Осеннее обострение?
У тебя чип, который как несколько зарпkат стОит, и кто бы его дал поиграться человечку, не знакомому с HDL. Таки обострение.
1702 385130
>>85129
Он его наебее заказал. Хотя да, для плисовода это большие деньги.
1703 385133
>>85128

>как подключать светодиоды


Держи, жирный:
https://www.youtube.com/playlist?list=PL4UMfOeGYsvbPDapirH9GOJ93CBSOe49Y
sage 1704 385135
>>85133
Нет, задачу чтобы мигало хоть как-то, правильнее будет решать иначе >>65632
1705 385140
>>85130
Хоть кто-то внимательный. Почему бы и нет? Для особо бредовых и извращенных фантазий должно хватить.

>>85135
Поддвачиваю. У него же в лекции https://youtu.be/Jt87cbQThSc?t=2467 видел тактовый дегенератор из инверторов и отключенной оптимизации. Но это уже совсем экстрим.

Вот что интересно - так это зачем огромная куча тактовых входов у ПЛИС, исключая подключение LVDS каналов/когда надо завести далеко не одну частоту/удобство разводки? У тех же циклонов в 144 ногом корпусе кажется 16 тактовых входов. Есть ли смысл подавать один и тот же тактовый сигнал на например на 4 тактовых входа или можно на один и размножать его внутри ПЛИС?
В платке с EP3SL200 вообще какой-то бред - одна обычная дифпара + выход PLL идут на внешнюю микросхемку PLL Si5326с (с возможность выбора источника тактирования - два с FPGA и внешний генератор) и ее два выхода PLL идут на 2 разных тактовых входа FPGA. В чем сакральный смысл?
Цепочку генератор-pll-тактовый вход могу понять, а если включать выход внутреннего pll есть еще один независимый генератор с прямым подключением, от которого можно запитать внутренни pll на внешний pll и от него же снова тактироваться. Не понимать.
1706 385144
>>85140
Тут действует принцип кашу маслом не испортишь.

Допустим тебе потребовалось реализовать много однотипных интерфейсов с внешним клоком - тогда и пригодится огромное число тактовых входов.
1707 385146
>>85140

> В чем сакральный смысл?


Вестимо, чтобы иметь больше разных тактовых частот внутри ПЛИС
1708 385187
>>85130

>большие деньги


Чип Б/У, на выпиленном куске платы под выпаивание и реболлинг. Такие (даже четвёртые стратиксы на 820к ячеек) стоят не больше десятки.
1709 385225
>>85187
Для этого чипа только изготовление платы будет стоит 500 баксов (8-ем слоёв, 3/3 mil, 10cm x 8 cm). И то, на 8-ми слоях все ноги не разведёшь.

Проще купить готовую евалюэшн борду.

Такое имет смысл покупать - если нужно починить горелую плату. Для хобби - бюджетный предел - это FBGA 144 1.0mm pitch, FBGA 256 - можно, но уже сложнее. А дальше космос (сильно резко возрастает цена изготовления ПП и уже надо думать о том, где заказывать монтаж - руками можно зафейлить, если нет опыта)
1710 385226
>>85225

>только изготовление платы будет стоит


>на 8-ми слоях все ноги не разведёшь


Где мои дежурные картинки? А мне норм. Сиди, паяй. Deadbug style - наше все на все случаи жизни. Что еще взять от пердуинщиков?
820-4.png679 Кб, 881x882
1711 385228
>>85225
Ну как бы сказать. Если совсем по дешману делать и верить JLC 6 слоев размером с лист А4 - ебаных 170 уе+ доставка 40уе. Бля, да это же вообще копейки центы стоит.
Прикидывая из 6 слоев - 2 на питание и 4 под данные - можно дойти до красного квадрата и получить около 8 сотен выводов при нормах около 0.1/0.15. Для пердуинки очень даже тема - получится хороший такой колючий йожэг, имеющий около 8 сотен колючек. Если поизголяться то можно и до желтого квадрата дойти и это еще +50 выводов.
jlc.png52 Кб, 1271x349
1712 385231
>>85228

>Ну как бы сказать. Если совсем по дешману делать и верить JLC 6 слоев



0.45mm виа диаметр + 5мил + 5мил = 0.7мм - если расстояние меньше до меди, то виа не сделаешь. Поддержки слепых виа нет.

Нужно идти на pcbway, там чуть лучше. И то, столько выводов не разведёшь.
1713 385234
>>85226
Вот это может быть верно. Для мигалки, про которую писали выше, достаточно будет подать питание и подпаяться к одному I/O. Между прочим, наверняка есть задачи которые сводятся к подобному. Например для какого-нибудь брутфорса хешей или чего-то подобного хватит одного UART.
1714 385236
>>85234
Питание из воздуха будет браться? У таких проводов дикая индуктивность (для частот работы чипа) и сопротивление.

Проще за $200 купить вот это https://ru.aliexpress.com/item/32905119716.html
iii.jpg138 Кб, 720x713
1715 385237
>>85228

>170 уе+ доставка 40уе


За эти деньги есть хуева гора нормальных плат от китайцев.
Там всё есть.
1716 385791
Моча забанила мой тред про изготовление тепловизора из говна и палок. Может вы подскажите, есть ли более интересные тепловизионные матрицы за вменяемые деньги?
1717 385798
Ньюфагу поручили запилить spi slave девайс.
Каким вещам уделить внимание дабы у меня получился код удовлетворяющий высоким промышленным стандартам а не ардуиностайл?

Какой частотой лучше тактировать мой контроллер:
от мастера (sck)
или некой от внутренней частоты?
1718 385804
>>85791

>Может вы подскажите, есть ли более интересные тепловизионные матрицы за вменяемые деньги?


Киса, дешевых нет. Это основная стоимость. С китайцами ты конкурировать не сможешь - инфа 100%.
1719 385808
>>85798

>spi slave девайс


>код удовлетворяющий высоким промышленным стандартам а не ардуиностайл?


Табуляцию хотя бы выдерживай.
1720 385809
>>85804
Зачем с кем-то конкурировать? Я хочу запилить для себя.

Кроме самой матрицы китайцы продадут корпус, плату, экран и еще кучу всякой малафьи. Моя идея в том, чтобы взять голую матрицу и подключить её к уже имеющемуся железу, хоть какой-то % от стоимости должен выиграть, разве не так?
1721 385819
>>85808
Ты считаешь, что поделки ардуинщика от изделия инженера отличаются только соблюдением табуляции?
1722 385821
>>85809

>хоть какой-то % от стоимости должен выиграть, разве не так?


не должен.
1723 385846
>>85819
Да.
1724 385849
>>85819
Это для начала.
1726 385852
>>85849
А ты случаем не из ардуино-треда?
1727 385853
>>85791
Кроме матрицы еще объектив нужен, тоже весьма дорогой.
Заметно дешевле готового изделия наверняка не получится. Матрицу к чему подключать будешь? Во сколько еще обойдется изготовление платы? А корпус как будешь делать?
1728 385864
>>85853

>Кроме матрицы еще объектив нужен


Это конечно еще один повод отказаться от этой затеи. Причем я так понимаю объектив должен быть не простой, а из ИК-прозрачного материала.

>Матрицу к чему подключать будешь?


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

>Во сколько еще обойдется изготовление платы?


Зачем изготавливать плату если можно взять отладку с подходящим девайсом, коих у меня целая куча лежит в столе без дела. Корпус тоже не нужен.
1729 385868
>>85864

>объектив должен быть не простой, а из ИК-прозрачного материала


Именно. Из германия.
1730 385870
>>85864

>Я думаю это наименьшая проблема


Кому как. По крайней мере это много времени в любом случае. И, как мне кажется, микроболометрические сенсоры обычно без интегрированных АЦП.

>Зачем изготавливать плату


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

Зачем оно вообще тебе?
1731 385873
>>85864

>Причем я так понимаю объектив должен быть не простой, а из ИК-прозрачного материала.


Который, кстати, в видимом диапазоне непрозрачен. Хотя, не всегда.
>>85868
Можно также из кремния и сульфида цинка.
1732 385906
>>85809

>хоть какой-то % от стоимости должен выиграть, разве не так?


Нет, потому что ты будешь покупать поштучно детали через большую цепочку людей и каждому что-то к рукам прилипнет (процент от стоимости).
1733 385907
>>85864

>Причем я так понимаю объектив должен быть не простой, а из ИК-прозрачного материала.


Тепловизор и ИК - это несколько разные вещи. Вот пульты в телевизоре - это ИК, и камеры наблюдения многие прекрасно работают в ИК диапазоне и имееют ИК подсветку. Но они не тепловизоры. Внезапно, да?
1734 385914
>>85907
Кэп, пожалуйста
1735 385980
>>85914
Всегда к вашим услугам
1736 386030
>>85907
Тепловизор работает в глубоком ИК, которое, внезапно, подмножество ИК.
SWIR - тоже ИК. Как и NIR, в котором работают ПДУ, камеры наблюдения и ПНВ.
1737 386056
>>86030
Внезапно не любой ИК объектив подойдёт для тепловизора. Если эта мысль сложна для восприятия - тогда увы и ах.
1738 386061
>>86056
Анон выше хотел донести до тебя мысль о том, что ближний и дальний ИК - это все ИК.

>Тепловизор и ИК - это несколько разные вещи.


Эту фразу можно понять так, что ты LWIR за ИК не держишь. Но это не разные вещи, а все подмножество ИК. Вот о чем тебе хотели намекнуть.
1739 386091
>>86061
Я комментил в ответ на этот опус:

>Причем я так понимаю объектив должен быть не простой, а из ИК-прозрачного материала.



ИК-прозрачный материал не означает пригодность для тепловизора. Смысл в этом. Что не просто из ИК-прозрачного материала, а подходящий по спектру.
1740 386095
>>86091
Очевидно, что тот, кто об этом писал, понимает, что нужен объектив с кремниевыми или германиевыми линзами.
1741 386147
>>86095
Очевидно, что писавший нихуя не знает, судя по вопросам.
1742 386158
>>86091
А тебе в ответ другой анон, судя по моему детектору, написал о том, что твое высказывание можно понять немного иначе. Что считает анон с идеей самодельного тепловизора, вообще без разницы.
1743 386265
Олсо, анонимусы, объясните, как ИК-чувствительная матрица в тепловизоре на засвечивает саму себя? Есть ёбы, в которые надо жидкий азот заправлять, там все ясно. А ка работают приборы, рассчитанные на комнатную температуру?
1744 386278
>>86265
Калибровка. Причём периодическая, во время работы. Изображение в этот момент ставится на паузу, а тепловизор внутри щёлкает шторкой, выдавая местоположение владельца.
1745 386501
>>40591
Правда жизни такова, что джава макака получающая в этой стране 2к$(в два раза меньше средней зп в европе) так и останется здесь работать за 2к$, потому что на западе своих индусов хватает.
А инженеру-элетронику с опытом работы в МЦСТ и подобным организациям будут рады в любой стране мира, и получать он будет, как и любой инженер 3-5к$.
https://ru.wikipedia.org/wiki/МЦСТ

>В 2004 году в прессе появились сообщения от компании Intel, что компания пригласила несколько групп разработчиков из «Эльбрус МЦСТ», а также UniPro на работу в Intel

1746 386509
>>86501
Кукаретик, плз
1747 386610
>>86501
Правда жизни такова, что веб-макака с годовалым опытом уже может претендовать на 2к$. А java-макака с опытом в каком-нибудь сбертехе может прыгнуть выше 3к$, что уже сопоставимо с оплатой труда в странах первого мира. Вот только у нас ты на эти деньги будешь жить как король, а там как поломойка.

Надеяться на то, что твою команду перекупит интел это всё равно что выиграть в лотерею.
1748 386850
Анон, что такое Clock Domain, и как это перевести на русиш?
1749 386860
>>86610
Ладно, убедил.
Бросаю электронику и становлюсь веб-макакой...
1750 386862
>>86860
Зачем бросать электронику, это отличное хобби.
1751 386863
>>86850
Цепь тактовой частоты.
Все триггеры в схеме должны тактироваться от одного источника, притом, чтобы всё работало как надо до всех триггеров этот сигнал должен доходить почти одновременно, для этого в ПЛИС и предусмотрены специальные цепи тактовой частоты, они специально сделаны так чтобы задержки на них были минимальны. И в современных ПЛИСах их может быть несколько, около десятка.
1752 386868
>>86862

>отличное хобби


Да не пизди.
1753 386911
>>86850
Тактовый домен или клоковый домен или домен синхрочастоты, стандартного перевода нет, потому что все используют английский термин.

Тактовый домен — часть синхронной цифровой схемы, которая тактируется от одного определённого сигнала тактовой частоты.
1754 386981
>>86863
>>86911
Всё, понял, спасибо.
1755 387000
А для Bitstream стандартный перевод есть? Кроме "Битового потока". А то как-то хуёво звучит.
1756 387006
>>87000
Файл конфигурации ПЛИС
1757 387007
>>87000
Есть, но он не понравится тебе ещё сильнее. "Конфигурационная последовательность." Забей, рашка выпала из современной технологической повестки, русик более непригоден для разговоров об актуальных средствах разработки из-за отсутствия необходимых терминов (кроме тупой неудобной кальки с инглиша), а терминов нет из-за отсутствия необходимого числа носителей языка, желающих обсуждать этот предмет в своём кругу.
1758 387016
>>87000
Чем тебе битовый поток не угодил?
1759 387017
>>87016
Стрим это ручей. Битовый ручей. Так канонiчно.
1760 387020
>>87000
Традиционно это прошивка.

>>87007
Хейтерок, плес. В области электроники и схемотехники, тем более цифровой, все термины присутствуют.
1761 387036
>>87007
Двачну.
1762 387037
>>87007
Тупая калька с инглиша пиздата. Не надо вычурно транслировать туда-сюда.

Пиковый - межпиковый - среднеквадратичный.
Амплитуднный - размах - эффективное.

Ходил в магазин крепежа, долго вспоминал как это там называется countersink по-русски-то, блять. Вспоминалось уже дома.
1763 387048
>>87017
Битовая струя.
пример: пописал тебе на лицо битовой струей.
1764 387053
>>87037

>Тупая калька с инглиша пиздата. Не надо вычурно транслировать туда-сюда.


Так я как бы и не за вычурный перевод топлю. Калька ровно потому и оптимальна сейчас при всей своей корявости, вымученности и труднопроизносимости, что переводится на ходу. Её задача — быть сообразной с иностранным языком, который является основным.

Если есть большое сообщество носителей языка, которые учатся по своим учебникам, общаются между собой, ведут свои разработки, а с зарубежной средой сталкиваются чтобы статью в научный журнал тиснуть, то для них важнее становится удобство использования языка для коммуникации, а не для перевода на ходу. Но поскольку такого сообщества нет, тенденция к доминированию инглиша есть, и калька в ней оказывается более удобной, чем нормальный перевод. Вот только калька — это половинчатое решение, и половинчатость эта искусственная и нахуй не нужная, основанная на законах о государственном языке и тому подобном говне. А естественным является полноценный переход на основной язык отрасли.
1765 387085
>>87053

> основной язык отрасли


Lingua-technis?
1766 387133
Есть клоковый домен 50 МГц. Из него надо передать сигнал длительностью 1 такт в домен с частотой 150 МГц.
Я констрейнсах прописываю этот сигнал как set_false_path и в домене 150 МГц пилю схему детектора фронта. Такой вариант взлетит или нужно что-то другое пилить?
1767 387139
>>87133
Взлетит. Но можешь три тригера ебануть для верности.
1768 387141
>>87139
А в обратном направлении как передавать?
1769 387158
>>87141
Так же
1770 387160
>>87158
Но с фидбеком
1771 387174
>>87141
Если сигнал в домене 150 МГц длительностью один такт надо передать в домен 50МГц, сделай на стороне 150 МГц счётчик, который после каждого появления активного уровня будет держать его ещё 3 дополнительных такта. Так ты можешь быть уверен, что триггер со стороны 50МГц увидит активный импульс и не пропустит его. Ну и детектор фронта на стороне 50 МГц остаётся.
1772 387230
Анончики, продолжаю мучать вас переводом.
Как перевести FPGA Fabric? Везде ставлю "FPGA-Логика", но как-то всрато. "Матрица FPGA" будет звучать не лучше.
1773 387235
>>87230
Массив ячеек?
1774 387236
>>87235
Да нет, вроде как под этим производитель понимает вообще всю FPGA-часть микросхемы: ЛЭ, Мат. блоки, встроенные RAM-блоки и т.д. - всё что нужно для программируемой логической части, но не Асик-IP блок.
1775 387237
>>87230

>Fabric?


Дословно - фабричное. Вероятно, про то, что не подделка.
1776 387238
>>87237
Ты троллишь, няша?
1777 387239
>>87238
Что вижу, то пою. В чем отличие fabric от non-fabric, или как там?
1778 387240
>>87236

>производитель


Я о том же. Fabric, вероятно, оригиналы, остальное - копии...
1779 387241
>>87239
>>87240
Прямой перевод "ткань".

>>87236
Ну тогда просто FPGA?
1780 387312
>>87133

> прописываю этот сигнал как set_false_path


зачем
1781 387456
>>87241

>Прямой перевод "ткань".


ПЛИС-марля
1782 387512
>>87236

>но не Асик-IP блок


Что ещё за Асик-IP блок?
1783 387598
>>87241
Переводов у любого слова много, они все зависят от контекста.
https://translate.google.ru/#view=home&op=translate&sl=en&tl=ru&text=fabric
В том числе "структура", и оно, видимо, тут и есть.
"Структура FPGA".
изображение.png241 Кб, 516x325
1784 387659
>>87512
Hard-IP блок, если более правильно его назвать.
>>87241
>>87598
Ну, сейчас примерно так и оставляю.

Из прочитанного я понял следующее: "FPGA fabric" называют структуру из логических элементов (CLB-шки, если говорить о Xilinx'ах), и блоков, вокруг которых строятся эти логические элементы. То, что может автоматически использоваться синтезатором и трассировщиком, без какой-то дополнительной конфигурации.
К примеру, у нас есть N мат. блоков, M CCC блоков, и K RAM-блоков, вокруг которых размещаются ячейки ЛЭ. Совокупность всего этого безобразия будет называться Fabric.
К этому Fabric не относятся Hard-IP блоки, такие как, к примеру, выполенный в виде отдельного Asic-блока CortexM3, встроенная Flash-память, блоки трансиверов или банки I/O.

Если правильно понимаю, на пикрил - слайсы, Рам-блоки, выделенные множители - будет называться fabric.
1785 387730
>>87659
Трансиверы и I/O входят. I/O входят даже в базовом изначальном варианте, где "I/O, логические ячейки и линии соединений".

Всё входит, короче. Что-то, что может не входить, существует тогда, когда девайс представляет собой систему на кристалле с отдельной fpga-частью, как zynq.
1786 387741
>>87730

>Что-то, что может не входить, существует тогда, когда девайс представляет собой систему на кристалле с отдельной fpga-частью, как zynq.


А у Virtex с PPC-ядрами и Altera Cyclone/Arria/Stratix с ядрами ARM как-то иначе?
1787 387744
>>87741
Надо спрашивать у тех, кто с ними работал и читал, соответственно, документацию. И знает, в каком контексте производитель писал об этих ядрах — как о части структуры FPGA или об отдельной сущности.
1788 387754
>>87730
Хмм, ок. Я как-раз и перевожу материал, который преимущественно по SOC-ам.
>>87744
Там где я перевожу - производитель считает их отдельной сущностью, как и трансиверы, похоже, что и банки I/O тоже, но это вроде как не точно.
1789 387796
>>87754
Что переводишь, если не секрет?
1790 387808
>>87796
Очевидно, что он сам в данном случае является переводчиком и переводит этот материал для других.
1791 387837
Аноны, как вкатиться к вам в ПЛИСач?
Есть небольшой опыт в AVR. Ну и помимо литературы хотел бы взять макетку какую-нибудь, что посоветуете для вката?
1792 387838
>>87837
полистай это: https://marsohod.org/
1793 387879
>>87796
Перевожу материал по SoC-ам Microsemi.
Попутно разбираюсь, что/как работает, как устроено железо, что оно может, что не может, и так далее.
До этого работал только с микроконтроллерами.
>>87808
Ты, от части, прав.
Сорт оф личинка саппорта.
1794 387926
>>87879
Сам для себя переводишь, или профессионально? Сколько берёшь?
1795 387943
>>87230
Контекст давай, маня. Иначе ты там напереводишь. Если такие вопросы задаешь значит вообще не в теме.
1796 388004
>>87879
О, так ты фаешник?
1797 388011
>>88004
Да.
>>87926
Ну я сам их использовать буду, если ты об этом. Для чего - ответ выше.
>>87943
Как уже писалось выше SoC-и.
Я не настолько не в теме, чтобы напереводить совсем уж дичи. Если буду не уверен, в том что у меня получилось - поищу кого-нибудь, кто отревьюит.
Матрица FPGA/Матрица Плис звучит хорошо, пока туда не добавляется хренова гора блоков, вроде того же RAM-а.
Матрица Логики/Логическая матрица - вот это может быть будет норм, надо подумать.
1798 388050
>>88011

>Я не настолько не в теме, чтобы напереводить совсем уж дичи


Ну ведь уже хуйню городишь, без обид. битовый поток, сука кровь из глаз

>Матрица FPGA звучит хорошо


Звучит как АвтоВАЗ - дважды автомобильный завод.
1799 388064
>>87837

> Аноны, как вкатиться к вам в ПЛИСач?


Не лезь, она тебя сожрёт!(ц)

> хотел бы взять макетку какую-нибудь, что посоветуете для вката?


Ну, хуй знает. Сколько (в долларах) потратить готов, а то посоветовать можно много чего.
1800 388079
>>88064
А если в xilinx и вивадо хочу вкатиться с минимальным бюджетом, что брать из 7 семейства?
1801 388081
>>88079
Artix
Конкретные модели выбирай исходя из цены и наличия на Али и Ибее. И обращай внимание на наличие схем этих плат.
1802 388083
>>88079

> А если в xilinx и вивадо хочу вкатиться с минимальным бюджетом, что брать из 7 семейства?


Что-нибудь на Artix-7. Вариант поудобнее:
https://www.aliexpress.com/item/32691533741.html
https://www.aliexpress.com/item/32964497318.html
Вариант подороже и без материнки с разъёмами для внешних модулей, но ПЛИС в три раза больше:
https://www.aliexpress.com/item/4000170003461.html

Ну и не забудь купить программатор (20 баксов за USB версию): https://www.aliexpress.com/wholesale?SearchText=xilinx+programmer
1803 388107
>>88079
Лучше в альтеру для начала вкатись.
1804 388119
>>88107
Почему? Альтера это для неудачников, зайлинкс - первые на рынке ФПГА.
1805 388127
>>88083

>Что-нибудь на Artix-7.


Чем плох вариант на Zynq? Что есть из бюджетного для первоначального вката не хватило мозгов на Cyclone V?
1806 388130
>>88107
Уже работаю с квартусами. Но мы на зайлинксы планируем перекатиться.

>>88081
Ac701 как раз есть на работе.

>>88083
Спасибо, мне как раз маленькие хуитки для дома нужны.
1807 388132
>>88130

>на зайлинксы планируем п


Зачем?
1808 388137
>>88127

> Чем плох вариант на Zynq?


В основном ценой (Ну и навороченность это не всегда хорошо. Карьерный самосвал не лучший выбор для поездок в магазин). Там цены от сотни баксов (за одним единственным исключением: https://www.aliexpress.com/item/4000042572307.html ) начинаются.
1809 388169
>>88130

>мне как раз маленькие хуитки для дома нужны


Что ты на них собрался делать?
1810 388176
>>88169
Двачую вопрос. Полный тред вкатывальщиков, все поголовно покупают платы, но никто не постит результат.
Ардуино-дети из соседнего треда в разы бодрее - один gsm-gps-лодку пилит, второй метеостанцию, а у нас глухо как в танке.

Такое ощущение, что 90% после покупки платы, мигает диодиком и плата сразу отправляется в стол.
1553180541133288768.png710 Кб, 700x497
1811 388191
>>88176

>Такое ощущение, что 90% после покупки платы, мигает диодиком и плата сразу отправляется в стол.


У меня три платы. Я их в стол не ложил. Светодиодом не мигал. Так, купил и всё. Лежат в коробках, пылятся лет 5. Бугага.
1812 388197
>>88050

>битовый поток, сука кровь из глаз


Я нигде не вписал "битовый поток", если что. У меня тоже кровь из глаз от такого идёт, я ж не конченный еблан.
Но я явно не зря спросил анона, потому что мне посоветовали не ебать мозг и писать "прошивка".

>Звучит как АвтоВАЗ - дважды автомобильный завод.


Ну так и АвтоВАЗ звучит не так страшно. А учитывая, что на русском нет нормального аналога "FPGA Fabric"...
Но опять же, я нигде не ставлю "Матрица FPGA", везде пишу "Логика FPGA". "Логика Программируемых Логических Интегральных Схем", дважды завод, да.

Просто, чтобы ты понимал, что имеет ввиду производитель (если тебе достаточно интересно):
https://www.microsemi.com/document-portal/doc_download/136522-ug0680-polarfire-fpga-fabric-user-guide
1813 388200
>>88176
Когда я вкатывался, сделал простенький процессор, приделал к нему клавиатуру с монитором и написал простенький компилятор. Это считается?
В процессе вкатывания ничего ни у кого не спрашивал. Вскоре после того как вкатился, пошел работать и ничего такого (для себя, для дома) не делал.
1814 388202
У меня одного чуть жопка подгорает что внутри ПЛИС нет двунаправленных шин и надо обкладываться хуями мультиплексорами со всех сторон?
1815 388205
>>88200
Солидно, мог бы похвастаться в тредике.
Или на двачах если показал свой проект сразу заклеймят куколдом?
1816 388206
>>88202
Как ты себе схемотехнически представляешь двунаправленную шину?
Что если случайно подрубишь одновременно два выхода?
1817 388213
>>88200

>Когда я вкатывался, сделал простенький процессор, приделал к нему клавиатуру с монитором и написал простенький компилятор. Это считается?


Я это делал на икарус-верилоге, это тривиальщина, нашёл, чем хвастаться. Компилятор был на чем?
1818 388216
>>88213

>это тривиальщина


Только на эту тривиальщину уйдет не меньше месяца.
1819 388217
>>88119

>Альтера это для неудачников


Это ещё что за аргумент?
1820 388218
>>88191
Загони мне по дешовке.
1821 388219
>>88202
Ходят слухи, что в каких-то старых были.

>>88206

>Что если случайно подрубишь одновременно два выхода?


Должна сработать защита по току.
1822 388220
>>88218
Город какой?
1823 388221
>>88206

>Как ты себе схемотехнически представляешь двунаправленную шину?


Ровно так же, как она выглядит IRL. Просто пучек проводов, на концах/ответвлениях которого стоят буфера с третьим состоянием.

>подрубишь одновременно два выхода?


Будет тот же эффект, что и на реальной шине. Кто слабее тот и покажет свою белую душу.

>>88219

>Ходят слухи, что в каких-то старых были.


Насколько старых? Excalibur можно выкопать, но даже для меня это слишком жесткая некрофилия.

Пик живет в соседней нити >>387393 .
Задумывалось что шина адреса и данных будет сквозняком идти. А тут подвалила ебля с мультиплексорами... как минимум надо накатать заливалку говнокода в ОЗУ через atmega и в Flex декодер адреса ОЗУ. Схему оригинала почти срисовал, но есть куча непонятных моментов.
1824 388226
>>88213
Не сказал бы что хвастаюсь. Просто ответил, что и тут делают всякую бесполезную хрень, все же более сложную, чем мигание светодиодом.
Компилятор (ассемблер) в начале написал на tcl. Потом понял, что ассемблер в "классическом" виде для стекового процессора не нужен и сделал относительно нормальный кросскомпилятор форта.

>>88205
В этом треде есть скриншот с кодом процессора.
1825 388227
>>88220
Нижний Новгород
1826 388235
>>88202
Да, тебя одного
leoFar-Eastern-Leopard.jpg96 Кб, 600x413
1827 388246
>>88227
Очень далеко, смысла связываться с пересылкой не вижу. Я с самого дальнего ДВ (да, это у нас тигры гуляют по городу, пруфы на ютубе)

>>88226

>сделал относительно нормальный кросскомпилятор форта.


По-моему форт писали все программисты, я делал ядро под х86 ещё в старших классах.
1828 388257
>>88246

>дальнего ДВ


Откуда вы там про плисы знаете вообще? Я сам оттуда родом, там ничего кроме уныния и безысходности нет. Свалил с этой дыры и ни разу не пожалел.
1829 388296
>>88257
Видимо ты с другого ДВ
1830 388341
>>88296
Я с хабаровского края. А ты?
1831 388353
>>88341
Владивосток. Если $$$ есть - то всё заебись.
1832 388357
>>88353
Ну ты узнай сколько пересыл обойдётся. Какие у тебя платы?
1833 388363
>>88064
Не больше 4К рублей думаю, не учитывая вспомогательные модули всякие типа ethernet.
1834 388446
>>88363

>Не больше 4К рублей


Тогда только у китайцев.
https://ru.aliexpress.com/item/32813061054.html
https://ru.aliexpress.com/item/32834582202.html
Что-то такое бери. Только для начала необходимости в плате нет, хватит симулятора.
1835 388465
>>88363

Альтеровские плисины.

https://www.aliexpress.com/item/32709028421.html (EP4CE6, с минимальной обвязкой и программатором обойдётся в 20 баксов, можно докупить модуль памяти за 9 баксов).
https://www.aliexpress.com/item/32747454526.html (ПЛИС пожирнее (EP4CE10) плата со свистоперделками, стоит 36-43 бакса, в зависимости от программатора)
https://www.aliexpress.com/item/32834586200.html (Нихрена нет, зато целых 22 логических килоячейки и 30 баксов вместе с доставкой)
https://www.aliexpress.com/item/1000006622149.html (Пятый циклон на 25 килоячеек + SDRAM, стоит 45-50, программатор (USB blaster) покупать отдельно, за $3)
https://www.aliexpress.com/item/33050240958.html (На борту десятый циклон (16000 логических ячеек), SDRAM, HDMI, и гигабитный эзернет, обойдётся в $50, программатор… в общем, я уже говорил).

Хилые.

Если докупать программатор за $20 не душит жаба:
https://www.aliexpress.com/item/1000006630084.html (Седьмой артикс на 35 килоячеек + DDR3, $50)
Как вариант, взять шестой спартан (но его поддержку в новом софте хилые дропнули):
https://www.aliexpress.com/item/32692200648.html (одна ПЛИС, $40 вместе с программатором)
https://www.aliexpress.com/item/32801899786.html (ПЛИС + SDRAM, $17 без программатора)
https://www.aliexpress.com/item/1000006622145.html (ПЛИС + SDRAM $16 без программатора)
https://www.aliexpress.com/item/1000006703110.html (ПЛИС + DDR3, $20 без программатора)

P.S. Ультра-лоу-энд вариант: https://www.aliexpress.com/wholesale?SearchText=ep2c5t144+board Старьё, но утоптать туда восьмибитную микроЭВМ вполне можно:
http://zx80.netai.net/grant/uk101FPGA/index.html
http://zx80.netai.net/grant/Multicomp/index.html
1836 388498
>>88465

>Старьё, но утоптать туда восьмибитную микроЭВМ вполне можно:


Будто все зависит только от битности, не меньше зависит от набора команд и прочего. Если верить документации, то Nios II в минимальной комплектации занимает 540 LE на втором циклоне.
1837 389083
Привет, анон. Проведи краткий ликбез, пожалуйста.
Что определяет "скорость" и соответственно применимость плисины?
Куда в даташите смотреть, чтобы понять, что плисина "не подходит" по частотным характеристикам?
Я же правильно понимаю, что скорость обновления логических ячеек везде разная, и следовательно, предельные частоты работы одной и той же логической функции отличаются?
Спасибо.
1838 389105
>>89083
Проще всего откомпилировать проект и посмотреть в ТаймКвесте.
1839 389106
>>89083

>логической функции


Ты точно различаешь комбинационные и последовательностные устройства?

>логических ячеек


Помимо задержек в ячейках/элементах, которые в первом приближении состоят из LUT и триггера, ячейки/элементы отличаются по количеству входов LUT и прочему. Также в ПЛИС есть и другие блоки, такие как умножители, блоки памяти, PLL, трансиверы... Также отличаются варианты соединения этих ячеек и многое другое. А еще соединения между ячейками/элементами тоже вносят задержки. В добавок результаты синтеза будут зависеть от констрейнтов, версии САПР.
Так что, по моему, выше тебе правильно написали.
1840 389207
>>89106

>Ты точно различаешь комбинационные и последовательностные устройства?


Не точно.
Комбинационное устройство состоит из "параллельно" включенных блоков, обновляющихся входы и выходы по сигналу CLK.
Последовательное устройство - и есть блок, из которых строится комбинационное устройство. Внутри блока, соединения могут обновляться не по тактирующему сигналу.
Я понимаю, что сигнал внутри блока, должен распространяться быстрее, чем придёт импульс CLK.

>Также в ПЛИС есть и другие блоки, такие как умножители, блоки памяти, PLL, трансиверы...


Оно и понятно, тут меня больше всего интересует именно скорость работы логической матрицы. Скорость и расположение памяти/трансиверов/умножителей - всё описывается в даташитах. А вот чтобы понять, насколько медленнее при прочих равных та или иная плисина, тем более разных производителей/на разной технологии...

>Так что, по моему, выше тебе правильно написали.


>>89106

>Проще всего откомпилировать проект и посмотреть в ТаймКвесте.


В целом да, если проект на руках, и его не проблема перенести на интересующую платформу.
1841 389240
Тем временем QMTech выдали плату на цинке.

> Specification:


> On-Board SoC: XC7Z010-1CLG400C;


> On-Board PS side external crystal frequency: 33.333MHz;


> XC7Z010-1CLG400C has rich block RAM resource up to 2.1Mb;


> XC7Z010-1CLG400C has 28K logic cells;


> On-Board 512MB Micron DDR3, MT41K256M16TW-107IT:P;


> On-Board micro SD slot;


> On-Board power supply for FPGA by using TPS563201 wide input range DC/DC;


> On-Board one 50p and one 40P, 2.54mm pitch headers for extending user IOs. All IOs are precisely designed with length matching;


> On-Board user switch for PS logical reset;


> On-Board MII ethernet interface connected to PL side by using ICPlus chip IP101GA;


> On-Board two user LEDs, one connected to PL and the other connected to PS;


> On-Board JTAG interface, by using 6p, 2.54mm pitch header;


> PCB size is: 6.7cm x 9.9cm;


> Default power source for board is: 2A@5V DC, the DC header type: DC-050, 5.5mmx2.1mm;



Стоит чуть больше 60 баксов вместе с доставкой: https://www.aliexpress.com/item/4000323573953.html
1842 389256
>>89240
Спасибо Анон! Закажу одну на мигалку.
Где нынче искать не сильно стухшую блеваду ?
Похуй что ретромеркурий с 1-го до 20-го ноября и ничего нового не начинать. 60$ - вообще ни о чем.
1843 389258
>>89207

>Не точно.


Да, у тебя все как-то очень странно перепутано.

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


Можно сравнить результаты для IP ядер. На второй картинке, чем не бенчмарк?
1844 389259
>>89207

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


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


Откуда ты такой шизофрении нахватался?
Тебе будет полезно с этого начать
https://www.youtube.com/playlist?list=PL4UMfOeGYsvZs-gvs0dC8oO3HXrmGC1bm
1845 389580
>>89256
Чем не устраивает бесплатная версия?
1846 389609
>>89256

>ретромеркурий с 1-го до 20-го ноября и ничего нового не начинать.


Я тут у вас на сосаче новый. У вас что, принято изучать астрологию, что ли?
1847 389613
>>89609

>принято изучать астрологию, что ли?


Естественно. Таро то же используем. Отладчики? Не не слышал.
Что бы не гадать на кофейной гуще - вспышки на солнце, положение планет не то, фаза луны не та, не с той ноги встал, случайно дописал/убрал "<" или по какой еще причине у тебя очень сильно отличается поведение схемы в симуляторе и в реальном железе.
Сарказм это. Иногда стоит прислушиваться что говорят Звезды на небе.
2019-11-1222-58-31.png79 Кб, 1355x785
1848 389941
Наверное платина, но что-то я не соображу.
Есть комбинаторная схема пикрил.
Она будет между регистровой прослойки(на схеме не отображено)

Как посчитать Fmax, если известно, что самый длинный путь имеет задержку 5.6 нс? охуеть, не задумывался, что 4 каскада логики дают такую задержку

Если что речь про кинтекс 7.
1849 389945
>>89941

>Как посчитать Fmax, если известно, что самый длинный путь имеет задержку 5.6 нс?


Единица разделить на. 178 МГц
Но сама логика тут у тебя даёт задержку 3.7нс остальное — пути.
Если пропишешь констрейнты, роутер попробует разместить всю фигню поближе друг к другу.
1850 389957
>>89945
Вот так просто?
И получается до имплементации вивадо ставит задержку net delay от балды?
1851 389958
>>89945
А если усложнить задачу:
допустим данные на вход a подаются с частотой 150 МГц, на вход b - 40 МГц причем фазы клоков не совпадают. Выход c в том же домене, что и b. Как заставить всё это дело работать?
1852 389969
>>89957
Не надо синтезировать как попало, а потом гадать на какой частоте запустится. Надо прописывать констрейнты и смотреть, удалось ли виваде в них вписаться или нет.

>Как заставить всё это дело работать?


Перевести сперва всё в единый клок домен при помощи асинхронных FIFO.
1853 389977
>>89957
Да и вообще, у тебя тут модуль синтезировался как верхний уровень, с входными и выходными буферами наружу, а в проекте они уйдут, потому что наружу ничего выводить не надо. Результат такого синтеза пригоден только чтобы схему смотреть, но не задержки.
1854 389978
>>89941
Это компаратор?
1855 390060
>>89977

>Результат такого синтеза пригоден только чтобы схему смотреть, но не задержки.



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

>>89978
Да, почти компаратор. Мне запретили использовать корки fifo, я заменил их на инстанс bram - она может работать в режиме fifo и как я думал имеет аналогичные сигналы, что и стандартная корка от зайлинкс. Но как оказалось, есть нихуевые различия. Сигнал almostempty в bram не может показать когда в fifo осталось только 1 слово. А счетчики rdcount и wrcount на самом деле нихуя не счетчики а указатели.

Этот "компаратор" попытка получить сигнал almostempty с таким же поведением как в оригинальной корке.
1856 390072
>>90060

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


Это я и имел в виду под "пригоден только чтобы схему посмотреть".
1857 390075
>>90060

>Мне запретили использовать корки fifo


Понятно, значит, завести данные в другой клок домен через fifo у тебя не выйдет. Значит, тебе надо 150МГц клоком семплировать 40МГц клок и генерировать clock_enable для 150МГц домена, чтобы он считывал в себя медленный сигнал, когда детектится фронт медленного клока.
1858 391811
На каких открытых и бесплатных файлообменниках лучше хранить коды? Что скажите за эту помойку github.com?
1859 391816
>>91811

>Что скажите за эту помойку github.com?


Лучше там и хранить.
Один хуй кроме git другие VCS не нужны.
1860 391817
Можно ли как то в verilog/SV-тестбенче указать вивадо симулятору, чтобы он не останавливался на каком-то дефолтном момента времени, а продолжал дальше, до более далёкого момента времени? Надоело лезть в настройки за этим, хочется в коде тестбенча задавать.
1861 391818
>>91811

>открытых


>github.com


У них закрытый исходный код, открытый у gitlab.
А ты вообще систем контроля версий касался? Тут первичнее используемая система контроля версий, а не куда пушить будешь. Можно пушить одновременно на github, gitlab, bitbucket и прочее.
1862 391820
>>91817
В верилоге есть $stop и $finish. Можно написать что-то вроде initial #100 $stop;
Только запускать симуляцию придется другой кнопкой. В моделсиме это ContinueRun, вместо просто Run.
fifo.png9 Кб, 1234x187
1863 391881
Помогите, молю!
Есть фифо fwft. Выставляю сигнал чтения, по идее на следующем такте клока уже можно забирать следующие данные, однако относительно фронта следующего клока почему-то в симуляции возникает задержка 0.1 нс и соответственно захватываются предидущие данные. Что я делаю не так?
fifo1.png41 Кб, 788x406
1864 391907
>>91881
Пиздец, должно же быть как в документации. Откуда эта ебучая задержка лезет??
1865 391964
>>91818

>У них закрытый исходный код, открытый у gitlab.


А это важно?

>А ты вообще систем контроля версий касался?


Да мне исключительно продемонстрировать свои говноподелки на неширокий круг. Ничего серьёзного.
1866 391966
>>91881
Чтение и запись в FIFO синхронное и осуществляется по фронту. А ты похоже формируешь fifo_rd по фронту rd_clk, значит fifo_rd придет не раньше rd_clk. При этом у тебя на первой картинке показано что fifo_rd устанавливается в 1 до переднего фронта rd_clk.
Хоть обыкновенный D-триггер с динамическим управлением для примера возьми. Что будет, если на вход D подашь fifo_rd, а на вход C подашь rd_clk?
Хотя, возможно я тебя неправильно понял.
1867 391967
>>91881
Ты смотри какая у тебя симуляция включена. Если временная, то сигнал на входах лучше подавать не в момент фронта клока, а чуть погодя, как это собственно и происходит в реальности. Но лучше переключи на функциональную.
1868 391968
>>91966

>на первой картинке показано


На второй, которая из документации.
1869 391971
>>91967

>Но лучше переключи на функциональную.


Это не поможет никак, если fifo_rd формируется в блоке always по фронту rd_clk, потому что изменение произойдет уже после фронта rd_clk.
1870 391974
>>91964

>А ты вообще систем контроля версий касался?


>Да мне исключительно продемонстрировать свои говноподелки на неширокий круг. Ничего серьёзного.


Все же системы контроля версий в первую очередь используют не для того чтобы кому-то просто демонстрировать код. Если нужно только кому-то дать код, а возможности систем контроля версий тебе не нужны, то зачем гитхаб? Архивируй и заливай на какой-нибудь гуглодиск. И не нужно будет писать дурацкие комментарии к коммитам и изучать гитовские команды или кнопки в GUI.
1871 392000
>>91816
А в чём проблема хранить в локальном репозитории? Зачем именно гитхаб?
У меня на прошлой работе использовали SVN, никаких проблем не было.
1872 392001
>>91971
Я про то что входы нужно подавать правильно. Сам на такое много раз натыкался, менял состояние сигналов строго по фронту клока, вроде и синхронно подаёшь, а тем не менее это неправильно, во временных симуляциях так делать нельзя. Потому что у триггеров есть время срабатывания, внутренняя задержка, из-за которой выход они меняют не чётко по фронту клока, а с запаздыванием. Потому и мы, когда подаём входные синхронные сигналы из тестбенча должны действовать аналогично. Или, повторюсь, юзать функциональную симуляцию, там, к слову, тоже такое иногда проявляется, но всё же полегче будет. Это всё безотносительно к твоему буферу, просто делюсь опытом.
1873 392011
>>92001
А я про то что по временной диаграмме из симулятора непонятно что сделал тот анон. Может он написал always@(posedge rd_clk) fifo_rd=...
В таком случае не будет работать при какой угодно симуляции. Потому что очередность изменения сигналов, это то, что называют delta delay.
И буфер не мой.
1874 392016
>>92000
При использовании гита в любом случае будешь хранить локально весь репозиторий целиком, распределенная система же.
1875 392020
>>92016
Я к тому, что зачем пушить на какой-то сервер? Одно дело, если проект по работе, другое - личный.
Mikuru.jpg33 Кб, 416x416
1876 392118
Решил изучать плис.
Есть идея запилить на плис 8085.
Может быть уже есть аналоги моей идеи?
1877 392135
>>92118
Пили лучше 4004 - модно, стильно, молодежно, свежо. https://github.com/freecores/mcs-4/tree/master/rtl/verilog
1878 392143
>>92135
Очень благодарю
может 8051 есть?
1879 392148
>>92143

>Очень благодарю


Это Интернет детка, здесь могут послать НА ХУЙ, в лес, сад, жопу!
Пиздуй отсюда к некрофилам-фанатам Z80 http://www.spetsialist-mx.ru/index9.html https://zx-pk.ru/forums/110-klony-na-plis-mk-i-bmk.html Например самая первая тема про Reverse-U16
Недостающую периферию сам себе напишешь или используй NIOS, MicroBlaze, Mico32 тут нет опечаток...
1880 392167
Плисаны, помогите изобрести хитрый переходничок.
Есть 2 fifo с разрядностью 65 бит. 65й бит каждого fifo хранит флаг валидности данных.
Нужно загнать эти два fifo на один выход таким образом, чтоб все это дело выглядело как обычное 64битное fifo fwft. Данные без флага валидности надо дропать.

Либо я тугодум либо это сложная задача.
1881 392174
>>92167

>65й бит каждого fifo хранит флаг валидности данных.


Че за долбоеб это реализовывал?
1882 392176
>>92174
Ваш покорный слуга. Возникла потребность сделать из 128 битной axi-stream 64-битную и попутно перейти в другой клоковый домен.
1883 392182
>>92167
Во-первых, нахуя хранить невалидные данные? Просто загружай их в FIFO по (wr_en && valid) вместо (wr_en), чтобы данные с нулевым valid в fifo не попадали. У тебя не только ширина данных и бессмысленно занимаемая память уменьшатся, но и задача упростится, потому что в FIFO будут заведомо валидные данные.

Во-вторых, тебе их как упорядочивать на выходе надо? 1-2-1-2-1-2 или ещё как-то?
1884 392183
На всякий случай, ты в курсе вообще, что под твою задачу существуют готовые корки без смс? AXI Stream combiner, AXI Stream width converter, AXI Stream asynchronous FIFO, AXI Stream Clock converter?
1885 392184
>>92182
На входную 128 битную шину данные поступают блоками по 64 бита. Может прийти одновременно 2 блока, а может и один в конце пакета. Если я буду писать в fifo по (wr_en && valid) то нарушится порядок.
1886 392185
>>92183
В курсе, но мне нельзя их использовать.
1887 392186
>>92182

>Во-вторых, тебе их как упорядочивать на выходе надо? 1-2-1-2-1-2 или ещё как-то?


Да, именно так, но соответственно пустые блоки надо пропускать не нарушая порядок.
1888 392259
>>92186
Понятно. Нихуя нет сложного, нужен конечный автомат с 2 (двумя) состояниями. Сперва он ждёт, когда FIFO1 непустое, и вычитывает его, передавая или дропая данные в зависимости от валидности. Потом переключается и ждёт, когда FIFO2 непустое, и вычитывает его, передавая или дропая данные в зависимости от валидности.
1889 392274
>>92259
Таки ты предлагаешь мою текущую схему с хранением невалидных данных и флагами валидности? Значит я не такой долбоёб?
1890 392435
>>92274
Долбоёбом тебя назвал кто-то другой. У меня нет привычки сходу оскорблять людей.
Если будешь использовать стандартную BRAM, она на большой ширине кратна 9, то есть с большой вероятностью твоё FIFO будет иметь аппаратную ширину 72 — аж 8 дополнительных бит можно передавать. А невалидные блоки, попадающиеся лишь в конце пакета, можно и хранить, погоды в плане занимаемого объёма они не сделают.
1891 392441
>>16971

>На плисах будешь залупу последнюю без соли доедать


А ёлочка-то мне понравится?
1892 392451
>>92441
Два высших образования есть?
1893 392906
Привет, анон.
Пытаюсь понять осознать как работает синтез из Verilog'а.

Есть пример (сокращенно):
module cntr( clk,rst, count);
input clk,rst;
output reg [3:0] count;
always @(posedge clk or posedge rst)
begin
if (rst==0)
count<=3'b0;
else
count<=count+1;
end
endmodule


Не работает, синтезатор сообщает: W: Edge and connection mismatch; E: Logic for count does not match standard flip-flop.

Как сделать чтобы оно работало - понятно %%(заменить posedge rst на negedge rst, или rst ==0 на rst == 1). Но к сожалению не понятно, почему это невозможно перенести на триггеры.

Объясните, пожалуйста.
1894 392913
>>92906
У тебя ассинхронный ресет, который в списке чувствительности срабатывает по переднему фронту. Однако в теле олвейс-блока ты пишешь if(rst==0) -- что соответствует заднему фронту. Попробуй заменить posedge на negedge.
1895 392920
>>92913

> Попробуй заменить posedge на negedge.


Бро, я так уже сделал, я понимаю что оно так заработает. Я пытаюсь понять, почему исходная конструкция принципиально не синтезируема.

>ассинхронный ресет, который срабатывает по переднему фронту. Однако в теле олвейс-блока if(rst==0) -- что соответствует заднему фронту.


Это понятно, опять же. Но в моем понимании, возможно ошибочном, эта конструкция не является логически неверной:
Блок always сработал по переднему фронту rst, сделал count+1.
Блок always сработал по переднему фронту clk, если rst будет 0, count<=0, иначе count+1.
1896 392924
>>92920
Начни с изучения архитектуры FPGA под которую ты пишешь код. На худой конец открой library guide и посмотри, какие тебе доступны DFF-ки.

>Блок always сработал по переднему фронту rst, сделал count+1.


>Блок always сработал по переднему фронту clk, если rst будет 0, count<=0, иначе count+1.



Всё логично. Но если ты посмотришь, какие тебе доступны ячейки внезапно окажется, что такую конструкцию синтезировать нельзя.
1897 392929
>>92924
Я и так понимаю то что ты говоришь.
Я прошу пояснить мне на примере, почему это нельзя запихнуть в стандартную логическую ячейку (LUT+DFF, как например CycloneII).
Снимок экрана2019-12-0214-47-40.png54 Кб, 767x552
1898 392938
>>92929
Ничего ты не понимаешь.

>Блок always сработал по переднему фронту rst, сделал count+1.


>Блок always сработал по переднему фронту clk, если rst будет 0, count<=0, иначе count+1.



У ячейки есть синхронный вход данных и ассинхронный сброс.
Один из сигналов списка чувствительности займет вход синхронизации.
Синхронный вход данных займет какой-то сигнал с сумматора (count+1)
Это понятно?

Но ты собираешься проталкивать данные на выход триггера в том числе ассинхронно, по фронту reset. Как это сделать?
1899 392939
Да проще всё.

Когда конструкция, по сути, описывает, что и clk, и rst могут являться тактирующими сигналами для выполнения действия count<=count+1, то внезапно оказывается, что тактирующий вход у триггера всего один.
1900 392941
>>92938
Логика которую можно синтезировать выглядит так:

>Блок always сработал по переднему фронту rst, сделал count<=0.


>Блок always сработал по переднему фронту clk, если rst будет 0, count<=0, иначе count+1.



Ресет пойдет на clrn, а выходы сумматоров идут на входы data.
1901 392943
>>92939
Не проще. Если бы была доступна ячейка с ассинхронным сбросом и установкой то такая конструкция скорее всего бы синтезировалась.
1902 392944
>>92941

>Блок always сработал по переднему фронту rst, сделал count<=0.


Твой код этого не описывает.

По переднему фронту rst он сперва проверяет, равен ли rst нулю. А поскольку rst нулю не равен (в случае переднего фронта rst будет равен 1), он идёт дальше и пытается выполнить count<=count+1.
1903 392945
>>92943
Niet. Чтобы это синтезировать, нужен триггер, умеющий защёлкнуть count<=count+1 и по фронту clk, и по фронту rst. То есть умеющий тактироваться от двух клоков.
1904 392946
>>92944

>Твой код этого не описывает.


Код не мой, я просто поправил человека в рассуждениях.
1905 392947
1906 392950
>>92945
Так у тебя на картинке OR двух клоков.
1907 392952
>>92947
У него даже асинхронных сетов/ресетов нет, не то что двух клоков.
1908 392953
>>92950
(не у меня) на картинке мультиплексор клоков, а не OR.
1909 392955
1910 392961
ПЛИСоводство уровня /ra.
Из-за какой-то хуйни развернули холивар.
1911 392962
>>92961
Холивар чего с чем?
1912 392963
>>92953
А самому сделать or клоков в fpga нельзя? Только в cpld?
1913 392968
>>92963
Можно. Только триггер от этого не станет чувствительным одновременно к фронтам двух клоков. Он будет терять чувствительность ко второму клоку, пока первый равен 1, и к первому, пока второй равен 1.
1914 392971
А ещё, если ты попробуешь так делать в реальном проекте (генерировать клок логической функцией из каких-то сигналов)), тебе с большой вероятностью дадут пизды.
1915 392972
А если собрать на двух триггерах?
1916 392977
>>92972
Зачем?
1917 392979
>>92939

>Когда конструкция, по сути, описывает, что и clk, и rst могут являться тактирующими сигналами для выполнения действия count<=count+1, то внезапно оказывается, что тактирующий вход у триггера всего один.


>>92945

>Чтобы это синтезировать, нужен триггер, умеющий защёлкнуть count<=count+1 и по фронту clk, и по фронту rst. То есть умеющий тактироваться от двух клоков.


Ок, спасибо. Теперь будет вопрос раскрывающий моё принципиальное непонимание процесса:
А почему выход другой логической ячейки (реализующей функцию ИЛИ для rst и clk) не может быть использован в качестве источника для тактирующего входа?

>>92941
Т.е. получается, т.к. clrn асинхронный, когда к нему подключен rst и он в состоянии 1, я могу работать с синхронным входом. А при фронте rst или фронте clk и rst==0, в регистр запишутся нули. В принципе, логично. Но не очень понимаю, как это будет выглядеть на схеме соединений.

>>92938
Ок, спасибо. Всё ещё ничего не понял, но очень интересно.
1918 392982
>>92977
А как по-другому?
1919 392986
>>92979

>А почему выход другой логической ячейки (реализующей функцию ИЛИ для rst и clk) не может быть использован в качестве источника для тактирующего входа?


Потому что такой сигнал неопределён, и его невозможно подвергнуть временному анализу при имплементации. А если даже теоретически и возможно, инструменты не будут этого делать, потому что по их мнению так проектируют только мудаки. Трассировщик не сможет проконтролировать, успевают ли сигналы вовремя доходить куда надо, схема будет по-разному работать при разных фазах луны.
1920 392990
>>92986
Т.е. ты хочешь сказать, что синтезатор просто на просто, воизбежание ошибки, выдаёт Error (хотя обычно мудацкое поведение, всё же, отмечается Warning'ами, а Error это когда уже гарантированная ошибка)?
1921 392993
>>92979

>А почему выход другой логической ячейки (реализующей функцию ИЛИ для rst и clk) не может быть использован в качестве источника для тактирующего входа?



При кодинге HDL нужно придерживаться определенных паттернов проектирования. Причем, эти самые паттерны могут меняться в зависимости от твоего девайса или вендора. Изобретая велосипеды ты возможно решишь какую-то локальную задачу, но в итоге это может выйти тебе боком на поздних стадиях проекта.
Короче не выёбывайся, делай как все.
1922 392995
>>92990
С вонингами в логах вообще весело. Код, для которого успешно сгенерился битстрим может выдавать ошибки при попытке симуляции.

Один и тот же код может выдавать ошибку на Xilinx и при этом успешно синтезироваться на Intel.
TPM-CGYoda.jpg1,3 Мб, 1440x816
1923 393014
>>92972
>>92979
>>92963
Вижу твоё незнание цифровой схемотехники триггеров я.
Тебе будут полезны уроки эти, мой юный падаван.
https://youtu.be/i1_VdJOMStE
https://youtu.be/JY7rmZoaq8Y
https://youtu.be/uW8DPE6TRxM
1924 393025
>>92990
Синтезатор выдаёт error потому что код, который был в треде выше, нереализуем на архитектуре ПЛИС. Он и при помощи тактирования OR'ом сигналов нереализуем, выше объяснено, почему. Здесь. >>92968 Ты не понял, что ли, почему так?

А почему в принципе не используется OR сигналов для тактировния — это следующий вопрос, отдельный. Синтезатор такое реализует, трассировщик разведёт, выдав критикал ворнинг, но работать это не будет из-за назначенных от балды задержек и невозможности назначить их не от балды.
1925 393042
>>16943 (OP)
Парни, кто-нибудь реализовывал usb 3.0 на fpga? Это пиздец прям сложно?
1926 393044
>>93042
Я немного не в теме, даже близко такого не касался, но зачем оно? Вроде бы все равно потребуется микросхема PHY, так почему не поставить какой-нибудь cypress?
1927 393047
>>93044
А че, нельзя на старших моделях для этого использовать гигабитные трансиверы? Для Gigabit Ethernet вроде как можно, только сегодня в даташитах на Altera читал. На чипах старше cyclone IV gx активируешь корки для трансиверов и triple speed ethernet, и дело в шляпе. Может и для usb тоже так прокатывает?
1928 393108
Можно трансиверы использовать. В описании к usb3.0-корке на сайте хилых на писано, что она использует трансиверы без внешнего PHY.

https://www.xilinx.com/products/intellectual-property/1-10nwgkl.html#overview
1929 393172
>>93047
Ну, если спизжу аноны поправят, но ты немного смешал солёное с кислым.
Что с PHY, что без, ты будешь использовать трансиверы для выдачи сигнала на USB, однако PHY микросхема нужна в первую очередь для согласования сигналов, в т.ч. электрического.
Если у тебя выходы трансиверов способны обрабатывать подобный сигнал (дифф сигнал, какие уровни напряжения - нагуглить не смог), то да, можешь подключать плисину к USB порту без PHY.
1930 393201
>>93172

>Что с PHY, что без, ты будешь использовать трансиверы для выдачи сигнала на USB


Необязательно. Могут существовать такие внешние PHY, которые общаются с плис параллельно по нескольким линиям LVDS на относительно небольшой скорости, для них могут использовтаься стандартные банки ввода/вывода.
1931 393342
>>93172
Я понял, что ошибся с Ethernet'ом, потому что там хитровыебанный 3-х или 5-уровневый сигнал (100/1000 Мбит соответственно). Но вроде у USB обычный дифференциальный, который ПЛИС может выдать со своих lvds-выходов. Надо только, чтобы чип обеспечивал нужные рабочие частоты на этих выходах, младшие семейства для этого не подойдут.
Безымянный.png90 Кб, 980x678
1932 393350
Во
1933 393405
>>93350
Это не могоуровневый сигнал. Это двухуровневый сигнал с хировыебанной формой переходов, чтобы компенсировать импеданс линии. Плисовые LVDS генерируют такой же с атрибутом LVDS_PRE_EMPHASIS=TRUE.
1934 393429
>>93405
Я знаю, что это не многоуровневый сигнал, это картинка из спецификации USB 3.0
1935 393431
>>93342
Я конечно хуй знает, но из ETH+PHY и USB, я бы выбрал ETH+PHY, потому что USB дохуя замороченная на верхних (программных) уровнях.
А почему тебе никак нельзя прибавить внешний PHY, если не секрет?
1936 393446
>>93431
Да это просто мысли вслух, я не тот анон, который спрашивал про USB. Для USB всяко дешевле будет поставить cypress со встроенным phy (если такой есть для usb 3.0), а жирная плисина стоит наверняка дороже, и корка нужна, которая тоже денег стоит.

У меня сейчас наклевывается задача, будет длинная последовательная цепочка датчиков, суммарная скорость в линии около 200 Мбит/с, между датчиками 100 м. Рассматриваю ethernet-1000 и serial digital interface. Для ethernet нужен микроконтроллер, коммутатор со встроенными PHY (нужен дубляж и последовательная ретрансляция по цепочке), для SDI нужна FPGA с быстрыми lvds, корки serdes и несколько phy. Ethernet потребует три номинала напряжения питания и весьма большие токи потребления + вся реализация считай полностью программная, а для SDI сгодится только одно питание 3,3 В для phy, меньше потребление, значительно проще разводка, но весь протокол и вся логика коммутации пакетов аппаратно в ПЛИС, для меня сложновато, т.к. я на таких скоростях и на lvds еще ни разу ничего не делал. В целом нужны очень маленькие габариты и минимальное потребление всей системы датчиков.
1937 393464
>>93446
Какой бюджет, какая сложность проекта, какую плис думаешь взять?
1938 393549
>>93464
Требований по цене конечного продукта особых нет. ПЛИС пока рассматриваю MAX 10, потому что с одним питанием и конфигурационное ПЗУ не нужно. lvds вроде быстрые по документации, но возможно не пройдет по внутренним частотам, пока не разбирался, как работают альтеровские корки soft-serdes, которые они предлагают в своих даташитах.

Пока так думается, что разницы по деньгам между двумя вариантами особо не будет.
1939 393578
>>87838
двачую!
1940 393927
Подскажите, как для двуклокового FIFO сделать счетчик доступных для чтения слов?
1941 394138
>>85080
Анон, как твои успехи?
1942 394160
>>94138
Как могут быть дела у флексоеба, у которого может по паре-тройке часов практики в неделю на все это? В рамке под стеклом. На флексине уже помигал, выдавая состояние шин адреса и данных.
Крайне мелкими шагами дрючу >>387393 срисовывая схему с натуры и пробую переписывать на Verilog, строя догадки что за снятая микросхема и должна ли она там быть. Похожа на логику, часть которой входит в детектор фронтов на RC цепочке и на CS второй ПЗУ.
Собрал по паре >>392629 Reverse-U16 и DivGMX (осталось по мелочи, ПЛИС, память и генераторы есть) с них если что можно выдрать корку 580ВМ80.
Для тестирования думал шмегу юзать, заебался, жду деталей на HydraBUS https://eax.me/hydrabus/, через которую можно будет делать всякие непотребства начиная от тупой железки, которая на своих портах GPIO задает-читает уровни до прикидывания SPI/IIC мастером.
Определенно попаболи доставляет момент что "комп" частями и нет основного шасси, где наверное прячется контроллер прерываний, иначе не объяснить что на других платах где-то тупо закорочен на питание или на землю выход прерывания, где-то таймер(?) из 155РЕ3 и конденсаторов на линии прерывания. А документации на эту ебань чуть меньше, чем никакой. Реальная практика just for fun если что.
1943 394353
>>93927
Бамп вопросу.
1944 394518
>>94353
По каждой записи инкриминируешь счётчик.
1945 394520
>>94518
Все не так просто и у меня то же подобный вопрос. Нужен счетчик который имеет джва асинхронных тактовых входа, где один вход увеличивает значение, другой уменьшает и в виду асинхронщины эти сигналы могут и одновременно приходить или один постоянно активен, другой при этом меняет свое значение и не раз.
Тактового сигнала нет. Вообще. Лютая асинхронщина на логике.
Другой анон.
1946 394532
>>94520
Если ФИФО не большое можно счётчик регистром заменить, каждый разряд в регистре соответствует слову в ФИФО.
Или, как более продвинутый вариант для больших буферов, использовать дополнительный разряд в каждом слове в ФИФО, в котором бы находился флаг того что было ли считано слово или ещё нет.
1947 394543
>>94520
Это так не делается. Если есть два клоковых домена, то должны быть и два клока, и синхронные им сигналы в соответствующих клоковых доменах.

Для асинхронных фифо была придумана такая хуйня, как код Грея, чтобы без гонок сигналов переводить значения счётчиков из одного домена в другой. Следующее значение отличается от предыдущего ровно одним битом, и никак иначе.

Но это не означает, что счётчики кода Грея должны находиться в двух доменах сразу. Нужно иметь два счётчика, один счётчик считает указатель для чтения, другой — указатель для записи. Находятся, соответственно, один — в домене чтения, другой — в домене записи. Из домена в домен значения переводятся через трёхрегистровые синхронизаторы.

Сравнение, чтобы генерировать empty, должно выполняться в домене read. Сравнение, чтобы генерировать full, должно выполняться в домене write. Тогда им не потребуется проходить через синхронизаторы с соответствующей задержкой, они будут доступны сразу после возникновения (а вот сниматься с задержкой, но это норм, на целостность данных не повлияет).
1948 394783
>>94543
Ты говоришь про указатели, они как правило есть во всех реализациях фифо. А как из этих указателей узнать сколько слов можно прочитать и сколько слов можно записать?
1949 394784
Я облазил весь гитхаб и не смог найти ни одного ассинхронного фифо со счетчиком, чтоб как в IP-корке от Xilinx
1950 394810
>>94784
Ну зайди на фрикору, ну ебана.
Только вчера асинхфифу с вишбоны выдерал.
1951 394819
>>94783
Вычесть одно из другого, ёба. Как с генерацией empty, лишь немногим сложнее. Там, где генерируется empty — там же можно и считать, сколько ячеек не empty.
1952 394934
>>94819
Ну давай прекинем.
Допустим глубина фифо 256.
После ресета я записал 255 слов. Указатель записи будет показывать значение 8'hFF. Указатель чтения будет нулевым, т.к. я еще не прочитал ни одгого слова, 8'hFF - 0 == 8'hFF, всё верно.
Но если я прочитаю 5 слов, а потом запишу 5 слов то указатель записи будет равен 8'h04, а указатель чтения 8'h05. Что от чего отнимать в этом случае?
1953 394944
>>94934

>Что от чего отнимать в этом случае?


А подумать немного самому? Если ты не можешь ответить на этот вопрос, ты же даже веб-макакингом не в состоянии заниматься.

cnt = (wr_ptr >= rd_ptr) ? wr_ptr-rd_ptr : FIFO_DEPTH+wr_ptr-rd_ptr ;
1954 394957
>>94944

>cnt = (wr_ptr >= rd_ptr) ? wr_ptr-rd_ptr : FIFO_DEPTH+wr_ptr-rd_ptr ;


Это же решение влобовую, сколько здесь логики уйдет - это же компаратор, мультиплексор и два субтрактора. Такое фифо будет тормозить. Я пытаюсь родить нечто отвечающее стандартам промышленного проектирования, а с шашкой наголо высирать кучу тормозящего говна.
1955 394959
>>94957
Фифо обычно имеет размеры степеней двойки, НЕСПРОСТА БЛЯТЬ
cnt = wr_ptr-rd_ptr
Как то так, главное что бы разрядности поинтеров были ровно такие же как и длина фифо
1956 394962
Я к чему вообще загнался по поводу фифо. Что у Intel, что у Xilinx корка fifo зашифрована. При этом другие стандартные корки открыты. Почему так сделано? Видимо там все не так тривиально.
1957 394972
>>94957

>это же компаратор, мультиплексор и два субтрактора.


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

>Такое фифо будет тормозить.


Нет.

>Я пытаюсь родить нечто отвечающее стандартам промышленного проектирования


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

Ну и, как было выше сказано, есть радикальное решение, хотя и не могущее в универсальность — делать вычисления по модулю степени двойки.
1958 394973
>>94962

>Почему так сделано?


Бездны анальной оккупации.
1959 394981
>>94972
>>94959
>>94944
Хоть вы и токсики, но спасибо.
1960 395019
Братишки, у меня к вам вопрос, можно сказать, философского характера.
Вот есть код на языке Верилог. Всем известно, что вериложный синтезируемый код - это не программа, но представление схемы в текстовом виде. И всё бы хорошо. Но теперь мы берём этот код и моделируем в каком-нибудь МоделСиме. Что в этом случае? Ведь вереложный код - это, по прежнему, не программа, т.к. машинных инструкций в нём не содержится и процессором он на прямую не исполняется, но теперь уже и не схема.
Можно ли сказать, что код на Верилоге, в этом случае, является скриптом по которому МоделСим рисует временные диаграммы?
1961 395022
>>95019
Код на верилоге для симуляции компилируется в исполняемый файл, тогда он становится программой, исполняемой на процессоре. Симулятор сохраняет и рисует выхлоп этой программы. Это делается потому что так симуляция работает быстрее.
1962 395028
>>95019
Вообше, скрипт — это не "программа, которая выполняется интерпретатором, а не процессором", у него другое определение.

https://ru.wikipedia.org/wiki/Сценарный_язык

Так что и при интерпретации симулятором на ходу код на верилоге — программа.
1963 395032
Как в писать тестбенчи?
Например случай когда есть 3 входа и 3 тактовых разных сигнала.
Подаю любое (1 или 0) на один из входов и даю первую тактовую частоту пусть на 1мс, потом ее отключаю и на второй вход подаю любое число и подаю вторую частоту на 2мс, потом ее отключаю и подаю сразу первую и третью частоту одновременно на 3мс.
Как это описать?
1964 395044
>>95032
Так тестбенчи не пишутся, потому что так железо не работает. Клоки идут постоянно, и, если требуется, к модулю прилагается сигнал clken.
1965 395048
>>95022
В самом деле? Прям в ассемблерные инструкции переводится, прям в ехе?

>>95028
"высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой."
Ну. Т.е. скрипт это набор команд для некой софтины, не для процессора, которая их исполняет. Пример: bat-файлы в Досе. bat-файлы содержат не инструкции для процессора, а обычный текст и выполняются не процессором, а операционкой. Тоже самое и у Верилога с МоделСимом. Хотя этот анаон >>95022 говорит что вериложный код компилируется в программу, что несколько обескураживает.
1966 395076
>>95048

>Прям в ассемблерные инструкции переводится, прям в ехе?


Да, прям в exe. Например:

fuse work.test_bench work.glbl -prj mydesign.prj -L unisims_ver -L unimacro_ver -L xilinxcorelib_ver -o test_bench.exe

https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/ism_r_running_verilog_functional_sim_cl.htm

>Ну. Т.е. скрипт это набор команд для некой софтины, не для процессора


То есть жава (не путать с жаваскриптом) это не язык программирования, а скриптовый язык? Он исполняется жава-машиной.
1967 395102
>>95076

>Да, прям в exe.


Мда уж.
https://youtu.be/LLk9_EH6Pfo

Хотя у меня строчка в МоделСиме выглядит несколько иначе.

>То есть жава (не путать с жаваскриптом) это не язык программирования, а скриптовый язык?


Я в этих ваших жаба-машинах ничего не понимаю. Но если между кодом и процессором существует некая прослойка, в виде жабы-машины, которая не компилирует этот код в процессорные инструкции, то да, такой код надо считать скриптом, по определению.
clk1.png4 Кб, 712x176
1968 395111
>>95044
Был задан вопрос как описать такое поведение, а не как оно работает и возможно ли.
Повторю вопрос - как это написать в тестбенче тактовые сигналы показаны условно и могут быть любой длительности?
1969 395114
>>95111
Используй мультиплексоры, Люк.
1970 395118
>>95114
Еще один. Как такой тестбенч написать?
При чем здесь мультиплексоры?
1971 395119
>>95111

>Был задан вопрос как описать такое поведение


Я в курсе. Я тебе это написал на всякий случай, потому что ты хочешь странного, а знания, которые требуются для этого, довольно базовые. Когда нуб хочет странного, то обычно он не осваивает продвинутые методы, а просто чего-то не до конца вдупляет.

А то, что тебе требуется, можно написать разными способами, я бы написал так (пикрелейтед).
s-l1600.jpg140 Кб, 592x542
1972 395121
>>95119
Спасибо, Анон! Возьми Циклон внимание на маркировку.
В шары долблюсь или у товарища Jack0v еще не было про тестбенчи, а метод синтез-конфигурация-проверка IRL как-то подзаебал.
1973 395125
>>95121
Это у китайцев была акция - 3 по цене 2?
1974 395187
>>95125
Кто бы его знал. Между некоторыми семействами есть побитовая совместимость. Очень отдаленный пример из 26.08.2003:
"С сентября 2003 Altera будет наносить двойную маркировку на микросхемы семейства Cyclone () Двойная маркировка означает, что одна и та же микросхема будет иметь два кода для заказа. Один код для коммерческого исполнения с самым высоким быстродействием и другой для индустриального со средним быстродействием."
http://web.archive.org/web/20170707023208/http://www.efo.ru/news/news.pl?a=1&idf=6&kod=Altera&page=3
1975 395190
>>95187
Что ты привёл в пример это немного не то совсем не то, но мысль я твою понял.
Тут одно исполнение, просто разное поведение в разных температурных диапазонах. В коммерческом От 0 до 60 градусов работает как -1 SpeedGrade, а вне диапазона скорость распространения сигнала снижается, но скорость стандартного SpeedGrade производитель ещё может гарантировать.
1976 395195
>>95121

>еще не было про тестбенчи


Обещал скоро начать.
1977 395253
>>95076

>Да, прям в exe. Например:



>>95102 >Хотя у меня строчка в МоделСиме выглядит несколько иначе.
Собственно вот:

>vsim -t 1ps -L rtl_work -L work -voptargs="+acc" Test


Порылся также в файлах генерируемых МоделСимом, ехе-шников не обнаружил. Может то что ты говоришь это какое-то новаторство от Хилых, или я МоделСим юзаю как-то неправильно?
1978 395261
>>95253
Всё может быть. То, что происходит под капотом, юзеру в любом случае не предназначено, так что испольняемый файл можно называть как угодно. Саму такую схему можно реализовать разными вариантами — например, сделать dll и дёргать из неё исполняемый код в виде библиотечной функции. Я даже не помню, откуда я вообще знаю, что симулятор от хилых компилирует хдл в исполняемый код. Так что если тебе хочется разобраться, придётся гуглить самому.
1979 395299
Анонче, есть кто сечёт в modelsim'e?
Разбираюсь как писать в файлы.
Системные функции, такие как $fdisplay, $fwrite, работают хорошо, но в одной книжке вычитал что modelsim поддерживает ещё и функции с посимвольной работой с файлами, наподобие как в языке С, типа передвигать указатель по файлу, писать или читать один символ, например функция $ungetc, но у меня она в файл почему-то не пишет, хотя ошибок modelsim не выдаёт. Есть мысли?
Вот код.

module WRTest();

integer FileD;
integer Code;

reg [7:0]Char = "Ж";

initial
begin
FileD = $fopen("Test.tst", "w");
//$fwrite(FileD, "так пишет");
Code = $ungetc(Char,FileD); //а так нет
$fclose(FileD);

$display(Code); //Code == -1
$stop;
end

endmodule
1980 395332
>>95299
Анончик, не еби муму.

Свали свои результаты в кучу через $fwrite, а потом разгребай их питоном, как нормальные люди.
1981 395346
Анон, чем отлаживать PCI-Express в винде?
1982 395621
Пытаюсь работать с регистром в цикле, задавая разряды через переменную. Соснул.
Моделсим говорит
Range must be bounded by constant expressions
Как быть?
Способ я нашёл, но чёт он как то не очень.

module Suka();
reg [87:0]String = "ГОВНО, МОЧА";
reg [7:0]Symb;
initial
begin: init
integer i;
for(i = i; i < 11; i = i + 1)
begin
Symb = String[iˣ8+7 : iˣ8];
$display(Symb);
end
end
endmodule
1983 395622
>>95621

>for(i = i;


i = 0; //Конечно же
1984 395623
>>95621
Используй genvar / generate for
1985 395624
>>95623
Подробнее, прошу.
1986 395731
>>95346
RWEverything
mmap
1987 395732
>>95731

>mmap


>в винде


Тьфу ты. Только первый варик остается :(
1988 395733
>>95346
А что за девайс пилишь?
1989 395734
Можно ли в плисине поднять 20+ MAC для организации передачи по rmii на 20+внешних устройств? Без PHY.
1990 395737
>>95734
Если хватит пинов и логики тогда можно хоть 30
1991 395769
>>95737
А так мне про идее нужно 7-8 пинов на каждое внешне устройство, логику на поднятие эзернета и конвертеров mii-rmii? Никаких других ограничений нет?
1992 395780
игьз
1993 395806
>>95346
Same question. Для начала хотя бы тупая корка с парой регистров с отображением в GPIO для хуйни типа 32 бита ввод и 32 бита вывод. Платки нет, пока просто спрашиваю.

>>95734

> в плисине поднять 20+ MAC для организации передачи по rmii на 20+внешних устройств?


Backplain делаешь? Какова цель? Может проще взять говно мамонта и из SMII сделать RMII? http://openrrcp.org.ru/download/datasheets/RTL8316B_Datasheet_1.0.pdf
Сам собрался реализовывать логику работы свича, включая еблю с коллизиями хешей, вланами, обучением адресам на портах?
1994 395808
>>95769

>Никаких других ограничений нет?


Ограничения только по быстродействию этих самых пинов.

>>95806

>Same question


Ну ответил же выше.
изображение.png728 Кб, 1280x720
1995 395834
>>95733
Секретные сведения))0)
>>95731
Спасибо, анон.
1996 395835
>>95806

>Какова цель


С наименьшими количеством линий и наибольшей скоростью не более 10мкс на перестройку передать параметры где-то 3-6 байта на 20+ устройств.
Сейчас от rmii опять отходим, потому что там передача и формирование минимального фрейма уже займет 18мкс.
Возможно SPI выберем, если там хотя бы 50мбит можно поднять.

>>95808

>Ограничения только по быстродействию этих самых пинов.


Это как?
1997 395844
>>95624
Ну же, анон.
Мне даже ни сколько циклы нужны, сколько просто работать с разрядами через переменную.
1998 395848
>>95844
Symb = String[iˣ8+:8];
1999 395851
>>95835

>Это как?


У пинов влисины есть предел по максимальной частоте. У Xilinx есть разделение на HR и HP банки. Одни поддерживают больше логических стандартов, другие более высокую частоту.
2000 395982
Есть у меня один цикл в тестбенче. Почему возникает такая ошибка? Как ее обойти?
for (i = 0; i < 8; i=i+1) begin
$fwrite(packet_dump,"%h", axis_tx_tdata[i8 + 7:i8]);
end

ERROR: [VRFC 10-536] constant expression required
2001 395992
>>95982
Так я о том же спрашиваю >>95621
Вот анон ответил >>95848
Но я ещё пока не пробовал.
2002 396324
Перекат пилить не пора? Тред уже за 2000 постов перевалил.
2003 396367
>>96324
Пилите, шура.
2004 396682
>>96324
Жди до 2047
2005 396724
>>96682
А чем он лучше остальных?
2006 396935
Анон, скинь пожалуйста статей по использованию IP-ядер и как с ними взаимодействовать по AXI, а то либо я слепой, либо статей нормальных нету. Но скорее тут второе.
Тред утонул или удален.
Это копия, сохраненная 31 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /ra/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски