Вы видите копию треда, сохраненную 12 октября в 18:09.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий тред: >>397766 (OP)
Вопрос, что делать с питанием этих бавнков, оставить болтаться в воздухе, или посадить на землю?
>Вопрос, что делать с питанием этих бавнков, оставить болтаться в воздухе, или посадить на землю?
Ответ: прочитать соотвествующий аппноут от производителя. Например, Hardware Design Guide Consideration.
always @(posedge clk) begin
z1 <= input;
z2 <= z1;
z3 <= z2;
end
assign output = input + z1 + z3;
Можно и параметризовать. Со сдвиговым регистром проблем не должно быть, потом поразрядное и с полиномом, апосле унарный КСОР (т.е. все разряды регистра ксорятся друг с другом).
Как правильно написать тестбенч к этой штуке? У меня сигнал clk при такой реализаици имеет неизвестное значение, не меняется.
Да, она лишняя, точно.
А как можно все коэффициенты получившегося полинома вывести на шину? Например, известно, что максимальная степень полинома будет 6, тогда можно сделать шину out logic [5:0] выходной и на нее записывать коэффициенты полинома. Как это делать в этой схеме?
Назначь ему валидное значение в начале. И заодно используй forever, чтобы было яснее, что этот код не описывает железо и не предназначен для синтеза.
initial begin
clk = 1;
forever #5 clk =!clk;
end
wire [1:0] dataIn;
assign dataIn = {d1,d0};
Тут dataIn[0] содержит сигнал d0 или d1? Или это не имеет значения?
Дубина, если нужен расширенный температурный диапазон, то надо было покупать соответствующую ревизию.
Что будет? Параметры в даташите указаны при определённых температурах. Как минимум генерация поплывёт.
>генерация поплывёт.
Какая ещё генерация? Ты про тактовый сигнал? Но почти во всех полисах нет встроенного тактового генератора как в микроконтроллерах (когда только кварцевый резонатор снаружи). А есть всего лишь максимум синтезируемые кольцевые генераторы на инверторах, которые почти никто не использует.
>Дубина, если нужен расширенный температурный диапазон, то надо было покупать соответствующую ревизию.
Зумеры не слышали про дефицит. Ты lead time на диджикее видел?
>Что будет
С вероятностью 95+% - ничего критичного. Народ вон копеечные ардуины на аэростатах в стратосферу запускает, и ничего, работают.
У ардуины в спеках температуры от –40°C до +125°C. По меркам FPGA это уже military grade, ваенные технологии.
То что справа то младшее, что слева старшее.
В даташите у атмеги 328p все зарактеристики даются от -40 до 125, т.е. это не просто absolute maximum rating.
Если нетрудно укажи где конкретно смотреть, или ещё лучше запости скриншот. Всё что я смог нагуглить, уже не помню где, это только фразу что
>банки должны быть подключены к какому-то питанию.
У меня в китайском нищеплисе явно написано
> The device requires all the I/O's VCCIO to be connected to the power supply.
Плюс для некоторых банок есть ограничение, что питание не должно быть меньше какого-то, потому что от него работает какая-то дополнительная хуйня внутри чипа и она привязана к этой банке.
Прямо сейчас у нас вообще два банка к питанию не подключены, подключены только их земли к земле, плюсовые выводы болтаются в воздухе и при этом всё работает. Но меня точит червь сомнения что это не правильною В следующей ревизии платы я плюсовые выводы подключил на землю впослед через конденсатор. Вот теперь думаю насколько это адекватно...
> Прямо сейчас у нас вообще два банка к питанию не подключены
Вам что, жалко дорожку к паду подвести? Или вы пытаетесь впихнуть какой-нибудь BGA780 в двухслойную плату?
>Или вы пытаетесь впихнуть какой-нибудь BGA780 в двухслойную плату?
Ну почти, + вторичный источник питания главный конструктор нагружать не хочет, а он тот ещё чудило.
По верилогу вот есть
https://www.youtube.com/playlist?list=PL4UMfOeGYsvblwrP3VYKHq11xgkxVqoUj
По виваде хз.
Почему не устанавливается из aur?
==> Сборка пакета vivado 2022.2-1 (Ср 15 фев 2023 15:23:44)
==> Проверка зависимостей для запуска...
==> Проверка зависимостей для сборки...
==> Получение исходных файлов...
-> Загрузка Xilinx_Unified_2022.2_1014_8888.tar.gz...
curl: (37) Couldn't open file /Xilinx_Unified_2022.2_1014_8888.tar.gz
==> ОШИБКА: Ошибка при загрузке 'file:///Xilinx_Unified_2022.2_1014_8888.tar.gz'
Прерывание...
-> ошибка сборки: vivado
>Since the download of the installer is locked behind a login wall, it needs to be downloaded manually as outlined above and placed in the same directory as the PKGBUILD.
Ты эту часть прочитал/сделал? (Тебе на самом деле даже не нужен AUR и школоарч как таковой, инсталлятор с сайта Хилых встанет на любые прыщи, но только в обход менеджера пакетов.)
Мне из России доступ с загрузкам на сайте xilinx запрещен, даже через тор браузер не дает скачать. Получается в России остается только качать вивадо с торрентов?
Берёшь любой прокси/VPN (плюс фейкомыло), создаёшь фейковый аккаунт какого-нибудь греческого студента Хохлоса Пидороса, чтобы получить URL для скачивания. А потом качаешь каким-нибудь wget непосредственно с https://xilinx-ax-dl.entitlenow.com/ уже напрямую.
Пристало как-то к моим липким ручонкам советские процессоры
КР1801ВМ1
КР1801ВМ2
КР1810ВМ86
КР580ВМ80А
КР580ИК80А
КР1820ВЕ1А
КР1814ВЕ5
Хотел бы я использовать их в своих ёбаподелках, но им для работы нужны внешние микросхемы оперативной памяти и ПЗУ для хранения программы, да ещё порты ввода-вывода. А их то, как раз, у меня и нет.
Что-то можно подобрать из современной элементной базы для их замены?
Дяденька, ты в какой жопе мира обитаешь?
Загляни на тот же Авито со словами 580ВВ51А, 580ВВ55А, 580ВИ53, 580ВН59, 580ГФ24, 580ВК28/38 - рублей по 40 и меньше можно выловить каждую микросхему (новую и не паянную).
По памяти - вообще любая подойдет, хоть на 55(50), что 70 нс - хотя лучше кешпамять на 10-15 нс искать. Главное - напряжение питания 5В должно быть. Для ПЗУ - ищи 28 серию ПЗУ (мало и почти на ходу перешивать можно) или 29F серию - только блоками стирать, записывать можно и по кусочкам. Требования те же - 5В питание.
Что бы не ебаться с кучей рассыпчатой логики - ищи ПЛИС типа EPM7128S (остерегайся подделок/залоченных).
Если прям вообще ничего нет - ищи преобразователи уровней, ПЛИС - будешь использовать в двухпортовом режиме память плис для имитации ОЗУ/ПЗУ/отладки, как и имитировать параллельные порты ввода-вывода.
PS Выбрось каку КР580ИК80А. Это тоже самое что и КР580ВМ80А.
>КР580ВМ80А
>КР580ИК80А
Три питания +5, -5, +13. Как делать будешь? Далее, как написал анон выше, мало подрубить память, нужно ещё о прерываниям подумать, о таймерах, uart, собственно сами порты параллельные вв55. Дофига всего. А чего ради? Чтобы получить сильно ухудшенное подобие атмеги? Таким образом если и делать такое, то просто так, для развлечения. Но и то лучше взять вм85, будет намного меньше всего и с питанием проще. Сам вот прям сейчас понемногу паяю на макетке поделку на 8085. Просто так, без каких-либо задач.
>>18509
>КР1814ВЕ5
Это с масочным ПЗУ, оно похоже никак не может выполнять код из внешнего. Можешь выкинуть.
>>18509
>КР1810ВМ86
В целом во многом аналогично вм80. И если я не ошибаюсь, то намного проще на 8088 делать из-за восьмибитной шины, можно такую же восьмиразпядную память использовать, если я не ошибаюсь. С учётом цены всего этого проще тебе взять К1810ВМ86.
>>18509
>КР1801ВМ1
>КР1801ВМ2
Эти интересные конечно, тем что система команд от pdp-11. Но тоже такое себе.
>>18509
>КР1820ВЕ1А
Вот с этими вероятно проще всего, вроде как им только ПЗУ снаружи требуется. Но в них очень мало всего.
И анон выше прав, самое простое это подрубить к плисине. Только некоторая ассиметрия получится, особенно в варианте с fpga с памятью внутри, ведь в такую плисину влезет процессор посущественнее этого раритета.
>анон выше прав, самое простое это подрубить к плисине.
Я тут подумал ещё немного и похоже с современной элементной базой оптимально будет подключать эти древние процессоры к атмегам или ещё каким микроконтроллерам, так будет не только проще, но и дешевле одной только параллельной EEPROM.
Звучит хорошо. Собрался использовать мега128 или 256 для эмуляции (если хранить все адресное пространство ПЗУ+ОЗУ во флеше) или мегу послабее если собрался эмулировать например 8килобайт ОЗУ? Убедил.
Как ОЗУ собрался на меге эмулировать? Есть всего килобайт-два ОЗУ в лучшем случае которые будут немного засраны работающей программой эмуляции.
Надо понимать что ОЗУ и ПЗУ - память с произвольным доступом. Как собрался на частоте около 2 МГц быстренько находить что надо и выдавать на шину? Тут конвейеризация или предвыборка не всегда спасет или поможет.
Ну да, у нас для 8080 есть шагатель на триггере с помощью которого можно хоть руками переключателями каждый байт на шине выставлять-читать. Оно надо такое счастье?
Как же хардкор под названием ROM эмулятор на ОЗУ для отладки и выполнения программы на полной скорости процессора?
Параллельный ввод-вывод можно сделать на триггерах(регистрах) - их наверняка в любой жопе мира можно найти и к ним понадобится немного рассыпчатой логики для декодера адресов.
Последовательный ввод-вывод.. Отображать регистр UDR и остальные для юарта меги в адресное пространство процессора? Хитер..
Прерывания? А оно надо на начальном этапе?
Как-то не особо возбуждает. Даже не поФАПаешь на такие извращения. https://habr.com/ru/post/446048/
>Как собрался на частоте около 2 МГц быстренько находить что надо и выдавать на шину?
Учти что команды у атмеги выполняются быстрее чем у 8080. Надо такты посчитать, может и на такой частоте будет. Ну и можно микроконтроллер посущественнее взять, если так сильно нужно будет.
>Как-то не особо возбуждает. Даже не поФАПаешь на такие извращения.
Вот именно, поэтому "современная" элементная база тут несколько неуместна.
> А чего ради?
Ради DAT FEEL чего только не городят: http://www.s100computers.com/My System Index Page.htm
> Только некоторая ассиметрия получится, особенно в варианте с fpga с памятью внутри, ведь в такую плисину влезет процессор посущественнее этого раритета.
Так ПЛИСины разные бывают, не обязательно туда седьмой Кинтекс пихать:https://www.mattmillman.com/projects/8od/
Очень давно не писал под AVR.. Давай прикинем условный код:
.org int1_vector
rjmp rom_emul - вход в прерывание 4 такта + прыжок 2 такта
...
.org 280h
rom_emul: in zh,pinA - 1 такт
in zl, pinB - 1 такт
lpm r16,z -3 такта
out portC,r16 - 1 такт
reti - 4 такта
=4+2+1+1+3+1+4= 16 тактов.
Вот и соснул. При 16 МГц тактовой максимум 1МГц (1миллисекунда) в идеальных условиях можно получить (если снаружи повесить логику декодера адресов, RD на отдельный вход прерывания повесить на мелких мегах. на толстых мегах порты уже как ОЗУ и их через in/out не потыкаешь, только через lds/sts которые 2 такта требуют).
Хорошо хоть не бзданул "вручную тактируй". У 8080 есть минимальная частота ниже которой он начнет люто глючить, поэтому менее 500 КГц (кварц 9*500=4.5МГц) ему лучше не подавать, а тормозить шагателем.
> Ну и можно микроконтроллер посущественнее взять, если так сильно нужно будет.
На том же Хабре была статья как кто-то пытался эмулировать в биосе на иса шине жесткий диск. У иса шины тактовая около 8 МГц и все что могло пойти не так - пошло не так..
Так что сильно проще немного порвать пердак и найти реальные микросхемки, а не ебаться с эмуляторами особенно когда хер знает как оно работает и особенности поведения которые в даташите не видны.
Я вот никак 580ВВ79(8279) не запущу кодом с обломков компа. Какую-то херню выдает на индикаторы.
>особенно когда хер знает как оно работает
Что именно? ОЗУ и ПЗУ ну и вв55? Анон же не собрался втыкать весь комплект кр580, а вероятно только память и параллельный порт.
>когда хер знает как оно работает и особенности поведения которые в даташите не видны.
Временные диаграммы чтения и записи для 8080 есть, а что тебе ещё нужно чтобы их запустить?
>Хорошо хоть не бзданул "вручную тактируй".
Тоже мне откровения. Также можно задействовать сигнал ready, оно специально для медленной фигни на шине.
>Что именно? ОЗУ и ПЗУ ну и вв55?
Попроще ничего не нашел? Например 580ВТ42 и срать что не периферия... Мультиплексор и счетчик внутри. Чего не взял ВТ57, ВГ75, ВВ51, ВИ53 как пример?
Даже сам Интел в руководстве как-то писал - нужен параллельный порт? Берем 589ИР12 (8212) и радуемся жизни. Вот тут точно никаких вопросов нет как он работает.
>Временные диаграммы чтения и записи для 8080 есть, а что тебе ещё нужно чтобы их запустить?
Подключить - да, достаточно. Программировать - нет, недостаточно. В какой регистр что писать? Какие есть запрещенные комбинации которые ломают логику работы? Вот с ходу вопрос - что будет при чтении регистра состояния ВВ55? Такие мелочи надо знать прежде чем писать эмулятор.
http://www.nedopc.org/forum/viewtopic.php?f=91&t=17383
>Тоже мне откровения. Также можно задействовать сигнал ready, оно специально для медленной фигни на шине.
Nice. Немного не в тему, но новые версии старых процессоров/микроконтроллеров иногда имеют приписку "fully static operation" и их реально можно вручную тактировать и смотреть как оно работает в замедленном виде.
Куда делся анон с процессорами? Может прояснит ситуацию что у него есть и что доступно.
>Берем 589ИР12
Ну можно и так.
>писать эмулятор.
Вообще то анон с процессорами не упоминал эмуляторы, а лишь бы запустить. Как раз наоборот, упоминал современную элементную базу. Поэтому вероятно не важно все это.
Отвечу всем и сразу.
Всякие ПДП и уарты не нужны. Достаточно портов в/в. Их отображать в адресное пространство. Для реализации дешифрации адреса, по теории, даже рассыпухи не нужно, можно использовать старший разряд шины адреса.
Под современной элементной базой имел ввиду микросхемы ОЗУ, ПЗУ совместимые с этими процессорами, но выпускаемые промышленностью на данный момент, это чтобы с поиском советских не ипаться, также важен прайс, он должен быть ниже современных микроконтроллеров, иначе овчинка выделки не стоит.
Если советские ещё можно достать на авите, то, с одной стороны, это хорошо, с другой, никаких гарантий нет, что они рабочие, или, что не кинут.
Эмуляцию на МК или плисине не рассматриваю, ибо экономически не выгодно, любая занюханная Мега по функционалу и стоимости далеко впереди, ну может не далеко, но всё же. Да и как сказано выше, зачем эмулировать обвес на МК/ПЛИС когда там уже есть процессор как минимум не хуже.
Эмуляцию ПЗУ на плисине тут имеет смысл рассматривать только в качестве возможности отладки ПО.
Кстати, под эти профессоры есть ассемблер, о сишном компиляторе я даже не мечтаю, а то в машинных кодах писать не очень хочется?
>>18518
>Три питания +5, -5, +13. Как делать будешь?
Над этим пока не думал. Может удастся обойтись без минусового?
> Может удастся обойтись без минусового?
Минусовый можно получить из плюсового элементарным buck-конвертером. Выставить в нём резисторами 5В. Входной + подключить правильно, там где должно быть выходное напряжение подключить землю, а из земли брать заветные -5В. Buck-конвертер будет работать на виртуальной земле VGND выставляя её так, чтобы VGND + 5 = 0 (потому что выход подключён к земле). Т.е. на выходе и будут заветные -5В. Пикрил.
>Под современной элементной базой имел ввиду микросхемы ОЗУ, ПЗУ совместимые с этими процессорами, но выпускаемые промышленностью на данный момент
Взаимоисключающие параграфы. Микросхемы с питанием 5В уже давно не выпускают. Все флеши и память сейчас 3.3, 2.5, 1.8в...
Только "недавнее" старье искать. Что бы не ныл - например A29040B-70F, K6T1008C2E-DB55, AT29C040A (довольно интересная - можно кусками по 256 байт перешивать), DS1245Y-70+ (ОЗУ как ПЗУ если батарея живая).
>>18749
>также важен прайс, он должен быть ниже современных микроконтроллеров, иначе овчинка выделки не стоит.
Ебаный эффективный менеджер? Какого хуя ты забыл? Повыебываться как наебал систему, давайте мне премию, я молодец? Пиздуй шариться по помойкам - там за бесплатно найдешь, время такого биомусора ничего не стоит.
До тебя мудака походу не доходит что "хобби" - здесь эта экономическая составляющая на хую вертится так как в большинстве случаев важен процесс/результат, а не наебалово системы в промышленных масштабах.
Если собрался на продажу делать - просто съеби из этого треда на другие доски и там ной что 5 центов за память - это дораха, мне надо бесплатно пару вагонов.
Зачем тебе это?
У устройств на таких камнях будут неадекватные габариты и стоимость.
Посмотри в сторону китайских МК, самые дешевые - аналоги stm32f030, risc-v (ch32v00x) и 8051, производителей можно посмотреть на lcsc. Оригинальный stm32f030f4p6 150 руб стоит.
Если дохуя импортозамещение, у ангстрема был контроллер, похожий на древний пик, наверняка он дешевый.
>также важен прайс, он должен быть ниже современных микроконтроллеров
>ибо экономически не выгодно
https://habr.com/ru/post/678330/
"Микроконтроллер PMS152-S08. Всё почти тоже самое, но с большим объёмом памяти программ (1,25 KW), 11 битным ШИМ контроллером SuperLED, двумя пинами внешних прерываний и на 2 ножки больше.
Стоимость: 0,088$ (от 150 штук 0,064$)."
Уважаемый менеджер, примите заказ:
CYRS1645KV18-250GCMB 144-Mbit QDR® II+ SRAM - нужно 20 шт
MT29F128G08AMCABH2-10ITZ:A (Micron NAND Flash SLC 128G 16GX8) - 32 шт
8A34041 (8-Channel Universal Frequency Translator) - 5шт
AD9213 (radio frequency (RF) analog-to-digital converter (ADC)) - 13 шт
ZU48DR-G1517 (Xilinx ZYNQ UltraScale+ RFSoC) - 10 шт
Для пробного заказа хватит. Цена надо понимать должна быть менее 8 центов за чип, если больше - сразу идите нахер.
Жду счет на оплату с ценами, условиями и сроками поставки.
>и 8051
Не триггери, а? Недавно открыл для себя STC.
Вот это постарались - никаких тебе внешних анальноогороженных погромматоров/отладчиков, достаточно 3.3/5V UART и Keil + ему поебать напряжение питания - и 3.3 и 5В хавает.
https://aliexpress.ru/item/1005004879211209.html
Цена реальная, 1$. Доставили. Его прям не запускал еще, а старую версию https://aliexpress.ru/item/1005005072706151.html запускал (делал через интерфейс внешней памяти загружалку ОЗУ для 580ВМ80А по компорту).
>также важен прайс, он должен быть ниже современных микроконтроллеров
Посмотри цены на параллельные ПЗУ. Хотя бы 28C64, 27C64 и подобные, анон выше ещё упоминал. Так вот даже распайка на алиэкспрессе сейчас рублей по 50 за штуку. А ещё нужно ОЗУ, регистр для порта и что-то для дешифрации адреса. Это помимо напряжения +12, а -5 можно и не подавать, как-то будет работать, только без гарантий.
Поэтому никак оно не будет дешевле современных микроконтроллеров.
>цены на параллельные ПЗУ.
И даже последовательные 24C08 и прочие самые дешёвые на lcsc по $0.06 за штуку, при том что микроконтроллеры там же есть по $0.08.
Ну никак не будет дешевле готового микроконтроллера.
>Кстати, под эти профессоры есть ассемблер
Для 8080 разумеется. Можно ещё от z80 использовать.
Зато
>КР1801ВМ1
>КР1801ВМ2
Это pdp-11, первая сишечка для них и делалась.
>27C64
Может... Нинада? Все столбы в округе погаснут в попытках достать ДРЛ лампу для стирания этой классики.
Почему все забыли про программатор параллельной ПЗУ? Чем код то зашивать для отладки или работы? Сколько программатор стоит? Как или из чего его собирать? Намечается огромная дырень в бюджете как минимум на панельки. Дораха!
Для особо упертых или упоротых - есть и не классика 27 серии с электрическим стиранием, а не ультрафиолетом - "The W27C020 is a high speed, low power Electrically Erasable and Programmable Read Only Memory organized as 262144x8 bits that operates on a single 5 volt power supply, The W27C020 provides an electrical chip erase function."
>микроконтроллеры там же есть по $0.08
О, щас я тебя обоссу. К этим копеечным мк, которые, кстати, чаще всего OTP, нужен свой программатор. Для отладки требуется дорогая дев. борда, симулирующая работу этих мк. С тулчейном там всё настолько грустно и плохо, что ты охуеешь. Я уж молчу про всратую документацию на чинглише и отсутствие ерраты.
В общем, для говорящих хомяков и т.п. в миллионных тиражах есть смысл поебаться и заморочиться с этими копеечными мк, а для себя, для хобби они совершенно непригодны.
>Почему все забыли про программатор параллельной ПЗУ?
Потому что настолько очевидно что он необходим, что и писать не нужно. Если программатора нет, то придется разориться, самое простое взять на алиэкспрессе xgecu t48, около 4000 рублей стоит всего лишь.
>ДРЛ лампу для стирания этой классики.
На авито бактерицидную лампу взять. По любому дешевле программатора будет.
>>18924
>которые, кстати, чаще всего OTP
Если брать тот по ссылке выше на хабр (это не я притащил), то у них есть и перезаписываемые чуть дороже.
>Для отладки требуется дорогая дев. борда, симулирующая работу этих мк.
Отлаживайся на перезаписываемых.
>нужен свой программатор.
Для параллельной ПЗУ все равно нужен программатор.
>С тулчейном там всё настолько грустно и плохо, что ты охуеешь.
Для 8080 по сути только ассемблер будет, с ним и сравнивай.
>в миллионных тиражах есть смысл поебаться и заморочиться с этими копеечными мк, а для себя, для хобби они совершенно непригодны.
Опять же сравнивай с КР580.
Не нравится такое, можно сравнить с STM32G030F6P6 за $0.67. Где найдешь дешевле параллельное ПЗУ, ОЗУ, регистр и мелочевку для дешифрации адреса?
>Не нравится такое, можно сравнить с STM32G030F6P6 за $0.67. Где найдешь дешевле параллельное ПЗУ, ОЗУ, регистр и мелочевку для дешифрации адреса?
Не ебу, к некрофилии отношения не имею.
Я лишь указал, что МК за 8 центов - это бесполезный хлам.
>>18933
>Я лишь указал, что МК за 8 центов - это бесполезный хлам.
Хлам не хлам... Надо ТЗ читать:
>Под современной элементной базой имел ввиду микросхемы ОЗУ, ПЗУ совместимые с этими процессорами, но выпускаемые промышленностью на данный момент, это чтобы с поиском советских не ипаться, также важен прайс, он должен быть ниже современных микроконтроллеров, иначе овчинка выделки не стоит.
>также важен прайс, он должен быть ниже современных микроконтроллеров
>прайс ... ниже современных микроконтроллеров
>прайс ... ниже
Так что пусть не выебывается и берет что есть (предложено) или ищет дешевле 8 центов. Вот и весь посыл. Ой, а про достав.очка он наверное совсем забыл.. Найти ОЗУ или ПЗУ за 8 центов и менее включая достав.очка? Самому интересно - получится у него или нет?
>>18749
Ты где? Народ уже соскучился, нашел и предложил варианты, а ты молчишь..
Дай угадаю - увидев слово "погромматор" уже сразу слился, так как стоит он сильно больше чем самый задроченный современный МК?
>Не ебу, к некрофилии отношения не имею.
Хоть википедию открыл бы. Этого хватило бы чтобы понять что у них внутри нет ни ОЗУ, ни ПЗУ и нужно лепить снаружи параллельные. И с питанием что-то делать.
>Я лишь указал, что МК за 8 центов - это бесполезный хлам.
Это очевидно всем. Только по сравнению с минимальной системой на КР580 эти микроконтроллеры очень даже ничего. Так что твое высказывание не в тему тут.
>или ищет дешевле 8 центов.
Даже STM32 из тех что помельче, будут дешевле чем докупать всю обвязку к КР580ВМ80А.
Пошла подмена понятий?
>Даже STM32 из тех что помельче, будут дешевле чем докупать всю обвязку к КР580ВМ80А.
Как собрался используя STM32 запускать КР580ВМ80А? Схемку нацарапай.
ОЗУ и ПЗУ допустим через wait сделаешь как и порты ввода-вывода. Чем тактировать собрался КР580ВМ80А? Ему 12В по хорошему надо с крутыми фронтами и уже не получится используя выводы с 5volt tolerant качать 12В сигнал.
В system guide написано что сигналы RDY и RESET не просто так идут через системный тактовый генератор - нужна жесткая привязка для синхронизации ибо можно загнать старичка в маразматическое состояние.
>Как собрался используя STM32 запускать КР580ВМ80А?
Никак. Тут сравнивали цены на готовые микроконтроллеры с ценой на всю минимальную обвязку КР580ВМ80А. Я про это и написал.
И если тебе так неймётся, бери лучше ВМ85.
А обвязка тут при том что у анона сам ВМ80А уже есть и тратиться ему только на "обвязку". И хочет он чтобы было дешевле готового микроконтроллера. Это если ты не читал обсуждение сначала.
> Может... Нинада?
Надо Федя… Надо! (ей обычной бактерицидной лампы хватит https://mysku.club/blog/aliexpress/76928.html )
>>18924
> О, щас я тебя обоссу. К этим копеечным мк, которые, кстати, чаще всего OTP, нужен свой программатор. Для отладки требуется дорогая дев. борда, симулирующая работу этих мк. С тулчейном там всё настолько грустно и плохо, что ты охуеешь.
Конкретно для STC8 отладочная плата стоит в районе десяти баксов (или даже дешевле, но это будет просто кусок тестолита, с припаяным STC8G1), программируется обычным преобразователем USB-UART, а SDCC вообще бесплатен (ну или взять Keil с ближайшего рутрекера). Вот документация, таки да — на редкость всратая.
>>18927
> Для 8080 по сути только ассемблер будет
Ну, вроде, кто-то пытался SDCC допилить, чтобы можно было для 8080 использовать, не боясь попадания Z80-only кода в выхлоп компилятора.
>>18952
Ему, всё-таки, проще просто фапать и не выёбывааться: https://github.com/dekuNukem/FAP80 С аутентичной обвязкой тех времён есть смысл связываться только если хочется вспомнить молодость и DAT FEEL времён УМК-80 и Корвет-06Ц.
Питание от 5В (вход снизу справа и там же виден преобразователь 5 в 12), -5 из микросхемки на 8 ног в нижнем левом углу.
Кварц где-то проебан из панельки. Снизу слева - вход для платки с stc8 которая подключает читает-пишет ОЗУ которое работает как ПЗУ.
MAX7128S в PLCC84 - клей для всего этого и декодер адресов.
Сверху типа системная шина для подключения периферии.
Грубые схемотехнические просчеты отправили ее на свалку и переделку.
Неужели это так сложно найти и собрать в нынешнее время то?
> Неужели это так сложно найти и собрать в нынешнее время то?
Таки да. Потому как регулярно оказывается, что КР1810ГФ84 есть только в одном магазине, том самом где нет КР1810ВН59. И оба с физлицами не работают.
Кокая няша
А некоторые напрягли свою клоаку и собрали маленькую каллекцию которая далеко не в 8 центов обошлась... На бумажке написано ПЛИСАНАМ
ВМ85 в верхнем правом углу. 589ИК03 нет (есть, на работке осталась, по фотке с полным комплектом деанон будет).
Зачем старье типа ВМ80А?
Народ на 589 серии (интеловская 3000) собирал аппаратный эмулятор i8080 который гнался на 10 МГц что ли (те раз в 5 быстрее оригинала). Сиди, собирай процессор на 589 серии. У них полное описание дается - и схема и прошивки и как работает..
На фоне так и недособранный ЮТ-88 какой-то модификации на 580ВМ80А.
Кому интересно отвериложить все это? Да, уйти от физических микросхем и перенести их в ПЛИС как есть, вместе с двунаправленными выводами (знаю что их нет в ПЛИС) так что бы взял любую CPLD и зашил туда любую микросхемку (естественно если она влезет по объему))
>КР1810ГФ84
Так это для ВМ86.
А так у меня на работе много 8284, среди хлама который недовыкинули. И КР580 много разных.
>И оба с физлицами не работают.
У anion.ru есть КР1834ГФ84А, КМОП версия этого, если я правильно понял.
>вместе с двунаправленными выводами (знаю что их нет в ПЛИС)
Есть. Только на ногах, а не внутри. Так что если не очень много, то снаружи можно ноги соединить для такого.
>Ему, всё-таки, проще просто фапать и не выёбывааться: https://github.com/dekuNukem/FAP80 С аутентичной обвязкой тех времён есть смысл связываться только если хочется вспомнить
Нет. Упоминалась минимальная система, ОЗУ+ПЗУ и один порт ногами дрыгать. Ни таймеров ни прерываний не требуется. Так что хватит гф24, ла3, вв55 или регистр, ну и сами памяти. Не упростит в таком случае CPLD ничего.
А ещё проще вм85 взять, тогда отпадает питание и гф24, бонусом получается немного прерываний.
>Только на ногах, а не внутри.
То что на ногах есть - знаю, это не новость. А вот то что внутри нет - пичалька. Приходится всякие wishbone/avalon/axi/.../ шин изобретать что бы внутри эмулировать общую шину, а так хочется без всяких переходников/оберток/прочего соединять модули между собой как на реальной плате через те же 245 буферы.
https://github.com/1801BM1/vm80a/blob/master/org/rtl/vm80a.v
Очень тихо ФАПаю на это. На мой взгляд самая адекватная моделька где НЕ выкинули "бесполезные" выводы типа wait rdy hold hlda которых нет в "эмуляторе" Радио-86 РК и подобных. Клоака люто полыхает от этой модели - в няшечную FPGA EPF10K10 в PLCC84 не влезает, а в CPLD EPM1270 влетает со свистом.
Может есть отвериложенные модельки ВМ86 ВМ88 и подобных процессоров? Z80 не в счет - их клоакой хуй версий.
Весь плис это душное сидение в моделсиме. Даже реализовать из рабочего ничего нельзя, все это - какие-то кубики, части одного целого, а все целое - проект на вечность времени. Веб-программирование и то интереснее, там хоть сразу получается что-то рабочее. Оправдывайтесь, говноеды.
>>18938
>Ты где? Народ уже соскучился, нашел и предложил варианты, а ты молчишь..
Сорямба, сейчас нет возможности отвечать каждый день.
А я смотрю тема животрепещущая.
>>18762
Ну ты чего подорвался на ровном месте?
Как уже говорил, хочу использовать их в своих ебаподелках, а они хоть и ёба, но всё же должны выполнять какую-то полезную функцию, а не быть самими для себя. Дроч ради дроча это не моё. Я понимаю, некоторые угарают по восстановлению ретро копуктеров, времяпрепровождение не хуже других, но это не мой случай. Может быть когда-нибудь потом.
В общем я понял, что со своими микросхемками я соснул. Технологии с тех пор шагнули слишком далеко, чтобы пытаться что-то делать на этом старье.
А погромматор у меня, кстати, есть, Тритон v5.3т. И лампа есть от стиралки.
>>18773
>Это pdp-11, первая сишечка для них и делалась.
Где бы её ещё найти...
>>18753
Не совсем понял, ну пока и не срочно, потом может повнимательнее посмотрю.
>>18968
Что делает? Зачем плис?
>>19063
> Приходится всякие wishbone/avalon/axi/.../ шин изобретать
Чёт ты махнул. Достаточно самого простого арбитра шины.
>Может есть отвериложенные модельки ВМ86 ВМ88 и подобных процессоров?
А в чём сложность? Была бы только исчерпывающая документация.
Ещё тут по сусекам поскрёб, кой чего интересного нашёл. Позже покажу.
>>18938
>Ты где? Народ уже соскучился, нашел и предложил варианты, а ты молчишь..
Сорямба, сейчас нет возможности отвечать каждый день.
А я смотрю тема животрепещущая.
>>18762
Ну ты чего подорвался на ровном месте?
Как уже говорил, хочу использовать их в своих ебаподелках, а они хоть и ёба, но всё же должны выполнять какую-то полезную функцию, а не быть самими для себя. Дроч ради дроча это не моё. Я понимаю, некоторые угарают по восстановлению ретро копуктеров, времяпрепровождение не хуже других, но это не мой случай. Может быть когда-нибудь потом.
В общем я понял, что со своими микросхемками я соснул. Технологии с тех пор шагнули слишком далеко, чтобы пытаться что-то делать на этом старье.
А погромматор у меня, кстати, есть, Тритон v5.3т. И лампа есть от стиралки.
>>18773
>Это pdp-11, первая сишечка для них и делалась.
Где бы её ещё найти...
>>18753
Не совсем понял, ну пока и не срочно, потом может повнимательнее посмотрю.
>>18968
Что делает? Зачем плис?
>>19063
> Приходится всякие wishbone/avalon/axi/.../ шин изобретать
Чёт ты махнул. Достаточно самого простого арбитра шины.
>Может есть отвериложенные модельки ВМ86 ВМ88 и подобных процессоров?
А в чём сложность? Была бы только исчерпывающая документация.
Ещё тут по сусекам поскрёб, кой чего интересного нашёл. Позже покажу.
>потребуется обработать сигналов штук 100 у которых частоты под 50 МГц
Это какой usecase? Откуда сигналы? Какая логика их обработки?
В оборонке работаешь?
Ты бы хоть строчки нумеровал.
>загорается только при нажатии ресет
Потому что при ресете твой cnt как раз равен нулю, и срабатывает условие в нижней строчке.
>Диод не горит
Потому что когда твой cnt инкриминируется по кругу, в нулевом состоянии он прибывает всего 1/10000000 от всего времени и ты тупо не видишь такие короткие подмигивания.
И чё тя не устраивает? Пишешь рандомизированный тестбенч, прогоняешь через него модуль, тест проходит успешно, получаешь свою порцию дофамина вместе с чувством превосходства над перекладывателями JSONов.
Если не нравится что предложил этот анон, могу предложить свое недавнее. Для видео из КМОП матрицы каждый кадр получать гистограмму, сделать гамма-коррекцию, усиление (умножение) со смещением (для вытягивания контраста), сделать линейный фильтр 5х5 и медианный 3х3 ну и ещё биннинг придется сделать. Автоматическая регулировка длительности экспозиции и установка значений для вытягивания контраста по полученной гистограмме уже в софт-процессоре.
Как будешь делать без ПЛИС? Можно конечно ДСП взять, но и с ними не так просто и я не умею их готовить
Ты ещё про дебайер забыл. Самая вычислительно сложная часть, если её по уму делать, с адаптивной интерполяцией по контурам изображения.
У меня монохромная матрица, мне проще. Цветные фигня для большинства задач, пишу как любитель звёзды фотографировать.
Из того что не написал, пришлось сделать ресайзинг. Делалось для замены камеры на другой матрице и нужно было со старыми объективами обеспечить прежние поля зрения. Я бы выбрал матрицу с другим размером пикселя чтобы так не извращаться, но начальник хотел заимствовать все из другого отдела, только прошивку немного скорректировать. Только не получилось, требовались слишком разные форматы на выходе. Да и схему пришлось переделать с импортозамещением всей мелочевки.
>usecase
Говори по-русски, прошмандовка ты пиндосовская.
100 Гбитый коммутатор. Как тебе такой юзкейс?
Виваду спиздил уже у кровавых пиндосов, патриот? Ты б лучше начал искоренение пиндосского влияния со своих 100гбитных коммутаторов. Ой, не можешь? ) А чё так? )))
>100 Гбитый коммутатор
Понятно. Но это все твоя работа, а не хобби. Получается что в качестве хобби на FPGA хуй что сделаешь.
А нахуя для этого FPGA? Основа любого цифрового радио - это OCHE BYSTRY ADC, прикрутить к нему какой-нибудь мк с USB 3.0 (или даже USB2.0, если скорости хватит) и всё остальное делать на пекарне.
Уважаемый.. Почему счет еще не выставили?
Кое-как выбил такой невъебенный бюджет в пару баксов из тупых невменяемых безмозглых блядей в бухгалтерии которые трахают мозги за каждую ебучую копейку, а ты.. подводишь.
>>19098
>Что делает? Зачем плис?
>>18968
>MAX7128S в PLCC84 - клей для всего этого и декодер адресов.
>>19098
>Ещё тут по сусекам поскрёб, кой чего интересного нашёл. Позже покажу.
ПокажЫ! Вот тебе реально впадлу найти пару микросхем для запуска классики жанра под названием 580ВМ80А?
Запустить не проблема. О - Отлад.ОЧКА этой системы как будет делаться? На этот моменте завис. Мне видится как отдельный мк который может переводить систему в сброс/захват шин, писать-читать ОЗУ, ПЗУ в системе нинужон как ебаная сова.. Перечитай несколько раз и не вздумай ебашить одну FPGA без CPLD рядом для отладки. Для отладки. В живой системе - можно, в отладочной - нет.
>>19137
Лол. Тоже так соснул когда пробовал писать часы в попытке вывести секунды. Ебнул еще триггер - заработало.
>Всему своё время.
Ага. Время нелепой хуйне — всегда "сейчас". Время хорошим вещам — всегда "скоро". И с ходом времени, что характерно, это не меняется.
>Мне видится как отдельный мк который может переводить систему в сброс/захват шин, писать-читать ОЗУ,
>ПЗУ в системе нинужон как ебаная сова..
Не обязателен микроконтроллер для такого. Один раз пишешь бутлоадер в ПЗУ и далее им пользуешься без навешивания лишнего. Да, конечно адреса немного меняются, но это мелочи.
>какой-нибудь мк с USB 3.0 (или даже USB2.0,
Это cypress infineon fx2lp и fx3, наверное единственный вариант для такого. Или ты знаешь другие микроконтроллеры которые нормально подходят для такого? Только когда начнёшь реально что-то на них делать, то поймёшь что очень многое так просто к ним напрямую не подключить, нужно хотя бы мелкую плисину.
Это даже если ты уверен что нет задачи сделать автономный приемник и твой комп потянет все необходимое (если задача несколько больше чем послушать ментов или дедов).
Gotcha! Это один из жестких моих просчетов на первой версии.
Про Sprinter и подобные не надо.. Там Z80 со своими особенностями.
Когда нихуя не знаешь и облучение идет методом тыка - переконфигурация ПЛИС начисто валит всю систему когда процессор охуеет от непойми чего на входе из-за наводок Ставь pullup-pulldown? хуй там. Ну задашь NOPы - счетчик команд улетит в бесконечность, когда FPGA прогрущится - хер пойми с какого адреса будет читаться команда/данные.. С жалким подобием контроллЕра на CPLD - можно повесить триггер на захват шин или дернуть вейт - переконфигурить фпга и продолжить выполнение программы далее.
По поводу бутлоадера - не катит. На огрызках найденных плат весь код начинается с 0 адреса и у одной потом идет ремап на 0xF000. Как полезная побочка - внешний МК никак не дает о себе знать основной системе и не занимает никаких ресурсов (типа того же ПЗУ) и например компорта (это каждый раз дрочить-перетыкать кабель если в реальной программе используется компорт и он дк для общения с бутлоадером? ну нахер как и допаивать еще одну вв51а+ви53.)
>>19368
>Или ты знаешь другие микроконтроллеры которые нормально подходят для такого?
Органическими мозгами поделишься как всю эту парашу погроммировать особенно под винду (и драйвера под все это) для проституток?
Выбирай: FX3, FT601Q от FTDI, CH569W от WCH.
Фотки нет - платка с Али с аррия5 и 2 портами 10G + сетевая карточка в комп и DAC кабели. 2 шланга и считай 20 гигабит можно гнать.
PCI-Express (тред ниже) - тестовая утилитка на говнокомпе на аррия5 показывала около 1.2/1.8 гига в секунду что ли. Чет некогда им заниматься.
>>На огрызках найденных плат
>При чем тут это? Обсуждали вроде как не огрызки.
Ответь про компорт... Когда он один в системе и надо подключить матричный принтер, что-то по модбасу или еще что работающее по компорту. Как в таком случае через бутлоадер отлаживаться, а не тупо залил код и все? При чем без допайки дополнительного компорта.
>>19373
>Ты накупил говна и не знаешь что с ним делать?
Выдает эффективного менеджера. Про тесты ни разу не слышал или работаем по принципу хуя-хуяк и в продакшен? Особенно когда на тестах всплывают неописанные в даташитах/еррате косяки, несовместимость/отсутствие драйверов/подписей и подобное что нельзя учесть, а в ответ тебе - сам выбирал и жри это говно лишая выбора наиболее подходящего под конкретные условия решения?
А так да. Лежат, жрать не просят. Если интересный проект будет или руководство для проституток - можно попробовать на вкус и посравнивать. Меня останавливает именно говнокодинг под винду и драйвера когда надо пройти кучу кругов ада, ебаные кольца защиты и прочую залупу что бы просто взять и записать-прочитать ебаный байт через PCI шину по адресу устройства которое ему выдалось.. Банальное и простое действие которое хер сделаешь без огроменной анальной боли на пустом месте.
>>FT601Q
>Не стоит это трогать, оно так себе.
Что с ним не так?
Чем лучше/хуже те же 2232H и 4232H? У них есть синхронное фифо и можно мегабайт 30 выжать. в свете эмулятора у них интересен режим эмуляции мастера 8051.
>>CH569W
>Этот, судя по описанию, уже многое может. Не знал.
Осторожно.. Говнецом попахивает. Даташита НЕТ! Есть огрызок где практически ничего не написано. Например покажи описание двух ДМА контроллеров внутри или сердес - только отсылка в лучшем случае - смотрите примеры на гитхабе.
Можно попробовать отсюда начать если будет что-то полезное:
https://hydrabus.com/hydrausb3-v1-0-specifications
Ты странный, высрал кучу малосвязного текста невпопад.
> ASIC'и или ПЛИСины
Оно.
>>19366
>Время хорошим вещам — всегда "скоро"
Потому-что хорошие вещи быстро не делаются.
>И с ходом времени, что характерно, это не меняется.
Ну в рамках импортозамещения много что появилось, даже перечислять не буду, сам найдёшь если захочешь.
Скажу что уже сейчас есть 100Мб коммутаторы с 1Гб оптикой для связи между собой. И это то что лично видел, может есть ещё что-то.
Также на hh видел вакансию на плисовода в контору которая как раз занимается высокоскоростными коммутаторами, сейчас вакансия уже закрыта, видимо нашли.
>Ну в рамках импортозамещения много что появилось
"Импортозамещено 99% компонентов" где 99% — это всякая обвязка и рассыпуха, а 1% — центральный чип, который не будет повторён никогда. Зато можно отчитаться с красивыми цифрами, создающими впечатление, что вот-вот всё импортозаместим на 100%, если не вдаваться в подробности
>вакансию на плисовода в контору которая как раз занимается высокоскоростными коммутаторами
На виртексах, которые удалось скрысить у пиндосов (по "параллельному импорту").
Error (12014): Net "ledr[1]", which fans out to "ledr[1]", cannot be assigned more than one value
Error (12015): Net is fed by "GND"
Error (12015): Net is fed by "sr_latch:sr_latch|p"
>cannot be assigned more than one value
Оно тебе пишет человеческим языком, только не русским.
А именно ты более одного раза присваиваешь. Пятую строку убери.
А что означает вот этот синтаксис с точкой .s(key[0]) и в чем его отличие от s(key[0])?
>что означает вот этот синтаксис с точкой .s(key[0])
Подключение проводов к твоему модулю по имени.
s - название входа модуля,
key - имя провода который подключается к входу s.
>чем его отличие от s(key[0])
Тем что так компилятор выдаст ошибку.
посоны, хочу вкатиться в ПЛИС, на раёне можно урвать примерно за одинаковую цену дев плату со Spartan 6 или со Stratix IV
стратикс новее, в несколько раз мощнее спартана, и круче в плане поддержки периферии, но меня намного больше волнует наличие софта под Linux и отсутствие всяких анальных огороженностей.
что из этих двух ПЛИСов удобнее в этом плане?
если это важно, модели плат - Xilinx Spartan 6 SP605 и Altera Stratix IV EP4SGX230
нужна именно PCI-express плата, юсб затычку не хочу
Как этим пользоваться? Где посмотреть, например, на каком пине клок, а где кнопки s1 и s2?
Эта ссыль, наверно, более лучще подойдет https://dl.sipeed.com/shareURL/TANG/Nano%209K/2_Schematic
>всякая обвязка и рассыпуха
По-твоему не нужна?
>центральный чип
Есть и чипы и процессоры и микроконтроллеры. Производства своего пока нет, но опять таки, это временно.
>На виртексах, которые удалось скрысить у пиндосов (по "параллельному импорту")
Пока да. Пока своих плисин нет можно софт отрабатывать, а там глядишь и элементная база подтянется.
>Есть и чипы и процессоры и микроконтроллеры. Производства своего пока нет
Лол.
>но опять таки, это временно
Тебе сколько лет, пять? Мне давно уже не пять лет, увы.
кароч если очень хочется интел, то нужно искать дев кит с одним из этих чипов
да хз, я чото думал, что c FPGA так же, как с ардуиной - скачал бесплатное иде, хуяк-хуяк и мигаешь лампочками, а тут пиздецы какие-то с downloads по 25 гигабайт и анальными регистрациями.
с Xilinx всё так же плохо?
> да хз, я чото думал, что c FPGA так же, как с ардуиной
Здеся вам не тута. Там всё анально огорожено, единственное исключение: https://github.com/YosysHQ/nextpnr
> с Xilinx всё так же плохо?
Там ещё хуже: https://docs.xilinx.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices
Плюс
> Xilinx Unified Installer 2022.2 SFD (TAR/GZIP - 89.4 GB)
чем они лучше/хуже по сравнению с Xilinx/Altera?
И не то что в игрушки не играешь, так ещё даже кинцо спираченное смотришь?
С опенсурсными сапрами все очень плохо, нечего тут удивляться. Даже чертить как следует не в чем. Фрикад это максимум, для любителей как я оно сойдёт, но оно же безнадежно сольет компасу например. И с остальными сапрами аналогично.
>кинцо
Почти никогда не стоит потраченного времени.
>игрушки
У Габена тупо удобнее. Не просто исталл в один клик, но и весь пердолинг с wine/proton выполняется автоматически без вмешательства пользователя.
погуглив ещё немного, я узнал, что огромное количество логических элементов не нужно - для реализации софтового процессора типа https://github.com/f32c/f32c достаточно и спартана 6 или циклона 4.
гуглю дальше.
думаю, остановлюсь на циклоне 4 или 5.
>>20230
бамп вопросу
>>19364
>Вот тебе реально впадлу найти пару микросхем для запуска классики жанра под названием 580ВМ80А?
Моет быть, когда-нибудь, но это не точно. Дел и без этого хватает.
>ПокажЫ!
Немного разобрал своё барахлишко, осталась мелкая рассыпуха и импортная база.
В общем вот чем располагаю на данный момент.
>>20474
>>18765
>Уважаемый менеджер, примите заказ:
>CYRS1645KV18-250GCMB 144-Mbit QDR® II+ SRAM - нужно 20 шт
>MT29F128G08AMCABH2-10ITZ:A (Micron NAND Flash SLC 128G 16GX8) - 32 шт
И где это можно купить?
>8A34041 (8-Channel Universal Frequency Translator)
Для генерации частоты чтоль? Не проще на рассыпухе собрать?
>AD9213 (radio frequency (RF) analog-to-digital converter (ADC)) - 13 шт
>ZU48DR-G1517 (Xilinx ZYNQ UltraScale+ RFSoC) - 10 шт
Это ещё зачем?
Да вы батенька мажор... Есть же игрушки из 580 серии.
Например 580ВИ53 - таймер и рядом 580ВВ51А - компорт можно собрать (и написать бутлоадер как завещал анон >>19367 )
589ИР12 - порт ввода ИЛИ вывода (только одно направление навсегда) или его в мусор (ладно, к 580ВТ57 приделаешь и получишь 4х анальный ДМА) и взять 580ВВ55А - получишь целых 3 порта по 8 бит.
537РУ10 - внезапно ОЗУ на целых 2 килообайта!
Если любишь аборты и прерывания - 1810ВН59А.
Во всякие хххРЕхх (программируемые ПЗУ) не вникал - вряд ли есть чем их погроммировать и могут быть нестандартные напряжения питания. Остальные микросхемки тоже позже посмотрю - вдруг что вкусное есть.
Системного контроллера не увидел как и генератора.
Не собирал, один из вариантов замены на рассыпчатой логике здесь -> http://rw6hrm.qrz.ru/8080.htm
По поводу поста >>18765
> И где это можно купить?
Ты же менеджер по продажам, сам должен найти где купить и главное - менее чем 8 центов за чип да еще и с учетом доставки!!!
>>8A34041 (8-Channel Universal Frequency Translator)
>Для генерации частоты чтоль? Не проще на рассыпухе собрать?
Почитал бы что за ядреная херня. Вряд ли на рассыпухе такое соберешь если это вообще возможно.
>>AD9213 (radio frequency (RF) analog-to-digital converter (ADC)) - 13 шт
>>ZU48DR-G1517 (Xilinx ZYNQ UltraScale+ RFSoC) - 10 шт
>Это ещё зачем?
BMS на литиевую батарейку делать. Процессы там медленные и нужны медленные АЦП что бы записывать и смотреть как идет заряд-разряд батареи. Судя по параметрам этих АЦП их с огромным скрипом и натягом должно хватить на жалкое подобие детекторного приемника с околонулевой селективностью.
И вообще - какая разница менеджеру куда и зачем такие детальки? Его задача найти где купить, накрутить цену и продать. Когда счет выставишь то? Долго еще ждать? Начальство уже все злое ходит из-за срыва сроков поставок..
> А что за клоны хилых есть у китайцев
Вам не дадут. Это для солидных людей с юридическим еблом, а не для гаражных ниггеров: https://electronix.ru/forum/index.php?controller=topic&id=165881
да, они не очень огорожены - раздают бесплатные лицензии для iCE40
https://www.latticesemi.com/Products/DesignSoftwareAndIP/FPGAandLDS/Radiant
если есть какие-то неочевидные нюансы - напишите, пожалуйста.
https://digilent.com/reference/_media/reference/programmable-logic/cmod-a7/cmod_a7_sch.pdf
Смотри лучше. 3 страница нижний левый угол. Читаем название выводов и идем на правую часть 1й страницы. Сопоставляем.
На мутный и общий вопрос мутный и общий ответ в Альтеровской нотации.
> получение
> выдача данных
Через блоки вводы-вывода. Можно параллельно или последовательно в виде униполярных или дифференциальных сигналов, можно через блоки SERDES (только в последовательном виде).
>хранение
На триггерах и/или в блоках памяти (MLAB, EAB, M4K, M9K, M144K.. которые работают как двухпортовая память или как FIFO). Можно хранить и в триггерах блоков ввода-вывода - например при реализации DDR памяти и оттуда читать-писать.
> коммутирование
Внутренние матрицы межсоединений/коммутации. Надо смотреть описание LAB и как они между собой соединяются - это если на уровне кристалла и напрямую недоступно. На уровне описания аппаратуры в большинстве случаев - мультиплексор. Самый обычный мультиплексор (да и то не всегда нужен если например выход регистра результата сразу выдавать на внешние контакты)
https://marsohod.org/11-blog/265-fpga
Я имел в виду, как все это делается на той стороне, с которой работает инженер. Как инженер загружает данные в ПЛИС, как эти данные там хранятся, как они выгружаются обратно. Типа как база данных и бизнес-логика для обработки данных на бэкэнде джава.
Ну вот например, можно загрузить данные для обработки по uart или как-то еще? Хранить их в регистрах, массивах или писать какой-то буффер типа очереди или стека? Вот это меня интересует
Берёшь ip ядро уарта, или делаешь свой. Пользуешься.
У тебя странные рассуждения. Там ведь по сути схема создаётся, пусть из одинаковых ячеек. И рассуждать нужно применительно к схеме, а не языку программирования. Это если про синтезируемый код конечно.
>массивах
Для начала ответь на вопрос о том как это будет выглядеть внутри плисину, что будет задействовано и в каком количестве. И про остальные буферы то же самое. Как начнёшь понимать вот это, то и твой вопрос сам отпадет.
> можно загрузить данные для обработки по uart или как-то еще?
Можно и по uart. Из распространённых протоколов есть ещё Ethernet и по желанию стек tcp/ip.
>Хранить их в регистрах, массивах или писать какой-то буффер типа очереди или стека?
Можно и в регистрах, если массив небольшой. А можно и в ОЗУ - если большой. Очередь или стек, если опять таки большие, делаются на базе ОЗУ, а что именно из этого это уже по ситуации, что удобнее.
Могу ли я поставить принудительно лицензированную виваду и посмотреть там RTL того, что понапишу на верилоге? Увижу ли я в этой RTL, что dsp48e1 используется? Есть ли у неё встроенный симулятор как у ISE, и что он симулирует, только поведение модуля, описанного верилогом, или прям полностью то что есть в ПЛИС?
>реквестирую способы симуляции для него
В коде пишешь m <= a * b; и симулируешь. В редакторе схем смотришь, что оно синтезируется в DSP48.
>Могу ли я поставить принудительно лицензированную виваду и посмотреть там RTL того, что понапишу на верилоге? Увижу ли я в этой RTL, что dsp48e1 используется? Есть ли у неё встроенный симулятор как у ISE, и что он симулирует, только поведение модуля, описанного верилогом, или прям полностью то что есть в ПЛИС?
Да, да, да, да, ни то ни другое, а собственную модель, которая по задумке должна совпадать и с поведением кода, и с поведением блока в плис. Если то, что ты написал, невозможно синтезировать в DSP48 (например, требует больше бит, чем есть), синтезатор не будет пытаться изменить поведение кода, чтобы впихнуть его в DSP48, а просто сделает простыню из LUTов. В таком случае надо открывать даташит/гайдлайны и искать, какие части переписать.
О, класс. Спасибо!
Потому что у тебя описан триггер с динамическим управлением, т.е. оно должно срабатывать при изменении clk с 0 на 1. А такое изменение у тебя в тестбенче только в одном месте - 11 и 12 строки, но там у тебя j=k=1, а значит оно должно проинвертировать свое состояние там. Только начальное значение у тебя неопределенно, т.е. 1'bx, соответственно инверсия также даёт 2'bx. Измени тестбенч, можешь ещё задать начальное состояние триггера.
Также jk триггеров со статическим управлением (то есть как предусматривает твой тестбенч) не бывает толком, потому что при j=k=1 оно превратиться в генератор. Конечно есть варианты, но пока не стоит рассматривать их.
Это вот так делается, чтобы был переход clk с 0 на 1? Все равно в q находится x.
Задержку добавь после clk=0 везде.
Error (10734): Verilog HDL error at qqq.v(17): i is not a constant
module cgncgh(output reg [31:0]REG, input [1:0]L, input [7:0]D, input C);
reg [7:0]REGA[3:0];
always @(posedge C)
case(L)
2'd0: REGA[0] <= D;
2'd1: REGA[1] <= D;
2'd2: REGA[2] <= D;
2'd3: REGA[3] <= D;
endcase
always @(ж)
begin
integer i;
for(i=0; i<=3; i=i+1)
REG[8i+7:8i] = REGA[7:0];
end
endmodule
Можно было бы подумать, что с массивами так не работает, но нет, такой код вполне компилится:
И в чём между ними принципиальная разница?
module cgncgh(output reg [31:0]REG, input [1:0]L, input [7:0]D, input C);
reg [7:0]REGA[3:0];
reg [7:0]REGB[3:0];
always @(posedge C)
begin
case(L)
2'd0: REGA[0] <= D;
2'd1: REGA[1] <= D;
2'd2: REGA[2] <= D;
2'd3: REGA[3] <= D;
endcase
end
always @(✶)
begin
integer i, j;
for(j=0; j<=3; j=j+1)
for(i=0; i<=7; i=i+1)
REGB[j] = REGA[j][7-i];
end
always @(✶) REG = {REGB[3], REGB[2], REGB[1], REGB[0]};
endmodule
Можно было бы подумать, что с массивами так не работает, но нет, такой код вполне компилится:
И в чём между ними принципиальная разница?
module cgncgh(output reg [31:0]REG, input [1:0]L, input [7:0]D, input C);
reg [7:0]REGA[3:0];
reg [7:0]REGB[3:0];
always @(posedge C)
begin
case(L)
2'd0: REGA[0] <= D;
2'd1: REGA[1] <= D;
2'd2: REGA[2] <= D;
2'd3: REGA[3] <= D;
endcase
end
always @(✶)
begin
integer i, j;
for(j=0; j<=3; j=j+1)
for(i=0; i<=7; i=i+1)
REGB[j] = REGA[j][7-i];
end
always @(✶) REG = {REGB[3], REGB[2], REGB[1], REGB[0]};
endmodule
Верилог не может выбирать подмассивы с границами, которые заданы переменными. Даже если код написан так, что ширина подмассива всегда постоянна.
Понять и простить.
То, что ты хочешь, можно сделать при помощи genvar/generate — это тоже переменная, но все её значения обсчитываются только при синтезе схемы, и для каждого варианта генерируется собственный блок.
genvar group_idx;
generate
for (group_idx=0; group_idx<4; group_idx=group_idx+1) begin : connecting_subarray_groups
always @(×) EG[8×group_idx +: 8] = REGA[0 +: 8];
end
endgenerate
>Верилог не может выбирать подмассивы с границами, которые заданы переменными. Даже если код написан так, что ширина подмассива всегда постоянна.
Всё равно не понял.
Здесь >>21161
>REG[8✶i+7:8✶i] = REGA[7:0];
и здесь >>21164
>REGB[j] = REGA[j][7-i];
используется переменная в индексе массивов, но один код компилится, другой почему-то нет.
Тут не происходит выбора подмассива с некоторой вычисляемой (и поэтому формально неизвестной) шириной. Либо выбор элемента из массива, либо выбор одного бита.
И КСТАТИ НЕ ОРИ КОГДА ДАЁШЬ НАЗВАНИЯ ЦЕПЯМ И РЕГИСТРАМ, ЭТО СМОТРИТСЯ СТРАННО. ОРУТ ОБЫЧНО КОГДА НАЗЫВАЮТ ПАРАМЕТРЫ МОДУЛЯ
>Тут не происходит выбора подмассива с некоторой вычисляемой (и поэтому формально неизвестной) шириной. Либо выбор элемента из массива, либо выбор одного бита.
Как-то ты витиевато пишешь.
В общем я разобрался, вот так работает
for(i=0; i<=31; i=i+1)
REG = REGA[i/8][i%8];
Недопустимы переменные в левой части присвоения.
Во-первых, не работает. У тебя всё присваивается в младший бит.
Во-вторых, это какой-то пиздец и клоунада, а не код. Попробуй так штоле:
for(i=0; i<4; i=i+1)
for(j=0; j<8; j=j+1)
REG[i*8+j] = REGA[j];
Так, секунду. Мамка сожрала разметку)))
for(i=0; i<4; i=i+1)
for(j=0; j<8; j=j+1)
REG[i*8+j] = REGA[i][j];
>Т.е. REGA[xy] допустимо, а REGA[xy:x*y+1] уже нет?
Оу уж эта мамка
Т.е. REGA[x✶y] допустимо, а REGA[x✶y:x✶y+1] уже нет?
Или даже может так
REGA[x:x+1] - недопустимо?
Ну вот, ты понял. А всего-то надо было чуть-чуть вчитаться, если сходу не дошло.
>Ну хорошо, а чем тебе мой >>21231 вариант не угодил?
Тем, что это нечитаемо и неподдерживаемо. Если через месяц тебе надо будет что-нибудь там подправить, то вспомнить, что ты имел в виду, потребует больше времени, чем нужно было, чтобы это придумать и написать.
В икарусе это поддерживается. Тут надо иметь в виду, что в разных инструментах одна и та же конструкция может поддерживаться, а может и нет.
https://aliexpress.ru/item/1005003530412307.html?sku_id=12000029522416357&spm=a2g2w.productlist.search_results.10.5b324aa6LGogUI
Ищи с циклоном 4, первый циклон совсем уж днище. А периферия тут обычная, за такие деньги богаче не найдёшь.
> EP1C3T144
Как там у вас, в 2003?
> Хочу себе плату с переключателями, индикаторами и периферией.
Накинь тысчёнку другую и«Get a real computer!»:
https://aliexpress.ru/item/4000837637863.html
https://aliexpress.ru/item/1005004653308809.html
Ну или возьми Tang Nano 9K, вдвое дешевле и для хлебницы :
https://www.aliexpress.ru/item/1005003803994525.html
> Для этой штуки схема есть?
А хуйЪ его знает. На их сайте только для варианта с шестым спартаном: http://piswords.com/pix16.html
P.S. На вот эту плату https://aliexpress.ru/item/1005002986003759.html точно есть: https://github.com/jvitkauskas/Altera-Cyclone-IV-board-V3.0
А в ввиваде lfsr8 нормально симулируется, случайные числа генерируются.
Вот что у меня в пин планнере.
Открой implemented design→schematic и проверь, что схема соответствует ожидаемому.
1. Не факт что присвоение в шапке модуля синтезируемо.
2. Куда у тебя подключена кнопка, к clk чтоль?
Ресет возник из ниоткуда, куда он выведен? Он наводки не ловит? Попробуй пару диодов отсоединить от регистра и подключить к clk и reset, чтобы смотреть, что на них происходит.
1. Убедись что кнопка в отжатом состоянии даёт 0, очень может быть что наоборот.
2. По ресету у тебя регистр обнуляется, после этого работать уже не будет, при нулях сумма по модулю даёт 0.
3. Попробуй присвоение в шапке убрать и заменить на
initial lfsr <= 8'd255;
4. Кнопка даёт дребезг, но сейчас это значение не имеет.
1) ПЛИС можно программировать, вроде, без написания кода собирая цифровое устройство визуально - соединяя отдельные логические элементы между собой? Потом они "прожигаются" уже в самой ПЛИС и по итогу получается нечто похожее на изготовленню на заводе микросхему? В смысле получается устройство как обычные микросхемы двоичной логики - счетчики всякие, дешифраторы и прочее.
2) Так как ПЛИС это не микропроцессор то стабильность работы у нее будет выше? Ведь вероятность глюка в жесткой логике куда ниже - нечему зависнуть в отличие от целого микроконтроллера с постоянной и оперативной памятью, АЛУ с его вычислениями и прочим. Это похоже на зависания контроллеров китайских для елочных гирлянд и дубовой стабильной работе простых мигалок для тех же гирялнд по схемах из нескольких деталей.
>А всего-то надо было чуть-чуть вчитаться, если сходу не дошло.
Просто ты витиевато пишешь, сказал бы сразу
>в диапазонах недопустимо
>неподдерживаемо
Кактус вполне синтезит.
>потребует больше времени
Для этого не скупиться на жирные комментарии.
Слушай, раз такое дело, может ещё подскажешь
Чем отличаются записи
-4'd5 от -4'sd5
Я отличий не заметил.
И ещё, решил полистать стандарт на верилог и не нашёл где указывается разрядность переменных типа integer и time. Я не думаю, что это оставили на усмотрение разработчикам компиляторов, во всех книжках пишут, что integer это 32 разряда.
> ПЛИС можно программировать, вроде, без написания кода собирая цифровое устройство визуально
Да. Только зачем? Что-то стоящее таким образом не соберёшь - устанешь. Для этого придумали автоматизацию, называется HDL, оно же языки проектирования аппаратуры. Грубо говоря, если тебе нужно нарисовать счётчик на 64 разряда, то ты бы все 64 разряда рисовал руками, на HDL достаточно создать один разряд и поставить его в цикл на 64 раза.
>Потом они "прожигаются" уже в самой ПЛИС и по итогу получается нечто похожее на изготовленню на заводе микросхему? В смысле получается устройство как обычные микросхемы двоичной логики - счетчики всякие, дешифраторы и прочее.
До переброса питания. ПЛИС типа FPGA свою прошивку хранит во внешней флешке, и по подаче питания начинает процесс инициализации, переписывает прошивку из флешки себе во внутреннюю энергоЗависимую память.
>>21474
>Так как ПЛИС это не микропроцессор то стабильность работы у нее будет выше?
Не факт.
В старом железе, где процессор и ОЗУ были связаны между собой шиной проходящей по печатной плате, на эту шину можно было легко навести помеху от чего программа сбоила. Там да, стабильность была низкая.
Микроконтроллеры это тоже схема из
>счетчики всякие, дешифраторы и прочее
вместе с ОЗУ выполненные интегрально и навести туда помеху уже не так просто.
Так что скорее всего на ровне.
Копай в сторону SystemC
О нём давно говорят, но что-то как средство синтеза, как и прочее на эту тему, пока не взлетает.
> Да. Только зачем? Что-то стоящее таким образом не соберёшь - устанешь. Для этого придумали автоматизацию, называется HDL, оно же языки проектирования аппаратуры. Грубо говоря, если тебе нужно нарисовать счётчик на 64 разряда, то ты бы все 64 разряда рисовал руками, на HDL достаточно создать один разряд и поставить его в цикл на 64 раза.
Да не умею я просто в программирование. Вот и подумал что можно было бы что-то не сильно сложное запрограммирвать визуальным соединением блоков.
> До переброса питания. ПЛИС типа FPGA свою прошивку хранит во внешней флешке, и по подаче питания начинает процесс инициализации, переписывает прошивку из флешки себе во внутреннюю энергоЗависимую память.
Хм, вот как.
> Не факт.
> В старом железе, где процессор и ОЗУ были связаны между собой шиной проходящей по печатной плате, на эту шину можно было легко навести помеху от чего программа сбоила. Там да, стабильность была низкая.
> Микроконтроллеры это тоже схема из
> вместе с ОЗУ выполненные интегрально и навести туда помеху уже не так просто.
> Так что скорее всего на ровне.
Спасибо.
>Да не умею я просто в программирование. Вот и подумал что можно было бы что-то не сильно сложное запрограммирвать визуальным соединением блоков.
тогда бери owen logic
Спасибо.
>Да не умею я просто в программирование.
Ну чё, в Квартусе есть графический редактор.
А вообще можешь начать
https://www.youtube.com/@Jack0v/playlists
>Кактус вполне синтезит.
"Поддерживаемость кода" это про другое — https://www.brcline.com/blog/5-tips-write-maintainable-code
>Для этого не скупиться на жирные комментарии.
Не стоит ходить по граблям и изобретать велосипед, написанием кода человечество занимается не первое десятилетие и более-менее разобралось, как это целесообразно делать.
>Я отличий не заметил.
Отличий нет потому что старший бит равен нулю. Знаковость определяет, как интерпретируется единица в старшем бите. Например, -3'd5 и -3'sd5 имели бы уже разные значения (-5 и +1).
Эти возможности не особо популярны потому что они пока не могут сравниться с RTL по скорости работы и ресурсоэффективности. А если инженеру скорость работы и ресурсоэффективность не важны, он справедливо первым делом выкидывает ПЛИС, ставит вместо неё процессор и пишет на Питоне, получая возможность решить 10 задач за то время, за какое на ПЛИС он решил бы одну (буквально).
>>21474
>нечему зависнуть в отличие от целого микроконтроллера
Мигалки на микроконтроллерах тоже не виснут. А в ПЛИС, как только дело дойдёт до конечных автоматов, они тоже охотно начнут виснуть. Железные проблемы в причинах зависаний играют куда меньшую роль, чем способность продумать все сочетания состояний и условий в достаточно сложных системах (или простая криворукость).
>нечему зависнуть в отличие от целого микроконтроллера
Ошибаешься. Нечему может быть только в двоичном счётчике, потому что как конечный автомат он бывает во всех возможных состояниях и соответственно выходит из них. А если взять счётчик считающий как-то особо, например выше был пример сдвигового регистра с обратной связью (М-последовательности генерит), то если регистр в нем сбросится в 0 из-за помехи или ещё какого сбоя, то из этого состояния он уже не выйдет. То же и с двоично-десятичными счётчиками может быть, в зависимости от их схемы, да наверное почти во всех более-менее сложных схемах есть возможность подзависнуть при возникновении таких явлений.
Это даже если не рассматривать внутренности плисин и другие явления.
>Эти возможности не особо популярны потому что они пока не могут сравниться с RTL по скорости работы и ресурсоэффективности.
Я конечно не в теме, но мне кажется что ты ошибаешься. Как пример - chisel, там не какой попало код на скале, а код написанный с использованием соответствующих классов. В результате это почти тот же верилог, только поверх скалы. Вот только скала существенно сложнее верилога будет. Из такого популярного на этом чизеле сделали несколько RISC-V ядер, которые как видно по ресурсам ничем не уступают верилоговским.
>В результате это почти тот же верилог, только поверх скалы
Вот именно. Chisel это не HLS, то есть не описание алгоритма, которое синтезируется в схему, а описание схемы.
> Как -3'd5 даст -5, когда пятёрка требует три разряда?
А вот так и даст: https://verilogguide.readthedocs.io/en/latest/verilog/datatype.html#number-representation
Бля, обосрался с недосыпу…
>Как -3'd5 даст -5, когда пятёрка требует три разряда? Какой смысл вообще с такой записи, для знакового бита места же нет.
Это может быть какой-нибудь дефайн, который в одном месте используется без минуса для присваивания в регистр шириной 3 бита, а в другом — с минусом вычитается из числа размером 10 бит. В любом случае, исходный вопрос был "чем отличается", а не "какой смысл".
Со временем выяснилось, что это только снижает производительность, а качество разработки достигается автоматическим тестированием.
VHDL должен быть запрещён как способ бесчеловечного обращения.
Счётчик+компаратор. По нажатию кнопки — сброс в ноль, по отпусканию — счёт до нужного значения, по достижении значения — включение светодиода и остановка счёта.
Нажание и отпускание это always @(posedge) и always @(negedge) соответственно?
Ненененене. Даже не думай. Posedge и negedge для другого (для тактирования). Почитай, что такое комбинационная логика, последовательная логика, синхронная логика. Вообще забудь, что внутри always @(posedge ...) может быть что-то кроме clk, и забудь, что существует negedge, мой тебе добрый совет. Когда поймёшь, что кроме always @(posedge clk) тебе больше ничего и не требуется, можешь на секунду вспомнить про negedge и асинхронные резеты, а потом снова забыть про них нахуй.
Нет. Сначала надо на кнопке подавить дребезг, потом выделить фронт, потом сохранить фронт как событие в триггер, и уже этим триггером инкриминировать счётчик.
https://youtu.be/PdfDkC3Jbpk
Я ж тебе сказал — забудь, что внутри always @(posedge ...) может быть что-то кроме clk. Но ты проигнорировал, и поэтому тебя ждёт расплата — то, что ты написал, не синтезируется. Добавь во второй блок always ещё один if, который будет обнулять счётчик, stop и led_state, а первый блок выкинь, чё ты.
И ещё одно правило: забудь, что внутри always @(posedge clk) могут смешиваться <= и =. Всегда используй <= и только <=. Это поможет избежать трудноуловимых проблем, когда симулятор и железо работают по-разному. Использовать = внутри блоков always можно только c @(*), которые синтезируются в комбинационную логику (и там, в свою очередь, нельзя использовать <= )
>20 строка
Тебе же анон говорил
>Вообще забудь, что внутри always @(posedge ...) может быть что-то кроме clk
Ты тактируешь сдвиговый регистр по сути выходом комбинационной схемы.
>А как тогда использовать делители частоты?
В большинстве случаев, когда тебе кажется, что тебе надо always @(posedge some_nonclk_signal), то, что тебе реально надо — это always @(posedge clk) if (some_nonclk_signal).
В оставшейся части случаев тебе надо что-то вроде
reg some_nonclk_delayed;
always @(posedge clk) some_nonclk_delayed <= some_nonclk_signal;
wire some_nonclk_front_detected = some_nonclk_signal && !some_nonclk_delayed;
always @(posedge clk) if (some_nonclk_front_detected) begin ...
11 строчка не нужна, по умолчанию и так 0 будет.
Буттон и tick-хуик вообще не используются.
А так с виду код рабочий.
>Уровня двух вышеуказанных моделей?
Любую, на которой можно диодом помигать.
Вот это хорошая плата? https://aliexpress.ru/item/1005005307666482.html?algo_pvid=null&algo_expid=null&spm=a2g2w.productlist.search_results.0.65c1448famHu9v&sku_id=12000032572212017
Что у нее за контакты такие? Штыревых контактов вообще нет. Как ее программировать и подключать к ней периферию?
В шапке плата с 25к LUT со штырями. За 1к рублей можно на алике найти. Со штырями. На гитхабе есть репозиторий с описанием и мануалом по работе с ней.
Ещё раз предлагаю тебе почитать про комбинационную логику, последовательную логику, синхронную логику.
HDL это не ещё один язык программирования, его не получится освоить, просто запомнив синтаксис.
А если скормить ему сделанное им же описание (заменив "этот код описывает модуль, который" на "напиши на верилоге модуль, который"), напишет чего-нибудь?
>и похоже что он генерить будет
Три модуля — три мигалки. "Тот, у кого из инструментов есть только счётчик с компаратором, склонен рассматривать любую проблему как деление частоты."
"Тот, у кого из инструментов есть только делитель частоты, склонен рассматривать любую проблему как мигалку светодиодом."
Почему у меня кодер с первой картинки кодирует неправильно? Появляются иксы в последовательности: xx1xx11001001011
ВРоде сам по себе кодер я правильно реализовал, это тестбенч кривой. Что я сделал не так?
module hamming_coder_nonsystematic_tb();
logic clk;
logic reset;
logic in;
logic out;
initial begin
clk = 0;
forever #5 clk = ~clk;
end
hamming_coder_nonsystematic uut(clk, reset, in, out);
initial begin
// Тест 11111000001
// Должно кодироваться в x^14+x^13+x^12+x^10+x^6+x^4+x+1 = 11101001010011
#1 reset = 1; #10
reset = 0; #10
in = 1; #10
in = 1; #10
in = 1; #10
in = 1; #10
in = 1; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 1; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 0;
$stop;
end
always @(posedge clk)
#2 $write(out);
endmodule
Почему у меня кодер с первой картинки кодирует неправильно? Появляются иксы в последовательности: xx1xx11001001011
ВРоде сам по себе кодер я правильно реализовал, это тестбенч кривой. Что я сделал не так?
module hamming_coder_nonsystematic_tb();
logic clk;
logic reset;
logic in;
logic out;
initial begin
clk = 0;
forever #5 clk = ~clk;
end
hamming_coder_nonsystematic uut(clk, reset, in, out);
initial begin
// Тест 11111000001
// Должно кодироваться в x^14+x^13+x^12+x^10+x^6+x^4+x+1 = 11101001010011
#1 reset = 1; #10
reset = 0; #10
in = 1; #10
in = 1; #10
in = 1; #10
in = 1; #10
in = 1; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 1; #10
in = 0; #10
in = 0; #10
in = 0; #10
in = 0;
$stop;
end
always @(posedge clk)
#2 $write(out);
endmodule
Поправил тестбенч, но все равно последовательность генерируется не та https://pastebin.com/6sdm4HTd
wire result = (bit_counter > 11) ? lower_datapath : higher_datapath;
И заодно верхний переключатель, поскольку в ПЛИС нет такой функции, как "открыто", то неявно предполагаем, что переключение происходит между сигналом и нулём.
wire feedback = (counter > 11) ? higher_datapath : 0;
Я вторую схему попытался сделать https://pastebin.com/bKr67ZtH
>>22923
Что-то не вычисляются проверочные символы, в конце выводятся все нули. Где я ошибся?
У тебя счётчик делает 16 отсчётов, хотя слово+проверочный код имеют длину 15, т.е. счётчик должен проходить значения 1-15 или 0-14, как тебе удобнее, только сравнение bit_counter > 11 поправь на bit_counter >= 11
Ещё у тебя на нулевом значении счётчика обнуляются регистры. Если при этом на входе считывается бит, то он пропадает вникуда.
Как-то так получается? Счет сделал 0-14.
Как вот это лучше инициализировать? Так как у меня или в блоке initial?
logic [3:0] divider = 4'b0000;
logic [3:0] buffer = 4'b0000;
logic [3:0] bit_counter = 4'b0000;
Смотри на симуляторе. На нём виднее.
>Как вот это лучше инициализировать? Так как у меня или в блоке initial?
Лучше резетом. Всегда полезно иметь резет для логики, которую требуется инициализировать (обычно это только часть логики, к тому же небольшая, поэтому много ресурсов не уходит).
А лучше делать отдельными if'ами или одним целым if-else if - else? Если подать сразу два сигнала reset и enable, может быть путаница.
Я всегда делаю только через цепочку if-else, чтобы однозначно понимать, что конкретно является результатом на данном такте. Выполняться должна только одна ветка. Сперва идут проверки условий с наиболее высоким приоритетом, потом, соответственно, в порядке уменьшения.
То есть не должно быть нескольких if-else, if-else, if-else в одном блоке always @(posedge clk)?
Я имею в виду, что если есть, например, bit_counter, то он должен описываться как-то так:
always @(posedge clk)
if (reset) bit_counter <= 0; // резет имеет максимальный приоритет и не зависит от других сигналов
else if (enable && bit_counter == MAX_VALUE) bit_counter <= 0; // если достигли максимума, обнуляемся
else if (enable) bit_counter <= bit_counter + 1; // иначе инкрементируемся
На каждом такте posedge clk выполняется только одна ветка, происходит только одно присвоение <=.
Мы же уже всё обсудили, данная комплектация не имеет под собой разумного технико-экономического обоснования, да ещё и поставщики так и не найдены.
>Мы же уже всё обсудили
Когда и с кем? Менеджеру должно быть поебать что продавать, а вот насяльника - согласована пара вариантов на пробу для сравнения на практике какой из вариантов будет лучше.
>данная комплектация не имеет под собой разумного технико-экономического обоснования
См выше. Руководство согласовало, а менеджеру по продажам похуй - его задача продавать, а не лезть в залупу и заниматься консультационными услугами по теме в которой он вряд ли разбирается.
>поставщики так и не найдены
Это точно косяк менеджера по продажам.. Когда найдутся? Реально, очень надо! уже больше месяца ждем!! Проект горит!!
Как-то не очень возбуждает когда тебя чуть ли не каждый день ебут в жопу за срыв сроков. Платы уже закоксовались под толстенным слоем пыли.
Дельту-сигму делай.
>case на 256 вариантов
Выглядит пиздец стрёмно. Подозреваю, это синтезируется в восемь 256-входовых ЛУТов. Если вивадо догадается это синтезировать в один BRAM — моё увожение, но что-то мне подсказывает, что нет.
Нужен цифро-аналоговый преобразователь, АЦП - микросхема специальная, преобразующая двоичный код в аналоговый сигнал.
Не нужен. Точнее, не необходим. Есть дельта-сигма, есть ШИМ.
Кусок кода работает не так, как я хочу. Почему - не понимаю.
Я, условно, хочу считать 15 байт информации(120 тактов) с двунаправленной шины, присвоить это одной переменной и сравнить с тем, что мне необходимо получить.
В уме это у меня так:
buff[120] <= i2c_sdat;
buff[119] <= i2c_sdat;
...
buff[0] <= i2c_sdat;
в коде я сделал так:
buff[buff_counter] <= i2c_sdat;
buff_counter <= buff_counter - 1'd1;
это считается комбинационной петлей ? (или нет?)
buff_counter у меня стоит начальное значение 120.
На вейвформе видно, что buff начинает принимать значение на втором маркере 3,090us а не на 465us.
Кусок кода прикладываю. Если я что-то глупое написал сильно не ругайте, это моя первая поделка.
>В уме это у меня так: buff[120]
Симулятор говорит, что он у тебя размер имеет только [6:0]
Но это самая меньшая проблема этого кода.
А в чем я еще ошибся ? То что код можно сократить я знаю. Я именно про перспективные ошибки.
Я давно говорю, плисоводам нужно свой профсоюз организовывать.
Существует ровно 1 (один) правильный метод бойкотирования работодателя, безо всякой коммипетушиной хуйни — найм к другому работодателю. При необходимости в другом государстве. Если зарплата везде кал, а не только в богоспасаемой импортозамещающей — значит, перекат в другую профессию и перевод предыдущей в разряд хобби. Ничто другое решением не является.
нет, они просто сговорятся не платиь больше Х.
и ты пойдешь за Х, вместо тогго чтобы работаьна ферме грузчиком. твои навыки узкие, визу в европу не получишь просто так. у тебя выбор: или работаь за Х, или идти на ферму.
Мой вариант: требовать себе з/п как у замдира. Работа у тебя важная, у тебя есть базис для таких требований. Сервер на готовых библиотеках можно научится поднимать за 6 месяуцев, а делать процессоры - хуй
Дед на приеме у сексопатолога:
— Доктор, больше 3-х раз в неделю с женой не получается.
— Дед, а лет тебе сколько?
— 85.
— Дед, ну это же превосходно!
— Да? А мой сосед говорит, что с женой ежедневно, а ему 95!
— Ну так и вы говорите!
>чате по FPGA
Это который FPGA-system других то нет? Там то конечно, все до последнего наносеки.
>Мой вариант: требовать себе з/п как у замдира.
А то что?
Ну ответили тебе "ваша зп на уровне рынка, поднимать её нецелесообразно (нахуй пошёл)", твои действия?
Иди нахуй, пиши всем ребятам из ПЛИС-чата чтоыб не шли к тому работдателю.
Он банкротится, я курьером подрабатываю.
> Иди нахуй, пиши всем ребятам из ПЛИС-чата чтоыб не шли к тому работдателю.
Ещё немного и зумеры изобретут профсоюз.
Меня больше волнует, что российские учёные пишут свои статьи на английском. Пущай западные пидоры учут наш язык, если хотят наши технологии. Как санкции накладывать, так быстро оборачиваются.
Учёному важно публиковаться, чтобы степени не лишили ему нужно сколько-то патентов или статей писать. Вот пишут где публикуют, + засветить своё имя, чтобы в случае чего было куда завести трактор.
Есть параметризируемый модуль.
Хочу сделать проверку параметра на допустимые значения.
Передаю значение через открытый параметр, он попадет в функцию, там проходит проверки и результат уже присваивается в localparam.
Вопрос в том, как в случае если проверки не прошли остановить синтез и по возможности выдать сообщение в консоль Кактуса?
Вот ты и пиши свои статьи на русском, если тебя это так беспокоит. Сам-то разработал хоть одну технологию?
generate if (is_based(PARAM) != 1488) begin
parameter_param_is_not_based_and_probably_zashquared error();
end endgenerate
Если проверка не проходит, попытается сделать инстанс несуществующего модуля.
>А вот как вывести сообщение в консоль?
Ошибка содержит имя несуществующего модуля, если сделать его информативным (как у меня в примере), сообщение об ошибке будет информативным.
>>25761
>С error() работает, а без - нет. Как это понимать?
Потому что когда ты объявляешь инстанс, ты сначала пишешь имя модуля, а затем имя инстанса (и список соединений в скобках). Это синтаксис верилога. Синтаксис должен быть корректным, чтобы линтер не считал тебя петухом.
>>25763
О какой переменной речь? ЯННП. Вставляй код для наглядности.
Но сам я sv не знаю и не касался.
Это для симуляции. При синтезе они тупо игнорируются. По крайней мере, так было, когда я искал способ валидации параметров во время синтеза.
Чем тебя PicoRV32 не устраивает? https://github.com/YosysHQ/picorv32
P.S. Ну или бери SERV, уложишься в 500 LUT ценой скорости: https://github.com/olofk/serv
Зависит от комплектации, но у меня оно в текущей поделке занимает 3500 LE вместе с uart и i2c.
>>25971
Я не он, но все это хуже ниоса тем, что для ниоса большую часть всего необходимого можно натыкать мышкой в квартусе, uart там, i2c и прочую ерунду. Все готовое уже. А тут придется состыковывать самостоятельно, адреса назначать опять же вручную и прочее.
PicoRV32 смущает тем что автор чулочный пидор.
Я против пидоров ничего не имею, если не выделяются и к окружающим не пристают. Но этот трансвеститом заделался или вовсе даже женские гормоны начал упарывать. И в твиттере своем срет пидорством. Причем количество коммитов от него резко упало как раз когда он по пидорской теме кукухой поехал. А ещё, если я правильно помню, он был чуть ли не основным разработчиком yosis.
Кстати, разгадывая капчу ты проходишь тест Тьюринга, а Тьюринг был пидр, поэтому не забудь купить пасскод.
Мда, сложный выбор — софт-процессор от чувака, который(ая) помимо этого запилил(а) единственную в своём роде открытую систему логического синтеза, или от какого-нибудь унылого гетераста.
Нет никакого выбора. Ниос элементарно намного быстрее воткнуть в проект, к тому же отладка будет работать.
>запилил(а)
Это в прошлом, теперь оно ничего не пилит, только здоровье разрушает гормонами.
Мог бы и сам найти, через репозиторий PicoRV32 на гитхабе.
Собственно его гитхаб было https://github.com/cliffordwolf а стало https://github.com/clairexen там же найдешь ссылки на твиттер.
Ничего такого, таких чулочных множество, в этом он ничем не выделяется. А выделился этот тип в разработке yosis, в своем роде уникальный проект. Только сейчас от него коммиты можно считать что отсутствуют, видно трапование не особо совместимо с серьезной мозговой деятельностью.
>видно трапование не особо совместимо с серьезной мозговой деятельностью
Чувак осознал свое пидорство, принял себя и стал счастлив от ебли в очко. Программирование для него было лишь средство ухода от психологических проблем.
"Напиши мне на языке Verilog модуль дешифратора с 8-разрядным входом"
"Вот пример 8-разрядного дешифратора на языке Verilog:
```verilog
module decoder_8to256 (
input wire [7:0] address,
output wire [255:0] out
);
generate
genvar i;
for (i = 0; i < 256; i = i + 1) begin : generate_outputs
assign out = (address == 8'd{i}) ? 1'b1 : 1'b0;
end
endgenerate
endmodule
```
В данном примере используется структура generate, чтобы проходить по всем возможным адресам на 8-разрядном входе (256 различных значений). Цикл for генерирует 256 отдельных выходных проводников (out[0] до out[255]), которые устанавливаются в 1, только если текущее значение `address` соответствует значению в итерации цикла. В противном случае выход остается равным 0."
Кажется, анон, мы пока в безопасности
В этом "не так сильно" — ключевое отличие между кодом, который выглядит как настоящий, и кодом, который делает то, что надо.
Тому что он ошибается в мелочах сильно радоваться не надо, это всего лишь дело времени.
Тут дело в другом. Все боятся что нейронки заменят прогеров - не заменят никогда. Да, скоро их обучат до такой степени, что они смогут писать сложные алгоритмы. Вот только нейронка - не телепат, она не знает что ты хочешь. И чтобы она смогла сделать всё правильно этот сложный алгоритм для неё придётся расписать словами во всех подробностях, а это сложнее чем просто взять и закодить его напрямую.
Так что да, мы можем спать спокойно.
А где ввод-вывод? На гите также лежала папка picosoc, вроде как это СнК. Хорошо, добавляем и символы оттуда. А это всë хозяйство как подключать к ядру?
Что, блять, вообще происходит? Где вообще объясняется, как что и к чему подключать? Анон, я, видимо, чего-то не знаю, но я даже не знаю, где копать.
>PicoRV32
Пидорская поделка.
>Вообще не понимаю, как тут действовать.
Тогда зачем хватаешься?
>это всякие внутренние интерфейсы типа памяти, их явно надо подключать.
Там на все это есть описание о том что это и для чего нужно. Так вот нужен только интерфейс памяти, тактовый сигнал и сброс. Прерывания ещё могут понадобиться. Остальное подключать не нужно, это понятно из описания. Look-Ahead Interface это всего лишь показывает что будет на шине памяти на следующий такт через комбинационную логику, разумеется оно не нужно. PCPI тем более не нужно. Все, там больше ничего нет.
>Рисовать надо, что ли? Ладно, создаю bdf
Рисовать то зачем? Код проще и нагляднее чем это. Впрочем, как хочешь, так тоже можно.
>На гите также лежала папка picosoc, вроде как это СнК.
Так там же оно из spi берет код. Нафиг оно такое тебе нужно, когда в плисине есть блочная память? Это просто бред будет воткнуть в fpga этот сок, а потом использовать под ОЗУ блочную память.
>А где ввод-вывод?
Сам делаешь. Как иначе? Ведь всем эта обвязка разная нужна. Если только светодиодом поминать, то это просто нужно сделать сравнение адреса на шине и регистр.
Вроде все просто. Какие ещё вопросы остались?
>А где ввод-вывод?
Где он уже написал. Дополню только что именно поэтому для дела стоит брать ниос. Или микроблейз, LatticeMico32, вобщем то что уже в ide приготовлено.
Я нагуглил, что Ниос из-за демки будет отрубаться, если плис работает без JTAG. Купить ядро у Майкрософт сейчас, очевидно, не получится, но и как крякнуть я тоже не понял. Я не увидел подтверждения, что в Prime Edition этого ограничения не будет.
>>26549
>Тогда зачем хватаешься?
Чтобы понять.
Ладно, попробую сам прикрутить к интерфейсу памяти какую-нибудь периферию. Спасибо за пояснения, стало понятнее.
>>26550
Да, он
Ты все перепутал.
>Ниос из-за демки будет отрубаться
Не будет. Есть два варианта ниоса.
Nios II/e - бесплатный, будет работать с бесплатным квартусом без ограничений.
Nios II/f - требует денег. Пожирнее немного, есть MMU, чтобы полноценно линуксы гонять там.
>Майкрософт
Интел.
>но и как крякнуть я тоже не понял.
Оно конечно тебе не нужно, но крякается оно элементарно. В одной длл-ке (со-шке для линукса) подправить несколько байт и подсунуть файл лицензии.
Я так делал:
gdb libsys_cpt.so
info address l_pubkey_verify
И оно напишет позицию по которой нужно править байтики. Далее правим что нужно (то есть вставляем инструкции xor eax, eax; ret):
sudo printf "\x33\xc0\xc3" | sudo dd conv=trunc of=libsys_cpt.so bs=1 seek=$((0xcef80))
0xcef80 - подставить позицию в файле которую ранее узнали, это значение для версии 21.1.0.842.
Далее берём файл лицензии с рутрекера, от любой версии (тут только не все IP могут быть прописаны, но в целом все будет работать) и далее по инструкции оттуда же, меняем в файле лицензии мак адрес сетевухи и так далее.
Поэтому ещё раз советую ниос, бесплатный вариант.
>Интел
Проорал с себя. Видимо, не проснулся.
>Nios II/e - бесплатный, будет работать с бесплатным квартусом без ограничений.
Тогда его сперва и заюзаю. Потом, науки ради, разберусь и с picorv. Благодарю, анон!
Забыл упомянуть что в Nios II/e аппаратного умножения нет. Это довольно существенно.
>разберусь и с picorv.
Осторожнее, оно пидорское.
Ну лишнее вставил, ничего страшного не произойдет. Ещё бы к орфографии придирался.
>Не input x0 [15:0], input x1[15:0]... и т.д. же.
А почему нет? Другой вариант это х[191:0]. Все, больше способов вроде как нет. Либо бери системверилог.
Такое в верилоге не работает. За этим нужно системверилог брать.
Привыкай. ¯\_(ツ)_/¯ Тут тебе не хипстерские язычки для зумеров.
Мне необходимо написать модуль на языке VERILOG, на вход которого идёт поток видеоданных(пусть будет 8 бит) и сигналы вертикальной и горизонтальной синхронизации. На выход идёт поток видеоданных из размерностью в 16 бит(два одинаковых пикселя).
Необходимо увеличить разрешение входного изображения в два раза, без всяких интерполяций. То есть каждый пиксель увеличить в два раза, тем самым мы получаем, что каждый входной пиксель становится выходным пикселем размером 2 на 2 пикселя.
С увеличением разрешения по горизонтали абсолютно никаких проблем, но если увеличивать разрешение по вертикали, необходимо дублировать строки. Я пытался запоминать в BRAM и дублировать их из памяти, но тогда потребуется что-то около трёх килобайт, при условии, что исходное разрешение у нас 640 на 480 пикселей с глубиной в 8 бит. А я работаю с гораздо большим разрешением и глубиной цвета, так что не могу позволить себе такие затраты по памяти.
Подскажите как это можно реализовать? Было бы приятно, если бы кто-то набросал черновые варианты кода
Можно же сделать reg [15:0] x [11:0], будет у тебя шина из шин и просто по адресу обращаешься к нужной. Как двойной массив
Не прокатит в качестве порта модуля.
>>27005
Никак. Если требуется повторять строку — её требуется где-то хранить. Но откуда 3кБ? 640 столбцов по 8б — это 640Б (надеюсь, очевидно, что удваивать строки надо до того, как удваивать столбцы).
>Было бы приятно, если бы кто-то набросал черновые варианты кода
$500
magnet:?xt=urn:btih:008c9e6f6761541c1bf5823213574c3c3c36ae10&dn=Xilinx_ISE_13.2&tr=udp://tracker.openbittorrent.com:80&tr=udp://tracker.opentrackr.org:1337/announce&tr=http://bt.t-ru.org/ann&tr=http://bt2.t-ru.org/ann&tr=http://bt3.t-ru.org/ann&tr=http://bt4.t-ru.org/ann
Шифт регистр
так пока одна строка передается два раза уже надо куда-то записывать следующую, поетому как минимум 640х2
В случае конкретно удвоения есть варик. Поскольку вычитывание идёт вдвое быстрее, чем запись, то при приходе новой строки нужно быстро начать вычитывать старую, параллельно записывая новую. Когда старая строка будет вычитана, новая запишется наполовину. После этого надо начать вычитывать новую с тем расчётом, что когда вычитывание дойдёт до конца, вторая половина уже будет полностью записана в память.
У этой схемы есть проблема в начале кадра ("старые" данные — это то, что осталось с прошлого кадра), поэтому самую первую строку получится передать только один раз ну и для сохранения размера последнюю строку придётся повторить дважды.
Да не, всё норм ты написал, просто надо будет начало кадра сместить на 1 строку. Так задержка даже меньше чем если хранить честный второй буфер
посадить студента, который за зачёт будет заливать на все чипы BIST или твою программу.
второй вариант требует JTAG коннектора, с первым вариантом можно подпаяться напрямую к пинам.
купи 1 девелопмент боард, выпаяй из неё чип, на его место наложи свежих шариков, и все последующие чипы просто прижимай, а не припаивай.
спасибо анону из Тулы, скачал.
Эти штуки никогда дешевыми не были, под qfn8 около сотки бачей стоит, впринципи тут масштаб соответствующий
по ссылке программатор флеш чипов, а не корпуса для BGA
Ну да, оно все дорогое. Панельки под большие tqfp и то дорогие.
Однако при этом сокеты для интеловских процессоров в материнках относительно дешёвые. Стоит сравнить шаг выводов, может получится процессорные приспособить.
так то массовый продукт,
Подскажешь как читать даташиты на хиленьких?
Смотрел UG070 + UG075 не вкурил про PLL. Как они правильно называются и главное - где у них физические входы-выходы?
У альтеры в даташите явно рисуется - вот входы (выводы с именем CLK) и выход можно выводить наружу (выводы с именем PLL_OUT).
Как найти выводы у хиленьких куда подавать тактовый сигнал? Выводы с GC в названии?
Как найти выводы у хиленьких откуда можно брать(выдавать) выходную частоту с ФАПчи наружу и фапать на нее?
Подскажи, если сделать цп на плисе и ос на нем попытаться запустить, роль гп для вывода видео кто будет исполнять или гп нужно отдельно проектировать?
>>30453
Что-то ты странное пишешь. Советую сначала нормально вопрос задать.
>спроектировать свою архитектуру
Что это значит? Что ты называешь архитектурой? Дело в том что этим словом можно назвать всякое, даже если только применительно к цифровым устройствам.
>роль гп для вывода видео кто будет исполнять или гп нужно отдельно проектировать?
Опять что-то непонятное. ца и гп какое-то. И совершенно непонятно откуда зачем и почему вывод видео приплел.
Расшифруй пожалуйста что ты имел в виду и зачем тебе все это.
>если сделать цп
Подумой, цопэ лучше не делать, посадить могут.
>роль гп для вывода видео кто будет исполнять
Чужой дядя, блять, придёт и исполнит! Кто ж ещё то?! - устройство. Где ты его возьмёшь думай сам, также на плисине бахнешь или какое-то готовое возьмёшь.
Спроектировать свой процессор на fpga.
>Расшифруй
https://en.wikipedia.org/wiki/Processor_design
https://en.wikipedia.org/wiki/Central_processing_unit
https://en.wikipedia.org/wiki/Graphics_processing_unit
Хреново ты расшифровал.
Слово "design" вряд ли переводится как архитектура, чаще по смыслу это "разработка". И когда кто-то пишет допустим про архитектуру х86, то это явно не про схему, а про ISA, которое к схеме непосредственно никаким боком.
Про цэпэ тебе уже писали. Осторожнее, за цп статья есть в УК, за это сажают.
А это, как написано по твоей ссылке, для ускорения обсчета графики. Для задачи "просто вывести картинку" оно никаким боком.
>Спроектировать свой процессор на fpga.
Еслина гитхабе лежат тысячи их, то логично предположить что это возможно.
И при создании всякой фигни на fpga их используют повсеместно. Например, делаем мы цифровой радиоприемник с дисплейчиком и крутилками. Так вот основная обработка сигналов разумеется будет не на процессоре, а зато обработку всяких кнопочек и вывод на дисплей удобно делать на процессоре.
Однако вряд ли ты справишься с такой задачей, хотя бы потому что без внятного ТЗ - результат ХЗ.
>>29346
Не знаю, xilinx почти не касался, да и тогда это были готовые девборды, и то крайний раз это был artix-7. Однако гугл мне пишет:
>GC pin has dedicated routing to global resources (BUFGMUX, DCM, PLL) and the CC pin has dedicated routing to local resources (BUFR, BUFIO).
Я бы в этом направлении читал документацию. Хотя может ты это уже видел.
>Кто-нибудь работал с софтовым процом от хилых?
Да.
>Есть вопросы.
Ты уже потратил свою возможность задать вопрос.
>Ты уже потратил свою возможность задать вопрос.
Очень смешно.
В общем суть в чём. Стою сейчас на распутье. Или всю логику мутить на конечных автоматах, что для меня хорошо знакомо и проблем не составляет, просто объём работ большой.
Или же бахнуть софтовый проц. Но опыта нет совсем и отсюда возникают вопросы.
В какой среде пишется код? Знаю у альтеры там какой-то эклипс. Что тут?
Каким образом и куда прошивается прошивка? Предполагаю, что во флешку рядом с проектом. Но как потом из флешки прошивка перемещается в плис? Процессор не прямо же из флешки исполняет программу, или да?
Есть ли отладчик, чтобы можно было ходить по программе по шагам и смотреть содержимое регистров?
Я не он, но отвечу, хотя почти не касался xilinx. По моему тебе стоит уточнить вивада или ise у тебя, а то мало ли.
>В какой среде пишется код?
Эклипс там.
>Знаю у альтеры там какой-то эклипс.
Хотя там и идёт эклипс в комплекте, но зато генератор мейкфайлов можно использовать из командной строки без эклипса, поэтому код удобно писать в чем угодно. Собственно я так и делал, без кривых и тормозных эклипсов.
>Каким образом и куда прошивается прошивка?
А откуда может выполняться программа? Очевидно в первую очередь из блочной памяти, которую очевидно можно инициализировать как обычно (т е. без процессора).
>во флешку рядом с проектом.
А это если программа будет выполняться из внешней памяти (ОЗУ). При этом в блочной памяти должен быть бутлоадер. Но это явно не твой случай.
>Есть ли отладчик
Да, он у всех есть.
Прошивка запекается внутрь битстрима, при загрузке плисины (из флешки или по жтагу) кладётся в предназначенный для неё блок BRAM, и процессор начинает её оттуда выполнять. Это в самом простом случае, когда программа целиком помещается в то количество BRAM, которое ты готов ей выделить.
Пошаговая отладка есть, но при работе с эмбеддедом показала себя максимально бесполезно (пока ты во время брейкпоинта втыкаешь в переменные, проебались все сигналы, запросы, ответы, прерывания, вочдоги и т.д.), так что готовься поднимать UART и отлаживать printf'ами, как диды. В Vitis есть специальный xil_printf, который хватает первый найденный на шине процессора UART и пишет туда. На компе понадобится адаптер USB-UART (бывают JTAG-программаторы, куда он встроен, и бывают отладочные платы, куда он встроен вместе с JTAG).
>>30596
>уточнить вивада или ise
ise
>Хотя там и идёт эклипс в комплекте
Это ты про хилых?
>из блочной памяти, которую очевидно можно инициализировать как обычно (т е. без процессора)
>Прошивка запекается внутрь битстрима, при загрузке плисины (из флешки или по жтагу) кладётся в предназначенный для неё блок BRAM
Т.е. заранее засунуть туда инициализирующий файл, по типу .mif как у альтеры?
Ну тогда как писать ПО, по каждому пуку в коде придётся перекомпилить весь проект? А это мягко говоря не быстро. Или тут на помощь должна придти инкрементальная компиляция?
Помню у альтеры была возможность с помощью внутрисхемной отладки прямо на работающем проекте залить в ОЗУ файл с компа через житаг. Тут такое есть?
>>30603
>Пошаговая отладка есть, но при работе с эмбеддедом показала себя максимально бесполезно (пока ты во время брейкпоинта втыкаешь в переменные, проебались все сигналы, запросы, ответы, прерывания, вочдоги и т.д.),
Ну это стандартная проблема для связки ПЛИС - процессор, к этому можно привыкнуть.
>эмбеддедом
Это ещё что?
И ещё.
Если пошаговая отладка через жытаг таки есть, то за счёт чего она работает? Это же процессор должен иметь доступ к соответстующим ногам плис? А доступа из проекта, на сколько я знаю, к ним нет.
Если поместится, то можно и на плисине. Но по вместительности элементов плисина это 0.0001% от проца современного уровня, так что не разгуляешься
>Т.е. заранее засунуть туда инициализирующий файл
Нет, когда собирается конфигурация ПЛИС, память оставляется пустой. Потом битстрим передаётся в SDK, а SDK знает, где надо подправить битстрим, чтобы память была проинициализирована прошивкой.
>Это ещё что?
"Встраиваемая система". Подход, когда вычислитель общего назначения (процессор) встраивается внутрь устройства, где навсегда получает специализированный набор задач по обеспечению работы этого устройства.
>Если пошаговая отладка через жытаг таки есть, то за счёт чего она работает?
Подключается к тому же жтагу, который используется для программирвания. В настройках процессора галочкой включается отладочный интерфейс, инструменты сами знают, куда что подключить, чтобы процессор обнаруживался по жтагу, и SDK мог его там найти.
>память оставляется пустой.
Вовсе не обязательно, можно и сразу с прошивкой собирать.
>>30623
>Это ты про хилых?
Это я про альтеру. Я с ней без всяких эклипсов обхожусь.
>залить в ОЗУ файл с компа через житаг. Тут такое есть?
Да, это возможно везде (или почти везде) где отладка работает. Это нормальный вариант, в большинстве случаев ничуть не хуже обновления данных блочной памяти в битстриме, как анон выше предлагает.
>Или тут на помощь должна придти инкрементальная компиляция?
Анон выше уже написал. Только это к инкрементальной компиляции не имеет отношения.
В любом случае на любой плисине для любого софт-процессора в большинстве случаев программа (или хотя бы бутлоадер) будет в блочной памяти, которая инициализируется самым обычным способом.
Чел, ты, мне кажется, не очень помогаешь. Анон ни разу в жизни микроблейз и ниос, видимо, тоже не трогал, а ты ему рассказываешь, что прошивку можно вставлять пересборкой битстрима, компилировать написанием мейкфайлов в виме, а обновлять редактированием памяти в режиме отладки. Ну это же явно не та инфа, которая ему нужна.
>обновлять редактированием памяти в режиме отладки.
Уже не помню как у xilinx, но у альтеры-интела это одной кнопкой в эклипсе делается.
>написанием мейкфайлов
Это я не советовал, а только написал что оно там есть. И не надо их самому писать, оно генерится само, в том числе при создании проекта в эклипсе.
>в виме
Это тем более мимо, никому такое не посоветую.
На хардварном
моргать светодиодом в 300000 раз быстрее, чем на ардуине.
>какие у вас прикладные задачи под фпга?
Процессоры делают наверное. Мне попадалась статья на петухабре, про видеоконтроллер на фпга для старых матриц. У меня валяется такая матрица от допотопной Тошибы, но используемая в статье девборда, стоила под 150к и у меня к хуям всё обвисло.
Ну вот я тоже слышал про лоулатенси видеообработку на фпга, но это ж явно околопромышленная задача, это уже не уровень бытовых свистоперделок.
Да я догадываюсь, что если бы не было задач, то и не было бы этой темы. Но вот конкретно можешь назвать, зачем тебе заниматься фпга как хобби?
>зачем тебе
Да я и не занимаюсь. Хотел замутить частотомер на альтеровском чипе, да чот остоебало разбираться в етом квактусе и я забил. Купил осциллограф, он и частоту показывает.
>Личрали не могу придумать, для чего вам не хватит какой-нибудь ардуины.
DDC приемник например. Или видеокамеру сделать. Да множество вариантов.
>>30688
>Процессоры делают наверное.
Это только для обучения нормально, для практических задач это ни к чему.
>>30705
>Хотел замутить частотомер на альтеровском чипе
Но зачем? Микроконтроллера же хватит.
Что толку с твоего ссаного стм32, если он сравним с софт-процессором? Более того, плату с цинком от майнера можно за 3 тыс. рублей купить, куда там какому-то стм32.
>15к стоит
Один хуй дорого. Вот статейка https://habr.com/ru/articles/444762/ для вопрошающего что можно сделать на фпга.
>Ещё один незнакомый термин.
Это уже даже не сленг. Может, для разнообразия пропробуешь спросить у гугла?
>А почему через инкрементальную компиляцию этот вопрос нельзя решить?
Надеюсь ты не путаешь это с инкрементальным синтезом? Сама по себе инкрементальная компиляция не особо что ускорит. А так есть способ в битстриме почти мгновенно заменить начальные значения для блочной памяти. В квартусе такое тоже есть.
Но по моему для отладки обычно удобнее по jtag в процессор заливать.
>пчел ти вобще с кокой плонеты
>>30766
>Это уже даже не сленг
Эти ваши буржуазные термины не использую. Сказали бы "САПР" сразу стало бы понятно.
>>30803
>Надеюсь ты не путаешь это с инкрементальным синтезом?
В данном контексте не вижу разницы. Инкрементальная компиляция позволяет откомпилировать только ту часть проекта где произошли изменения, что ускоряет сам процесс. И если изменения только в содержимом ОЗУ то перекомпиляция будет почти моментальной, ну или должна быть.
В общем набросал тестовый проектик, даже сумел запустить эклипс методом тыка.
На пике корка процессора. Вопросы пока такие:
1. GPO/GPI это порты ввода вывода?
2. Порты группы IO это что? Интерфейс для подключения памяти, т.е. через неё можно отобразить регистры пользовательских устройств в адресное пространство, или что-то другое?
3. Где и как искать инфу по процессору? Что там где по каким адресам?
4. В попытках найти эклипс наткнулся ещё на одну софтину Xilinx Platform Studio. Что это и зачем?
>В данном контексте не вижу разницы.
Это плохо. Но что либо объяснять тебе похоже бессмысленно.
>Где и как искать инфу по процессору?
Очевидно в документации от xilinx.
>Что там где по каким адресам?
Ну вообще в ниосе все адреса (базовые, для каждого периферийного блочка) назначаются либо руками, либо автоматически если нажать соответствующую кнопку. Ну а sdk уже генерирует необходимые заголовочные файлы. Логично предположить что у тебя в ISE будет аналогично.
А в виваде, насколько я помню, ip-ядро microblaze шло без ОЗУ, uart и портов, все это снаружи самому подключать требовалось.
>в виваде, насколько я помню, ip-ядро microblaze шло без ОЗУ, uart и портов
Не путай Microblaze и Microblaze MCS.
>Это плохо. Но что либо объяснять тебе похоже бессмысленно.
Траллировать изволите, мил человек?
>Очевидно в документации от xilinx.
Что-то непросто там у них соорентироваться, пока смог нагуглить только
https://inst.eecs.berkeley.edu/~cs150/fa13/resources/ds865_microblaze_mcs.pdf
И этого явно недостаточно.
>Логично предположить что у тебя в ISE будет аналогично
Да вот ничего подобного не наблюдаю, постом выше пик прикрепил, никаких назначений адресов там нет. Есть только небольшой выбор из таймеров, уарта, портов ввода вывода, прерываний, загадочной шины trace и и непонятной IO.
>>30968
>Не путай Microblaze и Microblaze MCS.
Я, так понимаю, у меня как раз MCS, и другого нет, хотя ise вроде с кряком. И вроде как к такому нельзя внешнее ОЗУ приделать для хранения программы, что начинает напрягать.
>SDK (сокращение от англ. software development kit — переводится как «комплект для разработки программного обеспечения»[1]) — это набор инструментов для разработки программного обеспечения в одном устанавливаемом пакете.
А что?
а то. Хоть какая-нибудь САПР в состав SDK входит а-атнюдь не обязательно. В целом нормальное явление, когда тебе дают компилятор и ворох хидеров (скажем, GCC и CMSIS для какого-нибудь ARM-а) даже без системы сборки, и все, ебаться подано.
>И вроде как к такому нельзя внешнее ОЗУ приделать для хранения программы, что начинает напрягать.
Если у тебя задача уровня нескольких конечных автоматов, то тебе и одной BRAM будет много.
В этом году поступаю в вуз и планирую попробовать ПЛИСы.
Ну и встал вопрос в выборе направления: информатика и вычислительная техника, радиотехника или проектирование микросхем.
На проектировании микросхем вообще нет цифровой обработки сигналов и слишком много физики (даже квантовую механику и оптику влепили, лел), так что лучше всего на радиотехнику или информатику и вычислительную технику, как я понимаю (правда на ИВТ может баллов не хватить).
Ну и собсна куда податься, чтобы программа была максимально близка к профессии разработчика ПЛИС? Почему-то все толковые ПЛИСовики, которых я встречал в жизни или Интернете, - поголовно все отучились на радиотехнике.
1 пик - программа ИВТ
2 пик - программа радиотехники
3 пик - программа проектирования микросхем
Ну и извиняйте за оффтоп, да, на уначе вообще толковых ответов нет >_<
Радиотехнику выбирай. Матаппарат, который используется в ЦОС — в практически неизменном виде используется для аналоговых цепей и систем автоматического управления, которыми там будут грузить по полной программе. Так что на радиотехнике тебя как следует надрючат брать преобразование Фурье, а теорию кодирования и криптографию как-нибудь сам по онлайн-курсам освоишь. На преподаваемые язычки и пакеты софта даже не смотри, тебя должно интересовать только какие разделы математики ты по итогу освоишь.
Спасибо большое за ответ :3
Ну как сказать, надо разбор езернет-кадров делать. У нас там свой собственный протокол по верх езенета реализован.
Посмотрел доку, что выше кидал и не нашёл там инфы по прерываниям. По каким адресам переходит, как туда обработчик положить? Вот это вот всё.
ERROR:NgdBuild:989 - Failed to process BMM information ipcore_dir/microblaze.bmm
INTERNAL_ERROR::45 - Memory allocation leak of 112 bytes at 0x07120C38 for a 'AddressMappingType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 54 bytes at 0x07143420 for a StrNew.
INTERNAL_ERROR::45 - Memory allocation leak of 88 bytes at 0x071E2728 for a 'AddressMapType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 40 bytes at 0x07143398 for a 'symbol_context' record.
INTERNAL_ERROR::45 - Memory allocation leak of 34 bytes at 0x06E42D50 for a StrDup.
INTERNAL_ERROR::45 - Memory allocation leak of 16 bytes at 0x06E41F60 for a 'DataFileNameListType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 24 bytes at 0x06E42C48 for a 'AddressSpaceLinkType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 96 bytes at 0x071E27F0 for 'void ⚹' data.
3.12 Name spaces
In Verilog HDL, there are seven name spaces; two are global and five are local. The global name spaces are definitions and text macros. The definitions name space unifies all the module (see 12.1), macromodule (see 12.1), and primitive (see 8.1) definitions. Once a name is used to define a module, macromodule, or primitive, the name shall not be used again to declare another module, macromodule, or primitive.
The text macro name space is global. Since text macro names are introduced and used with a leading ‘ character, they remain unambiguous with any other name space (see 19.3). The text macro names are defined in the linear order of appearance in the set of input files that make up the description of the design unit. Subsequent definitions of the same name override the previous definitions for the balance of the input files.
There are five local name spaces: block, module, port, specify block, and attribute. Once a name is defined within one of the five name spaces, it shall not be defined again in that space (with the same or a different type).
The block name space is introduced by the named block (see 9.8), function (see 10.3), and task (see 10.2) constructs. It unifies the definitions of the named blocks, functions, tasks, parameters, named events and the variable type of declaration (see 3.2.2). The variable type of declaration includes the reg, integer, time, real, and realtime declarations.
The module name space is introduced by the module, macromodule, and primitive constructs. It unifies the definition of functions, tasks, named blocks, instance names, parameters, named events, net type of declaration, and variable type of declaration. The net type of declaration includes wire, wor, wand, tri, trior, triand, tri0, tri1, trireg, supply0, and supply1 (see 3.7).
The port name space is introduced by the module, macromodule, primitive, function, and task constructs.
It provides a means of structurally defining connections between two objects that are in two different name spaces. The connection can be unidirectional (either input or output) or bidirectional (inout). The port name space overlaps the module and the block name spaces. Essentially, the port name space specifies the type of connection between names in different name spaces. The port type of declarations include input, output, and inout (see 12.3). A port name introduced in the port name space may be reintroduced in the module name space by declaring a variable or a wire with the same name as the port name.
The specify block name space is introduced by the specify construct (see 14.2).
The attribute name space is enclosed by the ( and ) constructs attached to a language element (see 2.8). An attribute name can be defined and used only in the attribute name space. Any other type of name cannot be defined in this name space.
3.12 Name spaces
In Verilog HDL, there are seven name spaces; two are global and five are local. The global name spaces are definitions and text macros. The definitions name space unifies all the module (see 12.1), macromodule (see 12.1), and primitive (see 8.1) definitions. Once a name is used to define a module, macromodule, or primitive, the name shall not be used again to declare another module, macromodule, or primitive.
The text macro name space is global. Since text macro names are introduced and used with a leading ‘ character, they remain unambiguous with any other name space (see 19.3). The text macro names are defined in the linear order of appearance in the set of input files that make up the description of the design unit. Subsequent definitions of the same name override the previous definitions for the balance of the input files.
There are five local name spaces: block, module, port, specify block, and attribute. Once a name is defined within one of the five name spaces, it shall not be defined again in that space (with the same or a different type).
The block name space is introduced by the named block (see 9.8), function (see 10.3), and task (see 10.2) constructs. It unifies the definitions of the named blocks, functions, tasks, parameters, named events and the variable type of declaration (see 3.2.2). The variable type of declaration includes the reg, integer, time, real, and realtime declarations.
The module name space is introduced by the module, macromodule, and primitive constructs. It unifies the definition of functions, tasks, named blocks, instance names, parameters, named events, net type of declaration, and variable type of declaration. The net type of declaration includes wire, wor, wand, tri, trior, triand, tri0, tri1, trireg, supply0, and supply1 (see 3.7).
The port name space is introduced by the module, macromodule, primitive, function, and task constructs.
It provides a means of structurally defining connections between two objects that are in two different name spaces. The connection can be unidirectional (either input or output) or bidirectional (inout). The port name space overlaps the module and the block name spaces. Essentially, the port name space specifies the type of connection between names in different name spaces. The port type of declarations include input, output, and inout (see 12.3). A port name introduced in the port name space may be reintroduced in the module name space by declaring a variable or a wire with the same name as the port name.
The specify block name space is introduced by the specify construct (see 14.2).
The attribute name space is enclosed by the ( and ) constructs attached to a language element (see 2.8). An attribute name can be defined and used only in the attribute name space. Any other type of name cannot be defined in this name space.
Ну же анончики. В чём тут дело?
Почему у меня полоска диодов мигает вместо волнообразных переливов?
https://gitflic.ru/project/aoizora/fpga-projects/blob?file=Wave%2Fsrc%2Fwave.sv&branch=master
>ttps://marsohod.org/projects/plata1/232-posoh
И еще, почему у автора два клока - clk и mclk? ЧТо такое mclk? Почему для tang nano 9k на схеме несколько клоков типа MCLK, GCLK, GCLKT? ЧТо это такое?
>И еще, почему у автора два клока - clk и mclk? ЧТо такое mclk?
В глаза долбишься?
>Единственная тонкость - светодиоды у меня подключенны прямо к выходам платы. По идее их нужно было бы подключить через резисторы, чтобы они случайно не сгорели, нужно было бы как-то ограничить ток. Я же сделал проще, модулирую управляющий сигнал частотой mclk вот так: f0 = bits[0] & mclk, чтобы светодиод не постоянно горел, а очень быстро моргал. Это такая своего рода защита.
В вузах это изучают на куче разных курсов. В начале на курсе линейной алгебры, потом на курсе РЦС, потом ещё могут коснуться реализации на разных курсах по цифровым устройствам, цифровой обработке сигналов.
Основной учебник по этому делу это однозначно РЦС Баскакова. Но осилить такое может быть тяжеловато. Однако в том что касается именно реализации БПФ и быстрой свертке на его основе изучают довольно поверхностно, да и все равно у выпускников вся эта муть из головы очень быстро вылетает.
Учут так себе, поверхностно. Потому используй стандартное готовое, а не еби себе мозг. Будь инженером, а не учёным.
>потом на курсе РЦС
И ещё на курсах ТОЭ и ТАУ. На ТАУ оно даже прикольнее всего, потому что там никто не срёт в эфир синусоидами, и все интересующие процессы по сути переходные. Но они всё равно раскладываются по спектру, такой-то майндфак.
>По какой книге или онлайн-курсу можно освоить преобразование Фурье как ему учат на факультете радиотехники?
Зависит от твоей текущей подготовки. Знаешь ряды, комплексные числа, собственные векторы и значения, дифференциальные уравнения? Изучение ДПФ желательно совместить с Z-преобразованием (т.к. это основной способ реализации дискретных линейных стационарных систем в частности фильтров, для анализа которых и используется ДПФ), а это комплексный функциональный анализ и комплексные ряды. Если честно, единственный реальный способ постичь это и не забить на 1/10 пути — отучиться в вузике. Да и параллельно всяким другим прикольным вещам обучат, статистике там, численным методам.
Да я подзабыл уже, давно это было.
>ТОЭ
У меня оно называлось иначе. И я уже не помню, были ли там задачи с преобразованием Фурье, вроде были, но минимально.
>ТАУ
Тоже называлось иначе. И если я правильно помню, то там операторным методом обходились.
>Но они всё равно раскладываются по спектру, такой-то майндфак.
Это ты про спектральную плотность? Так это в курсе РЦС.
>И если я правильно помню, то там операторным методом обходились.
Везде, где используется частотная характеристика, используется преобразование Фурье и его свойства (типа перемножению в частотной области соответствует свёртка во временной). Оператор Лапласа — тоже преобразование Фурье на области s = jω
Проектирую процессор на смеси гидравлики и пневматики. Ну как процессор, это даже громко сказано: очень мелкий АЛУ и немного Тьюринг-полноты
Вопрос: как мне в HDL (изучаю сейчас SystemVerilog) пометить что вывод логики водяной нельзя напрямую соединить с выводом логики пневматики, и наоборот. Как изловчиться и дать понять это синтезатору?
>не соединяй их в коде
У них там логика должна соединяться, в том-то и дело, с соответствующими задержками
То есть, не соединять-то я могу, но могу ведь и ошибиться!..
>синтезатору
У тебя есть синтезатор у которого на выходе
>смеси гидравлики и пневматики.
Разве такие существуют?
>>35797
Так почти во всех плисах, может быть за исключением совсем древних cpld по выходам есть буферы, которые дают задержку. Разумеется это учитывается.
Ну и ты наркоман разумеется. Самое большое в любом процессоре это память. Как ты ее будешь делать?
> Разве такие существуют?
Существовать то существуют, но о практическом применении гидравлической логики (пневматика изредка использовалась во всяких взрывоопасных местах, куда совать реле и прочие электрические искрообразователи чревато) мне не попадалось.
>вывод логики
Что ещё за вывод? В верилоге есть входы и выходы. Ты что с чем соединить не хочешь, чудик?
Ты похоже не совсем правильно меня понял. Я не про саму логику, а про синтезатор у которого на выходе будет такое.
В любом случае, в чем вопрос то? Тебе нужна задержка при симуляции? Да пожалуйста, оно в верилоге есть.
>>синтезатору
>У тебя есть синтезатор у которого на выходе
>>смеси гидравлики и пневматики.
>Разве такие существуют?
Конечно! Любой HDL описывает логику и соединения безотносительно среды, в которой всё это будет исполняться
>>>35797 (You)
>Так почти во всех плисах, может быть за исключением совсем древних cpld по выходам есть буферы, которые дают задержку
Но тут среды передачи разные. Нельзя просто воду соединить с воздухом, должен быть обязательных конвертирующий элемент.
Представь что ты делаешь компьютер на элементах, которые питаются от 3.3В (CMOS) и на элементах, которые питаются от 12В (реле) - напрямую соединять это нельзя
>Ну и ты наркоман разумеется. Самое большое в любом процессоре это память. Как ты ее будешь делать?
В моём памяти надо будет чуть совсем
> В любом случае, в чем вопрос то? Тебе нужна задержка при симуляции?
А я то причём? Я всего лишь комментировал про пневматическую и гидравлическую логику.
>>35846
> Конечно! Любой HDL описывает логику и соединения безотносительно среды, в которой всё это будет исполняться
И толку то от этого описания? Как ты его в железе то претворять будешь? Вон, погляди как народ извращался, чтобы на HDL печатки с дисретной логикой генерировать:
https://hackaday.io/project/180839-vhdlverilog-to-discrete-logic-flow
>> Конечно! Любой HDL описывает логику и соединения безотносительно среды, в которой всё это будет исполняться
>И толку то от этого описания? Как ты его в железе то претворять будешь?
Руками. Сначала убежусь что всё работает, потом выведу схему поблочно и вперёд
У меня получается около 400 элементов, может даже "в железе" сделаю
>Вон, погляди как народ извращался, чтобы на HDL печатки с дисретной логикой генерировать:
>https://hackaday.io/project/180839-vhdlverilog-to-discrete-logic-flow
Кстати, неплохо, возможно что-то такое запилю если встроенного в yosys маппинга не хватит
>Конечно! Любой HDL описывает логику и соединения безотносительно среды, в которой всё это будет исполняться
Тогда ты путаешь термины.
1) Синтезатор это такая штука которая берет код и на выходе выдает битстрим и не лист из примитивов, ну или не битстрим а схему или ещё что.
2) А есть симуляторы - они тупо выполняют код на компе. В симулятор можно запихнуть не лист из синтезатора и промоделировать все с задержками.
Не путай!
>Но тут среды передачи разные. Нельзя просто воду соединить с воздухом, должен быть обязательных конвертирующий элемент.
Так значит напиши соответствующий модуль и всех делов то. В чем проблема то?
>>Но тут среды передачи разные. Нельзя просто воду соединить с воздухом, должен быть обязательных конвертирующий элемент.
>Так значит напиши соответствующий модуль и всех делов то. В чем проблема то?
Ты имеешь ввиду "модуль" в терминах HDL?
Так я и спрашиваю: как мне в этом модуле пометить пневматические и гидравлические входы и выходы так, чтобы их снаружи нельзя между собой было соединить неправильно
>чтобы их снаружи нельзя между собой было соединить неправильно
У тебя их так много что можно запутаться?
В VHDL это легко делается, просто новый тип определить и все. В верилоге такого нет, а systemverilog я не знаю.
В любом случае ты наркоман.
>>чтобы их снаружи нельзя между собой было соединить неправильно
>У тебя их так много что можно запутаться?
Обидно будет запилить на станке байду а там окажется 2 дорожки неверно идут или типа того
>В VHDL это легко делается, просто новый тип определить и все. В верилоге такого нет, а systemverilog я не знаю.
В верилоге есть типы проводов? Например, этот тип 12В, а этот 3В, а это вообще гидромагистраль?
>В любом случае ты наркоман.
Ничего страшного
Я так понял, что синтезатора (который на выходе даёт чертеж) у тебя нет и переводить код в элементную базу ты будешь руками? А тебя в таком случае не смущает, то что в верилоге есть синтезируемые и несинтезируемое подмножество?
>В верилоге есть типы проводов?
Если не касаться системверилога, то там есть signal strength Но я не видел чтобы этим пользовались и вряд ли оно тебе подойдёт.
>Я так понял, что синтезатора (который на выходе даёт чертеж) у тебя нет и переводить код в элементную базу ты будешь руками?
Это не проблема, гейты ведь типовые
>А тебя в таком случае не смущает, то что в верилоге есть синтезируемые и несинтезируемое подмножество?
Первый раз слышу, я ещё только размышляю и языка не знаю (изучать буду послезавтра)
>>35866
>>В верилоге есть типы проводов?
>Если не касаться системверилога, то там есть signal strength Но я не видел чтобы этим пользовались и вряд ли оно тебе подойдёт.
Близко, но не то
Verilog has 4 driving strengths, 3 capacitive strengths and high impedance. This is not a strength. The strength of a net is derived dynamically from the strenght of the net driver(s) and will get the strength of the strongest driver. The words strenght0 specifies the strength when the net drivers drive the value 0; strength1 specifies the strength when the net drivers drive the value 1. The cap_strength is for trireg nets only.
>я ещё только размышляю
По моему ты ерунду хочешь. Конечно на верилоге ты можешь описать вентили и потом их соединять, но только зачем? Схематик для такого нагляднее будет. Верилог все же заметно более высокоуровневый чтобы так его использовать при написании кода руками.
Если бы передо мной стояла такая задача, то я бы просто нарисовал схему руками, можно даже с получением нетлиста на верилоге.
>Близко, но не то
Так и я о том же.
>как мне в этом модуле пометить пневматические и гидравлические входы и выходы так, чтобы их снаружи нельзя между собой было соединить неправильно
К названиям добавляй суффиксы-префиксы, чтобы сразу видеть что есть что, делов то.
>>как мне в этом модуле пометить пневматические и гидравлические входы и выходы так, чтобы их снаружи нельзя между собой было соединить неправильно
>К названиям добавляй суффиксы-префиксы, чтобы сразу видеть что есть что, делов то.
Да, пока это основной планируемый способ
А я тебе ещё раз напишу что соединять на верилоге твои гейты это бессмысленно. Попробуй сам нарисовать схему сумматора на 2nand, а потом те же самые соединения примитивов описать на верилоге.
Ну вот у меня полный сумматор будет сразу использовать воздух и гидравлику
Как мне не напутать его входы и выходы когда я соберу его в 4-битную пачку?
Ну вот пользовательские типы данных есть в VHDL, там ты сможешь сделать как хочешь. В системверилоге тоже есть, но по нему подробностей не подскажу.
На простом верилоге такого не сделать.
Я её в сети находил. Мне не очень понравилась, как-то всё разбросанно, не систематизировано.
>Я её в сети находил. Мне не очень понравилась, как-то всё разбросанно, не систематизировано.
Обзорно, для новичка сойдёт
Что не понравилось: передний фронт/задний фронт (вместо фронта и спада), в середине автор или переводчик выдохлись и начали халтурить, даже синтаксические ошибки попались. Конкретно забыли написать про разницу между module и program
Но как обзорная для неофита с багажом паяльщика, LogiSim и обычного программирования - норм
А какую ты порекомендуешь?
Этот >>35959
>передний фронт/задний фронт (вместо фронта и спада)
Мне как раз больше нравится передний фронт/задний фронт.
>А какую ты порекомендуешь?
На русиче один кал, хороших нет. А из них более-менее см. пики.
И как по мне, на SystemVerilog лучше сразу не кидаться, а начать с простого Verilog-а. А там уже и на System переключится. Verilog и SystemVerilog это примерно как С и С++. При изучении языка никто же сразу не начинает с объектов и классов, начинают со структурного программирования. Вот так и тут.
Ты путаешь срез импульса и частоту среза. Что, конечно же, неудивительно для недоучки.
>
>И как по мне, на SystemVerilog лучше сразу не кидаться, а начать с простого Verilog-а. А там уже и на System переключится. Verilog и SystemVerilog это примерно как С и С++. При изучении языка никто же сразу не начинает с объектов и классов, начинают со структурного программирования. Вот так и тут.
Мне проще оказалось сразу с тестированием, потому что я по работе в обычном императивном программировании тестирование широко применяю
Само же создание схем оказалось простым. Единственное что я пока чужой код на SV не очень воспринимаю, не вижу типовых приёмов, наверное
бамп вопросу
Как вкатиться в программирование контроллеров?
Приёмник выдаёт двухразрядную шину данных и сигнал валид. Как я понимаю валид держится на протяжении приёма всего кадра.
Вопрос в том, как определить конец поля данных и начала контрольной суммы?
1. По полю размера? Но оно на фактический размер кадра не указывает.
2. По возникновению нуля при подсчёте контрольной суммы? А не получится ли что ноль возникнет где-нибудь в середине поля данных?
3. И ещё. В конце приёма каждого кадра сигнал валид даёт какой-то дребезг. Как это понимать?
>Как я понимаю валид держится на протяжении приёма всего кадра.
Необязательно. Он может падать в любой момент, в этом его функция. Твоя задача в этот момент — остановиться и ждать.
>По полю размера? Но оно на фактический размер кадра не указывает.
Да. Пересчитывай нефактический в фактический.
>В конце приёма каждого кадра сигнал валид даёт какой-то дребезг. Как это понимать?
Понимать так, что нулевое значение валид = приёмник занят своими делами и говорит тебе подождать.
За ответ благодарен, но ты мне втираешь какую-то дичь.
>нулевое значение валид = приёмник занят своими делами и говорит тебе подождать
>Он может падать в любой момент, в этом его функция. Твоя задача в этот момент — остановиться и ждать.
Какими таким делами он может быть занят? У него одно дело - принимать поток данных кадра. Передатчик выдаёт поток непрерывно в течении всего кадра. Тактовые частоты у передатчика и приёмника одинаковые (я пока закольцевал передачу на прём). Да даже если и не закольцовывать, приёмник работает на 50 МГц и выдаёт по два бита за такт, на другие дела у него просто нет времени.
>Пересчитывай нефактический в фактический.
Что значит? Я вот, например, в поле размера вообще ноль записал. А WireShark всё равно принял ровно столько байт сколько я передал по факту.
>На русиче один кал, хороших нет. А из них более-менее см. пики.
Тогда посоветуйте книги по Verilog/SystemVerilog на английском.
//SV code
logic[31:0][7:0] mem;
logic[31:0] rom[];
c.mem[n + 0] = rom[0 +: 8];
c.mem[n + 1] = rom[8 +: 8];
c.mem[n + 2] = rom[16 +: 8];
c.mem[n + 3] = rom[24 +: 8];
Всё работает, но выглядит как-то неаккуратно
Тот код не работает, такой работает (забыл у rom индекс дописать):
c.mem[n + 0] = rom[0 +: 8];
c.mem[n + 1] = rom[8 +: 8];
c.mem[n + 2] = rom[16 +: 8];
c.mem[n + 3] = rom[24 +: 8];
c.mem[n + 0] = rom[0 +: 8];
c.mem[n + 1] = rom[8 +: 8];
c.mem[n + 2] = rom[16 +: 8];
c.mem[n + 3] = rom[24 +: 8];
Сюда же вопрос: после долгого процесса синтеза, или как он там называется под конкретную плис, есть ли файл нетлист?, который содержит трассировку? Возможно ли с использованием этого файла быстро создать файл прошивки, зашиваемый в ПЗУ? Будет ли он идентичен от сборки е сборке?
Откройте для себя gitignore, штоле: https://github.com/github/gitignore/blob/main/community/Xilinx.gitignore
460x816, 0:40
Почему-то по сишному не получается, но судя по коду верилятора анонимность допустима.
> Как на Verilog или SystemVerilog описать анонимную структуру или union?
Занести IEEE много деняк, чтобы они добавили это в стандарт языка?
Можно же как-то биты соединять по рандому не?
Ну что, вроде бы получилось. Пришлось только подправить файл altera_avalon_i2c_hw.tcl - просто закомментировал строки на которых были ошибки (некоторые тиклевские процедуры отсутствовали в старой версии).
Если по минимуму, то хватит около 1000...1500 LUT в зависимости от внутренностей плисины (LUT отличаются по количеству входов и прочее). Памяти хватит той что внутри FPGA.
Так что хватит даже самых мелких FPGA, только совсем старье не бери. Если altera(intel), то по минимуму это EP4CE6, у xilinx ниже 7-ой серии опускаться не стоит, т.к. они ise выкинули и сделали vivado.
Ну а если ты хотел там линуксы запускать, то требования будут немного выше, память ещё будет нужна снаружи.
Так для чего тебе? Ещё раз повторю, одно дело минимальный процессор с минимальной периферией (на уровне gpio и uart) и совсем другое дело если ты задумал запускать там полноценный линукс и иметь ethernet, hdmi и все такое.
Если по минимуму то, например https://aliexpress.ru/item/32949281189.html и не забудь https://aliexpress.ru/item/1005001848932516.html
Хочу попробовать поиграться с RISCV. Свой проц (контроллер) на нем слепить, например. Как вариант - просто свой проц на верилоге сбыдлокодить шутки ради.
>минимальный процессор с минимальной периферией (на уровне gpio и uart)
Ну вот что-то такое, да. SPI, I2C, I2S, PWM. Грубо говоря, пердуину на проце в плисине.
Вот эта штуковина нормальная? Даже написано RISCV, кек
https://aliexpress.ru/item/1005005667896010.html
>Вот эта штуковина нормальная?
Не советую, потому что у них IDE слаборазвитая.
Если брать altera(intel), xilinx, lattice то будет намного удобнее и проще, там тебе и довольно много готовых ip ядер. И вообще с альтерой сможешь просто в qsys мышкой накидать весь процессор (nios) с периферией. Или возьмёшь отсюда скрипты для qsys чтобы туда вставить risc-v https://github.com/ARIES-Embedded/riscv-on-max10/tree/master/Cores Но оно не только этим лучше китайцев, там ещё и всякий анализ результата удобнее.
А если возьмёшь ту китайскую плисину, то тебе все эти
>SPI, I2C, I2S, PWM
Придется еще отдельно искать или писать самому. А потом ещё все соединять руками, что тоже кстати не совсем элементарно.
> Придется еще отдельно искать или писать самому
Ну, разве что если его встроенные не устроят (пикрелейтед из Educational-версии говиновского IDE).
Картинка из википедии.
Точно также ка и в уарте. Синхронизируешся по оранжевому сигналу, а дальше за счёт внутренней синхры.
Написано же — импульсы синхронизации
>Хочу попробовать поиграться с RISCV. Свой проц (контроллер) на нем слепить, например. Как вариант - просто свой проц на верилоге сбыдлокодить шутки ради.
О, сейм
Я сейчас пилю RISC-V 32i с прицелом на минимальный footprint
Конечная цель сделать его на транзисторах. По прикидкам выходит около 1200 транзисторов, что по нынешним временам звучит реалистично
На пенсию выйду буду вместо мозаики собирать потихоньку
Бекгаунд у меня ближайшее это микроконтроллеры и ардуина со всякими HALами IDF и прочей высокоуровневщеной. Что такое драйвер в компе с точки зрения его написания и адресное пространство - я не ебу от слова совсем.
Это не специальность, а болезнь
Есть смысел брать бу плату от антмайнера? Распиновку уже нарисовали, чо там и куда идет?
Погроммист.
Ау!! Есть тут живые? Или никому в голову не пришло использовать готовую копеечную плату, с жирной плисиной, флешкой, RAM-ой, питаловом?
Здесь на спичках не экономят - тут господа с дорогим временем
https://github.com/KarolNi/S9miner_sample
https://mysku.club/blog/aliexpress/84832.html
просто с вероятностью 99% ты купишь плату, в которой вирус прошил фьюзы на подпись прошивки, и ты все равно будешь менять чип, проще сразу взять отладку, они не сильно дороже
А волка с яйцами?
>они не сильно дороже
На Авите эти платки по цене грязи продаются. От 250р. Где отладки с такой жирнотой не сильно дороже?
Спасибо за ссыль на Гит.
А есть книжки типа "ЦОС на селе", "ЦОС для полных кретинов", "Обрабатываем массив данных с самогонного аппарата на FPGA"?
Есть вот такое. Но я даже её не осилил. Там разжёвывают-разжёвывают, а потом с какого-то места сразу резко круто берут.
>Ну ты ссслочку то дай.
https://www.avito.ru/irkutsk/tovary_dlya_kompyutera/kontrolnaya_plata_antminer_s9_3858653892
Ну держи, если сам запрос вбить не в состоянии. Куплю пяток, пусть валяются.
>Там разжёвывают-разжёвывают
Да, блядь, такая же хуйня. Вроде 30 лет назад не пугали всякие диффы с интегралами, а сейчас смотрю на это всё как баран на ворота.
>А майнинг уже совсем всё?
В душе не ебу. Я думал он уже давно ВСЁ, а тут оказывается лохам впаривали асики в промышленных масштабах. Блоки питания киловаттные, теперь по 500р распродают
Я рекомендую онлайн-видеокурсы, особенно те, где упор идёт на практическое применение. Намного лучше заходит для таких тупых, как я.
Например, я ЦОС осилил по https://www.coursera.org/learn/audio-signal-processing , а ТАУ по https://www.udacity.com/course/artificial-intelligencefor-robotics--cs373 . Нормально освоил, могу за быструю свёртку через перекрытие с суммированием или за фильтр Калмана по байесовскому подходу пояснить, например.
>SSD FusionIO IO-Drive2
И нахуя? Чо за FPGA там? Нахуя для потеребить ПЛИС, нужна поебень с терабайтом флеша? Где ее купить за тыщу рублей?
> нахуя
прост)
> Чо
1х или 2х virtex5 или 6 или 7 в зависимости от модели
> Нахуя
прост)
> Где
авито
>авито
Ну, разве что ворваться к ним в датацентр и вырвать парочку из серваков. Авита поперхнулась от такого запроса и выдала мне пару бу пододеяльников и какие-то фары от древнего авто.
Хуле там в Виваду напихали на 100+ гигов?
Купил LabVIEW на торрентах. Меня не схватит за яйца потная рука майора?
>А что ты с ним делать будешь
Там можно симулировать. DSP дрочить и смотреть на процесс через виртуальные приборы
>FPGA-cuckould фетиш.
А хуле делать? Я нищук первой гильдии. Покупка борды за 100к, для меня недостижима ни в какой из версий будущего
Ну устройся работать туда, где тебе её начальство купит.
Кстати, дешевле 100к ничего подходящего нет?
>могу ебашить прошивки в файл формата SOF и после перезагрузки платка будет обратно грузиться с флеша?
Да.
>В Кряктусе возможно посмотреть какие пины задействованы без проекта?
Нет.
Можешь методом тыка. Выводишь поочерёдно на ногу уровень/генерацию и ищешь его/её мультиметром/осциллографом в надежде ничего не спалить.
>генерацию
Попробую это. Разными частотами и осциллом потыкать. А то уебусь под две сотни ног прозванивать
Целый день отпуска потратил на тыканье щупом во всякие места. Натыкал 34 доступных мне вывода и даже взморгнул светодиодами. Можно теперь подключать 8-бит АЦП и дрочить на DSP в железе.
Качаешь миросовт драйвер СДК или чотам в линуксах для ядер, смотришь с красными глазами.
Микрософт последнее время насколько я понел требует сертифицировать дрова, но и для людей есть какая -то оболочка для плользовательских драйверов
Ипался. Даже теребил регистры dma через pcimem.
Правильно пишут - если хочешь ебануться на отлично - пиши под винду где для старта предлагают "Develop custom PCI drivers for Windows with WinDrive PCI by Jungo" (платная!). Если просто помутнение рассудка хочется - тогда в линукс где поебать есть-нет драйвер (модуль) и можно через pcimem читать-писать любой регистр в то время когда винда хоть и показывает что выделены диапазоны адресов отказывается в них что либо писать-читать даже через rweverything.
Для старта здесь https://www.youtube.com/@johannes4gnu_linux96 можно найти примеры как теребонькать регистры PCI устройств и прерывания.
Дальше простенького проекта с GPIO не лез. Не до этого, надо вспоминать. Фанат Альтеры, про Хилых в душе и других местах неебу
Xillybus есть, вроде как даже бесплатный для образовательных целей.
Поддержка оборудования скорей всего. Хотя было бы интересно запрофилировать файлы. Ну и Витис если он у тебя стоит тоже жрёт немало
https://microtechnics.ru/profilegrid_blogs/princzip-raboty-sigma-delta-aczp/
А по каким книгам изучать интерфейсы? Я в попытках освоить плис уперся в нехватку образования, я программист, а не инженер. Здесь мало знать верилог, нужна еще математика и интерйейсы.
Про верилог надо знать что это набор костылей для описания специфических для аппаратной логики состояний. Там полторы языковые конструкции. Из неочевидного только синхронайзеры, потому что внезапно анал-лизатор кода показывает какие угодно нестыковки кроме несоответсвия clock domain'ов.
Интерфейсы это буквально диаграмма где нарисовано на каком фронте сигнала надо читать биты и с какими таймаутами.
Вот кароч после прочтения этой книги >>559027 → до середины я уверенно спроектировал многоканальный аудио и миди интерфейс правда объебался из-за того что девборд не поддерживал изохронный режим USB, на этом проект закончился. Идея была затактировать аудио и миди в одной частоте 62.5 кГц, так чтоб на 1 аудио сэмпл приходился четко 1 бит миди
>А по каким книгам изучать интерфейсы?
По даташитам. Берёшь даташит на микросхему с нужным тебе интерфейсом и внимательно читаешь. Бывает так что в конкретном даташите интерфейс описан херово. Тогда берёшь даташит на другую микросхему с таким же интерфейсом, может даже другого производителя. Если все равно не получается, берёшь уже даташит на стандарт, но там много воды и ненужного, в даташитах на микросхемы изложено, как правило всё необходимое и ничего лишнего.
>нужна еще математика
Ну смотря где и какая. Если ЦОС - то конечно.
>я программист
Посмотри эти видосы, может что-то прояснится
https://www.youtube.com/@ПЛИСоводство/playlists
я конечно же не учил
ноу меня вопрос к сидящим в треде: какие у вас щп?
я так по верхам погулля по фпга тебе и охуел, там нужен высокий уровеьнь комптетенций и вообще уметь и прогать, и пониматьь как работает железо и софт на самом низком уровне чтоюы вопсроизовдить передачу сигналов, компрессию, делать переход vgi-hdmi
Самая жирная вакансия что я видел: 600-900к в мес в Алабуге дроны собирать. Но там компетенцйии просят самые широкие, так сказать from scartch навигационную систему писать + учить других, а самое обидноечто твои резлуьтаты работы принесут тебе 900к максиму,а вот твоему начлаьницу - десятки и сотни миллионов за "успешное выполнение поставленой задачи" тогда как у тебя в 500 раз больше знаний чем у него, а он просто какой-нибудь торюрожный зять минниханнова кабанчик-менеджер с троечным дипломом экономиста. что-то меня понесло не в ту сторону...
Тебя наебали. Ну в смысле что на западе у них реально мало конкуренции и норм ЗП, но это нужно прям любить и учить много теории. Иначе всю жизнь будешь ненавидеть свою работу.
А почему в рф зп низкире? Это ж оч сложная тема.
А на западе не лучше. Там SWE в big tech получают КРАТНО(х2, х3) брольше чем FPGA спецы. Типа 250-350к против 100-120к.
мб fpga спецы с 10+ г опыта в apple r&d пролучают на уровне SWE т.е. 250-350к+ но это оч мало людей
>какие у вас щп?
Стесняюсь озвучивать, но 200 т.р. на руки.
В целом твое нытье ни о чем. Если хочешь денег как можно больше, то зачем идти в программисты? Иди в гей-шлюхи, в воры, вкатывайся в бизнес... Очевидно что у наёмного работника зарплата всегда будет ограничена.
И да, анон выше правильно пишет, все это нужно любить. А FPGA это довольно специфическая область, в которую вкатываться без интереса просто бессмысленно.
Там и конкуренции больше. Больше шансов с улицы попасть в компанию, без кучи резюме и портфолио. Правда для норм конторы желательно иметь диплом Electronic Engineer. Кто-то даже пишет что это из-за страха директоров компаний, что если кто-то пострадает от твоей продукции и проверка обнаружит инженера без профильного диплома, то даст пизды.
Да, но у меня гибридный график. Можно попытаться и на почти полную удаленку перейти.
Хорошо у вас там. А я вот бибу посасываю со своими 60к + премии, + надбавки, но от этого не сильно лучше, в мухосрани миллионнике.
А я наоборот хотел бы в перспективе перейти на полную удаленку и переехать жить в Крым, тем более что у меня там уже есть жилье.
Ну вообще плисоводство и удалёнка плохо совместимы. Там же надо постоянно в железе отлаживать. Ты в какой сфере трудишься?
Почему постоянно? Пока дизайн в процессе разработки, сойдёт и поведенческая и пост-имплемент симуляция
Анон выше уже написал. А я добавлю, что и "в железе" часто не проблема удаленно "отлаживать". Или ты собрался тыкать осциллографом в ноги плисины?
> Или ты собрался тыкать осциллографом в ноги плисины?
А там не ноги, а шарики, азаза.
Но чсх, в процессе отладки дипломного проекта мне понадобилось тыкать, правда не в ПЛИС, а в мидиклаву, чтобы убедиться в корректности сигнала
Если на удалёнке за нормальную зарплату, то в Крыму замечательно будет. Но у местных с зарплатой как правило печально, это так.
Может быть, но на кафедре был осциллограф, и мне хотелось поиграться с ним. Да и в презентацию потом можно было вставить больше фоток, иллюстрирующих сам процесс, а не всякий дженерик
>Почему постоянно?
Ну не постоянно,но всё равно надо.
>и пост-имплемент симуляция
Никогда не понимал зачем она вообще нужна. Если поведенческая работает и констрейны сошлись то с высокой долей вероятности проект рабочий. Или ты какие-то жуткие асинхронные схемы там изобретаешь?
>>64678
>Анон выше уже написал.
Что, где писал? Не видел.
>Или ты собрался тыкать осциллографом в ноги плисины?
Ну скажем не в плисину, а в цап. Да мало ли что ещё на плате с плисиной стоит. Да и сама железка в целом не в вакууме работает, тоже с чем-то взаимодействует.
> "в железе" часто не проблема удаленно "отлаживать"
Я бы сказал наоборот. Часто проблема удаленно "отлаживать".
> Никогда не понимал зачем она вообще нужна. Если поведенческая работает и констрейны сошлись то с высокой долей вероятности проект рабочий
Потому что когда они не сходятся — тут-то и начинается процесс отладки, чтобы по итогу проект соответствовал требованиям.
Поведенческая симуляция это сферический конь, который тебе разве что функциональное поведение верифицирует. А что на этапе синтеза, что на этапе P&R очень много чего происходит. Поэтому всегда полезно посмотреть и на нетлист, и на результаты трассировки.
Кроме того, "высокой вероятности" не всегда достаточно, если например это индустрия, где от корректности работы схемы зависят жизни. Или если это не очередное софт-ядро, а прототип будущей СБИС. Тогда результирующий дизайн под лупой изучают, после каждого преобразования
>Ну скажем не в плисину, а в цап. Да мало ли что ещё на плате с плисиной стоит. Да и сама железка в целом не в вакууме работает, тоже с чем-то взаимодействует.
Да, конечно. А ещё плисовику нужно схемы чертить в соответствии с ГОСТом, бегать с этими схемами собирать подписи, в том числе у представителя заказчика в погонах, потом в нормоконтроль выслушивать замечания. А ещё печатные платы разрабатывать. А потом ещё и в испытаниях по климатике и прочей ерунде поучаствовать...
Но бывает иначе, когда обязанности нормально разделяются.
Ну вот, и это в том числе. Не говоря уже об анализе решения для поисков потенциальных улучшений по топологии
Пиздец 60к это уровень разнорабочих на заводах, нет?
А как ты вкатился в Плис? Есть вышка по радиоэлектронике?
Как мне вкатиться без вышки на 900к/мес создание железа для дронов вс рф? У меня есть базовые знания физики, айти и математики, но много лет назад вылетел с физфака и больше в вуз не ходил. А еще у нас было вступление в радиоэлектронику, и как же меня ебала ебала с коллекторами, эмитторами и проч.... Вот хуй знает для чего нужен осциллограф, и зачем его используют... Все это нужно как-то выучить, чтобы 900к зашибать?
братан, что ж ты тупой-то такой, ведь можно просто записаться на курсы SkillBox "Разработчик дронов" и уже через месяц устроиться на стажировку за 200к/мес
Почти этим всем занимался. В целом с тобой согласен, однако в данном случае твоего сарказма не разделяю. Хочешь сказать что в ЦАП осциллографом тыкать должен не плисовик, а кто-то другой? И отлаживать работу изделия в составе комплекса тоже должен не он?
>>64706
>Пиздец 60к это уровень разнорабочих на заводах, нет?
Ну вот такие у нас за МКАДом з/п.
>А как ты вкатился в Плис? Есть вышка по радиоэлектронике?
Есть вышка по погроммированию. Теорию мне в шараге объяснили, но на работку пришёл вообще без опыта в плисах. Разбирался во всём в процессе.
>У меня есть базовые знания физики, айти и математики
Если хочешь плисоводом и мноха денех нужен ЦОС, всякие Фурье, фильтры, вот это вот всё. Ну и классическое программирование, хотя бы С/С++. И ещё вышка нужна хоть какая-нибудь, не важно какая, хоть по биологии. Без вышки продвижения по карьере нет.
>Вот хуй знает для чего нужен осциллограф, и зачем его используют
Из всего множества это самое простое для освоения. Разберёшься на месте.
Ежу очевидно сразу тебя на такую з/п без опыта не возьмут. Пойди плисоводом на минималку и если не дурак года за 3-4 разовьёшься.
>Как мне вкатиться без вышки на 900к/мес создание железа для дронов вс рф?
>Хочешь сказать что в ЦАП осциллографом тыкать должен не плисовик, а кто-то другой? И отлаживать работу изделия в составе комплекса тоже должен не он?
Когда-то я тоже думал почти как ты, но потом ушел из ссаного НИИ... Оказывается да, рабочий процесс можно поставить иначе, особенно когда проекты большие. Ты задумывался о том как происходит разделение обязанностей, когда над одной железкой работает сразу много плисовиков?
Хотя у меня сейчас своя специфика - перекладываю байтики в UDP пакетах, это больше способствует удаленной работе. Но и в области радиосвязи тоже подход аналогичен - куча людей пишут код, а только один все вместе собирает вместе.
>перекладываю байтики в UDP пакетах
>А ещё плисовику нужно схемы чертить в соответствии с ГОСТом, бегать с этими схемами собирать подписи, в том числе у представителя заказчика в погонах, потом в нормоконтроль выслушивать замечания
Плисотред - диалоги цензоров интернета с разработчиками оружия
Российского ПЛИС инженера без диплома престижного заморского универа никуда за границей не возьмут. Там и так очереди индусов за миску еды работать.
>Российского ПЛИС инженера
Чем он отличается от любого другого российского айтишника? Однако вся кремневая долина по-русски бакланит.
Не занимался таким. Но cpld это весьма мелкая по объему плис. CFI там может использоваться в основном только для того чтобы грузить FPGA покрупнее через CPLD. И у CPLD своя память внутри, если что, в отличие от FPGA.
По считыванию содержимого. Вероятнее всего у тебя там CPLD и FPGA включены по JTAG цепочкой. Для чтения потребуется Quartus II и byteblaster. Подтыкаешь бластер к jtag, запускаешь из квартуса programmer и нажимаешь в нем "auto detect". Должны отобразиться все микросхемы в jtag цепочке, вероятно отобразится и CFI. Если все успешно, то ставишь чекбокс "examine" напротив CFI и нажимаешь старт. Это все.
Забыл добавить, в cpld должна быть защита соответствующая прошивка. И если она вдруг слетела (хотя с чего бы), то ее необходимо вернуть.
>Как мне вкатиться без вышки на 900к/мес создание железа для дронов вс рф?
Да это же элементарно, братиш. Первым делом подписываешь контракт с МО РФ. Военкомат распределяет тебя в часть. В части, когда начинается обучение, говоришь "хочу делать дроны", тебя переводят на дроны — они сейчас везде используются и всем нужны, как и специалисты по ним. Старшие товарищи научат тебя ебаться с осциллографом, потому что других желающих этим заниматься немного, из пулемёта стрелять тупо проще.
Вы видите копию треда, сохраненную 12 октября в 18:09.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.