Холодный цифровой ПЛИС-тред. Продолжаем под кофе аутировать одновременно в несколько десятков сигналов на логическом симуляторе/анализаторе, гадая, где что-то пошло не так.
Как подключать кварцевый резонатор к ПЛИС? Именно резонатор, а не активный генератор. 74LVC1GX04? В чем разница буферизированный инвертор и небуферизированный инвертор? Для третьего пика module ClkGen(clkIN, clkOUT); input clkIN; output clkOUT; wire clkOUT; assign clkOUT = ~clkIN; endmodule
>>397766 (OP) Есть несколько мертвых девайсов с cyclone 3. Один не включается совсем, EP3C40F484C8N греется, жрет пару ампер, питание ядра просаживается до 1.1в. Чип под замену или возможно проблема где-то раньше в процессоре не загружающим в него конфигурацию? Со вторым сложнее, устройство включается и работает во многих режимах, но не работает часть входов а именно AES3 аудио. Все входные цепи - трансформаторы, mc3486 и куча lm358 непонятного предназначения уже менялись. Индикатор линка (вероятно что pll lock) загорается, но sampling rate не показывает, звука нет. Что стоит посмотреть прежде чем приступать к прожарке и замене чипов по 70 евро?
Помогите дегенерату. Использовал кабель xilinxовский, драйверы ставил по UG344 (шаг 5), и всё равно iMPACT отказывается его видеть. Уже неделю сижу, не понимаю, что не так.
2) После этого можешь начать какой-нибудь онлайн курс смотреть. Скачаешь IDE, симулятор какой-нибудь и будешь делать лабы. Здесь просто пиши исходники на VHDL, запускай и смотри результат.
3) Здесь уже можешь решить, что тебе интересно. Направлений много. Выбери свое и двигайся. На этом шаге ты уже будешь знать, что к чему.
Почему пикрил платы не пользовались популярностью? На первый взгляд вполне себе вариант для вкатывальщика и перекатывальщика. Чипы не самое дно, цена для нищуков. Что не так?
>>398628 Когда я на них смотрел (лет так 7-9 назад) — в районе $100 за плату, сейчас (у пары продавцов на алиэкспрессе) примерно $85/$58 (голая плата) - $134/ $111 (набор с какой-то фирменной хуйнюшкой в качестве отладчика — перевода с китайского не завезли).
>>398645 Я помню что её цена была значительно ниже, чем сейчас. https://www.ebay.com/itm/zaloopa/172259870747 Но поскольку мой кукарек беспруфный, то да, чот дороговато получается на данный момент (20$+15&+10(?)$ vs 90$)
>>399383 > Уже два года вкатываюсь, тоже что покупал пылится в шкафу. Пока периодически читаю тред здесь. Аналогично. Курсы Jack0v мотивируют + есть хоть и бредовая, но идея для проверки, а это значит что пора действовать, а не прочитал/послушал и забыл. Пока что застрял на таком веселом моменте как нужен отладчик отладчика для отладчика. Здесь нет ошибки. Отладчик для отладчика. Лол. Практически готов, успел одну флексину спалить. Иногда сосу хуй (пикрил), приходится что-то другое придумывать.
>>399422 Наркоман штоле? Чипы на алиэкспрессе это какой-то осбой вид извращений. Я не вижу оптовых партий этого чипа в этих ваших ентернетах. Покажи, что ли, охота на оптовую цену посмотреть.
>>399408 >Платиновый вопрос: а почему голый чип стоит больше 100$, а обёрнутый в кусок китайца стоит 66$? Пизженный скорее всего. Или демонтаж с плат с такими чипами.
Решил попрактиковать верилог и написать свой Z80. Тупой вопрос 1: Насколько глубоко нужно понимать процессоры? Достаточно ли знать систему команд и принципы работы АЛУ, или нужно что-то ещё? Тупой вопрос 2: Какой нужно брать ПЛИС? Сомневаюсь, что MAX3000A хватит...
>>400013 >Какой нужно брать ПЛИС? Сомневаюсь, что MAX3000A хватит... https://opencores.org/projects/a-z80 MAX сразу в помойку или на замену россыпчатой логики. FPGA минимум на пару тысяч LE и больше. Намного больше.
>>400040 Если делать спектрум целиком, то процессор может даже не самый объемный по занимаемым ресурсам. К примеру та же память, не будешь же лепить ее снаружи, когда ее в относительно дешевых FPGA и так хватает для спектрума. А если процессор почти без ничего, то почему именно Z80? Можешь посмотреть самые дешевые платы на циклоне 4 с алиэкспресса, на подобное вполне должно хватить.
>>400043 > К примеру та же память, не будешь же лепить ее снаружи, Честно говоря собирался... > почему именно Z80? Ну процессор середины 70-х, много где использовался, вроде как несложный сам по себе, имел море клонов. Стало быть, для начала сойдёт. Плюс спектрумы, есть вариант собрать-поиграться-вспомнить детство, speccy2010 ЧСВ не потешит :)
>>400063 Нет, он вовсе не такой простой. Например, чем 8-разрядный сумматор с последовательным переносом проще такого же 16-разрядного? Вот и с процессорами аналогично. Да и не так интересно процессоры делать, их и так полно готовых. Быструю свертку и то немного интереснее будет делать.
>>400129 Про точность до вентиля, у того анона естественно был бред, но совпадение по тактам разве не требуется?
>>400144 Элементарно. В качестве примера можно привести сумматоры, которые бывают с быстрым переносом, а бывают с простым последовательным. Посмотри хоть схему К155ИП3 (74181), можно сделать как там, а можно тупо отдельные сумматоры, инверторы и прочее через мультиплексоры и демультиплексоры. И так далее вся комбинационная логика и не только. В ПЛИС вообще на LUT-ах все делается, какие там еще вентили. На ПЛИС вообще нет смысла повторять такое как К155ИП3, из-за структуры ячеек.
>>397766 (OP) Други, нужно из частоты в 5 МГц получить 100 МГц (вероятнее всего должен быть умножитель на ФАПЧ). Какие ПЛИСины лучше под это дело взять?
>>400176 Именно под это дело бери Альтеру, Циклон 4 например, как там в 5 я не знаю, я с ним толком не работал, но по логике вещей должно быть лучше. PLL там хороша тем что очень точно могёт выдавать нужную частоту, с очень мелким шагом, вплоть до 3-х знаков после запятой, а может и больше. Спартан 6 в этом плане и рядом не валялся.
>>400147 Да причём здесь луты и внутреняя архитектура плис? Всё равно на верилоге всё писаться будет. Ну так чтобы мочь разработать свои сумматоры и прочее нужно, как минимум, в этом соображать. И второй вопрос, зачем пороть отсебятину, чтобы наделать там ошибок и потом 100500 часов сидеть их вылавливать? Не проще ли уже имеющуюся архитектуру как есть переложить на плис? Ну да, про "знать" это я немного не так сказал, нужно не знать, а понимать или смочь понять архитектуру с точностью до вентиля.
>>400186 Опять не соглашусь. Просто делаешь так, чтобы по тактам было не больше чем в оригинале, тем более что двухпортовая память FPGA в этом сильно поможет, после чего добавляешь дополнительные такты. Можно даже параметром сделать, либо быстро, но не совпадает по тактам, либо медленнее и совпадает.
>>400176 Первое - idt5v9885 с EEPROM для хранения настроек. Второе - Si5326 + тактовый генератор + еще один генератор на 114Мгц для очитки джиттера. Третье от анальных девайсов AD9518. Вообще - тысячи их. На любой вкус и цвет. Проблема в том что оно конфигурируемое и не все умеют в подсос конфига с внешней микросхемки памяти.
>>400220 >SI5351 Какой из? С буквой А не умеет во внешний тактовый сигнал (заявлено в условиях) в явном виде, нужен кварц. Версия С умеет во внешний тактовый сигнал.
>>400268 >Ну да, а всякие флаги, стеки и прочая срань, это не говоря о недокументированных функциях - как это всё? Флаги со стеками это по сути часть набора команд. Есть набор команд и набор регистров (доступных программно) с описанием их работы, то есть то, что в русскоязычной литературе называют программной моделью, а в англоязычной называют ISA. Среди набора команд есть команды, которые работают со стеком и есть команды, как-то взаимодействующие с регистром флагов. Делаешь все в соответствии с этой моделью и у тебя все работает как в оригинале, за исключением недокументированных команд, либо набор команд будет не от Z80. А недокументированные команды также все описаны. Не при чем тут эта структура "с точностью до вентиля".
>Тупой вопрос 1: Насколько глубоко нужно понимать процессоры? Достаточно ли знать систему команд и принципы работы АЛУ, или нужно что-то ещё? Правильней будет ответить, что требуется умение нарисовать схему процессора из одних NAND-ов.
>>400326 Допустим возьмем http://cs.istu.ru/index.php?project=asm&page=_theory_pacm_programmodel_ Перечисляются регистры, виды адресаций и прочее, далее, где-то в приложении, приведена таблица команд с описанием. И сравни это с определением ISA хотя бы из википедии. В ISA по любому должно входить описание доступных программно регистров и всего такого, то есть то, что написано в первом ответе по твоей ссылке. Так что это программная модель может быть частью ISA (если к программной модели не прилагается список команд с описанием), а не наоборот. Вообще какого-либо общепринятого стандарта на эти термины нет, поэтому ими могут называть несколько разные вещи.
>>400327 >Так что это программная модель может быть частью ISA (если к программной модели не прилагается список команд с описанием), а не наоборот.
>This section [programming model] normally presents the core registers of the processor, operating modes, endianness and the instruction set.
В "программной модели" описывают, что как используется, взаимодействует и вообще есть описание ISA: >>>400327 >далее, где-то в приложении, приведена таблица команд с описанием.
"programming model" - это описание более высого уровня абстракции и оно опирается на ISA (и часто содержит описание ISA в каком-либо виде, часто сокращённом).
>>400327 >(если к программной модели не прилагается список команд с описанием), а не наоборот. Без "списка команд" нельзя сделать програмную модель, потому что нужо опираться на что-то - это регистры, datapath, команды. Как ты представляешь програмную модель без этого?
>>400998 >CPLD-боярин Вот скажи в чем облажался >>399384? Три счетчика в сумме на 15 трипперов со входной логикой BIN-7SEG и сосу хуй при попытке впихнуть в MAX3064. Как так то? Изначально отладка шла во флексине с бесконечным ресурсом числа перезаписей в отличии от CPLD.
Анон, а какая сейчас FPGA самая большая (в плане количества вентилей) среди тех, с которыми можно работать, используя только попенсорс? То есть, чтобы не ставить никакого говна типа ISE, а получить из верилога битстрим, пользуясь только открытым софтом и видя, что там конкретно насинтезировалось.
Сильно ли сложно плисоведу вкатиться в цинк? Из задач к нему только реализация всяких сложных муторных для плис протоколов типа tcp/ip. Деньги не проблема если что.
>>401308 Если что - с тобой. То же интересно потыкать цинк палочкой для переката на их дешманские RFSoC. Платка от QMTech есть, клон platform cable на ft232H есть, какая-то блевада стоит. Максимум запускал штатную поставку. На этом пока все, поглядываю в Embedded SoPC Design with Nios II Processor and Verilog Examples от Pong P. Chu
>>401418 >Проц тоже через jtag Немного мутный вопрос - сейчас мало кто дебажит тяжелые ARM ядра особенно когда запущен Linux - отладчик не нужен, если только не упарываешься BareMetal. У Альтеры краем уха слышал можно через тонну анальных прог и освидетельствований дебажить ARM ядро синхронно и потактово с FPGA частью. Если не в падлу будет - попробую. Хоть и малоактуальный, но интересный вопрос.
>>398380 Тоже хочу вкатиться, другой анон. Harris&Harris прочитан, был курс в шараге цифровой схемотехники где на верилоге писал bcd в bin переводилку, архитектуры были, электродинамика. Так вот что дальше, есть какие то путные задачники по fpga? Или куда приебаться стажёром?
>>401633 Мнение мимохуя - попробуй упарываться Ethernet-ом. Максимально тупо https://marsohod.org/index.php/projects/94-ether-send или прилепить внешнее PHY по rmii или mii и тупо по UDP слать говно компу. Вот реально - самый конченный, тупой и дебильный вариант - это выставить MAC в FF (лучше хотя бы жестко прописать MAC приемного компа что бы не ебаться с ARP), IP адрес компа (или широковещательный подсети, но не стоит так делать), неизменный заголовок UDP (с одним и тем же портом назначения) и... Profit! Получил односторонний обмен на довольно хорошей скорости - под 100 мегабит (если использовать стандартные фреймы по 1.5К). Для отправки даже MAC корка не нужна - заранее подготовленный фрейм с преамбулой выдаешь по 2 или 4 бита за такт и соблюдаешь паузу между высиранием фреймов. Вот и все. Согласование скорости с PHY - пока забей хер. Ну вот где сейчас встретишь полудуплекс или те же 10 мегабит? 100 мегабит и фулл дуплекс. А там и на гигабит переедешь.
>>401639 >Ethernet-ом. Слишком сложно будет для новичка сразу погрузиться в протокол tcp/ip и код манчестр 2. Лучше пусть для начала соберет простенький УАПП. Поначалу будет слать байты, потом можно протокол какой-нибудь реализовать с адресом и аппаратной генерацией контрольной суммы. А потом уже можно браться за интернет и более сложные протоколы связи.
>>401675 >сразу погрузиться в протокол tcp/ip и Поосторожней на поворотах. Явно же описано что это (tcp/ip который реально сложен в отличии от UDP) нахуй не надо на первых порах, так как тупо скопировал заголовок из реального UDP пакета с контрольными суммами, где в поле данных дописывать свои данные ну и CRC фрейма что бы свич не отбросил фрейм как ошибочный, или класть хуй при прямом подключении к компу в выделенную сетевую карту и wireshark покажет приниятые битые фреймы. >код манчестр 2 Вдвойне нахуй эти анальные утехи. Сейчас такой херней никто не страдает, потому как ставится специальные Ethernet PHY для "низкоскоростной" меди/оптики с подключением по хxxMII, при подключении только оптики - высокоскоростные SERDES и прямое подключение к SFP модулям. Можно доебаться про 10G PHY которое делит/собирает линк на 4 по 2.5G для использования менее скоростных SERDES в ПЛИС.
>>401700 >Нахуа? Комп отлично принимает и чистый езернет. Не могу не согласиться, но для таких довольно низкоуровневых работ нужно больше прав, чем у обычного пользователя и далеко нестандартный софт. Прилепив UDP с портом больше 1024 - уже из пользовательского пространства можно подключаться к сокету и слушать его. Про винду не знаю, в unix - через программу nc открыл сокет и как минимум можешь спокойно дампить содержимое в файл, перенаправлять по конвейеру в другие программы. Для отладки на ПК - ни строчки кода не писал, только штатные утилиты. Ну и tcpdump в помощь при особо тяжелых случаях.
>>401700 >ARP >Он вообще тут не причём. Ты из ПомогиТупомуУстроиться? Расскажи что делает ARP и потом продолжим. O RLY? Как на канальном уровне будешь до компа доставлять бурлящие потоки говна? Ебанешь броадкастом что бы прям все знали что кто-то пытается просраться? Поэтому и писалось - прибить гвоздями МАС адрес компа чтобы не задристать всю сеть. На первое время, а не на постоянку - крайне порочная практика
>>401712 >Ты из ПомогиТупомуУстроиться? Расскажи что делает ARP и потом продолжим. Ну так я и говорю что без использования TCP/IP никакие ARP не нужны. Всё происходит на уровне МАС-адресов. А как его узнать - ну так первое время не надо в сеть выходить. Соединил плисину с ПК витой парой на прямую и радуйся жизни. На первое время этого более чем достаточно.
>>401639 Если делать что-то, управляемое по Ethernet, проще делать это сразу с помощью готового стека протоколов на nios и готового ядра типа triple speed Ethernet. У интела на сайте куча примеров, тот же simple socket server (https://fpgacloud.intel.com/devstore/platform/15.1.0/Standard/nios-ii-simple-socket-server-ethernet-example-for-cve/), изменил под себя и уже срешь в сеть полноценными пакетами. Но для этого нужна более жырная ПЛИС, ну и дополнительная плата с Ethernet PHY и трансформатором. У нас были задания сделать антидребезг на кнопку, поебаться с датчиком по spi/uart, потеребить энкодер, сделать АЦП последовательного приближения на внешних компараторе и цап-царапе на r2r цепочке, можно ещё осциллограф/генератор на внешнем АЦП/ЦАП сделать, но это дольше и дороже. А вообще, все зависит от области, куда хочет вкатиться анон - интерфейсы, цос, вычисления, измерения, etc, областей работы плисоконтор в его городе и железяк, которые у него есть.
С XADC кто-нибудь работал? Нихуя что-то не понял как по схемотехнике к нему завезти 16 каналов правильно. И как оно будет работать на 5в, если банки плисы подведены к 3.3?
Братишки поясните за speed grade у Хилых? Я представляю что это некоторое усреднённое значение быстродействия кристалла, но хотелось бы конкретики. 2 по скорости выше чем 3? Сильно сосну, если вместо 3 возьму 2?
>>402405 Попробуй как у Altera - где-то под конец даташита есть табличка где написана максимальная частота для каждого спидгрейда. Имеющееся говнецо SL200C3 почти самое быстрое в серии.
>>402423 А впрочем, вру. Это в Яндексе нашлось. Его тоже стоит использовать, если хочешь что-то платное бесплатно найти. Эх, ещё в китайнете много годноты, вот прямо очень много, но там везде нужен китайский телефон и китайская платёжная система. Хоть в Китай едь на их форумах регаться.
Чем зайлинксовский прожигатель за 40к₽ отличается от китаеподелия с латисом? А то на прошлой работе особо не успел протестить, а текущий всем устраивает.
Есть у него, конечно, важное преимущество: всю уёбищность симулятора вивады дл SV, написанного потными индусами из колл-центра как прошивка от Боинга, который неспособен адекватно обрабатывать "<=" внутри классов и интерфесов, которые приходится из-за этого обмазывать омерзительными костылями уровня "менять сигналы на posedge, считывать значения по negedge", за которые в обычном верилоге я бы давно уже сделал судоку, которые стыкуются через интерфесы с обычными синтезируемыми модулями, где всё, естественно, делается исключительно по posedge — всё это говно можно инкапсулировать в класс driver и делать вид, что там ничего этого нет, перекидывая байтики в виде объектов на более высоком уровне абстракции.
Почему не пользуешься бесплатным модельсимом? Есть у меня подозрение что ты не очень понимаешь таймслоты симулятора если у тебя беды с присваиваниями в классах. У меня у студентов такая ошибка частая (гонки сигналов, приемник принял сигнал раньше чем передатчик его отправил в тот же такт)
>>403287 >Почему не пользуешься бесплатным модельсимом? Сижу на виваде, начал с того, что есть в ней.
>Есть у меня подозрение что ты не очень понимаешь таймслоты симулятора если у тебя беды с присваиваниями в классах. У меня у студентов такая ошибка частая (гонки сигналов, приемник принял сигнал раньше чем передатчик его отправил в тот же такт) Да я как бы не первый день замужем, знаю, чем блокирующие присваивания от неблокирующих отличаются. Вот проблема, ужатая до самого минималистичного варианта, счётчик + интерфейс с шиной и парой сигналов ready/valid: https://pastebin.com/6ASBKYRD
В драйвере в цикле ждём валидную транзакцию posedge iff (ready && valid) и устанавливаем для data следующее значение. На 1.png видно, что симулятор сперва меняет значение ready, потом читает его и обновляет data, хотя ready присваивается через <=, и на фронте клока, по идее, должно действовать старое значение. С valid всё норм, так и происходит..
Один вариант костыля: сделать присваивание ready с задержкой через <= #1, чтобы значение менялось гарантированно после posedge clk. Работает (2.png), но этот костыль совсем уж кривой.
Другой вариант костыля: читать внутри драйвера значения по negedge, менять по posedge. Работает и приемлемо выглядит (3.png), пока остановился на нём.
>>403353 Нужен лицензионный файл, в который прописаны все нужные корки. Если квартус пропатчен, то можно просто скопировать какую-нибудь строку (например, с лицензией на сам квартус) и заменить там название feature на нужное тебе (только важно его выяснить - например, узнать у кого-нибудь на форумах или посмотреть в настоящий лицензионный файл, если есть возможность).
>>405131 Унарный оператор - это оператор, который работает с одним операндом. Оператор редукции принимает один операнд, а не два и не три, поэтому он унарный.
Операторы с двумя операндами - бинарные. С тремя - тернарные. ТАкие дела.
>>405134 >>405134 >Операторы редукции работают с каждым битом на шине как с самостоятельным операндом.
Ещё раз повторюсь, оператор редукции принимает один операнд. Значит это - унарный оператор.
А то, что унарные операторы могут принимать (в общем случае) значения разных типов и если принимают сложные (составные, вроде вектора) типы, то это никак не делает из унарного оператора неунарный. Так же как работа бинарного оператора И над двумя векторами не делает из бинарного оператора небинарный.
>>405132 >>405134 Вот вы шизоиды. Это разные классификации. Унарные, бинарные, тернарные - по количеству операндов. Операторы редукции выдают результат по разрядности меньший чем исходные операнды. Редукция == понижение (разрядности).
Моделсиму не нравятся присвоения значений к регистровой переменной в cаse, выдаёт ошибку * Error: ../#SRC/Zhopa.v(8): (vlog-2110) Illegal reference to net "DataBus".
Хотя Квартус и компилирует и моделирует нормально. Чё за нах?
>>405375 Да, но почему в Квартусе он может быть reg, а в Моделсиме не может? Я знаю, можно написать по типу assign inoutvar = (expression)? (true_value_expr) : (false_value_expr); Но дело в том что условие переключения намного сложнее чем в примере и писать его потоковом способом чёт не хочется.
>>405421 >Да, но почему в Квартусе он может быть reg, а в Моделсиме не может? Потому что если чего-то делать нельзя, то "правильного" поведения в этом случае нет, кому как нравится, тот так себя и ведёт, в том числе от версии к версии. Если рассчитывать на какое-то определённое поведение в этой ситуации, то можно очень легко выстрелить себе в ногу.
>>405540 Ну так неопределённое поведение возникает как раз тогда когда в стандарте есть недосказанность. Да и индусы скорее что-нибудь забудут, нежели напишут что-то сверх нормы.
>>405568 >Да и индусы скорее что-нибудь забудут, нежели напишут что-то сверх нормы. Можно забыть написать проверку на допустимость входных данных, и начнёт работать код, который с ними работать не должен и не предназначен. В каких-то случаях он даже может давать осмысленный результат, но это лотерея.
>>405610 Не "чисто случайно отсинтезировал нужный код", а использовал работающий код для данных за пределами области, где подразумевалась корректная работа. А надо было написать проверку пределов.
>>407343 > Я хочу в одном файле описать все входы и выходы. А в остальных уже писать основной код. But нахуя? Или ты имеешь в виду модуль для верхнего уровня, где нет ничего кроме связей между отдельными частями (каждая вынесена в отдельный модуль)?
>>397766 (OP) Какова сфера применения ПЛИС? Только цифровая обработка сигналов по 10 каналам одновременно и вычисление каких-нибудь оверсложных алгоритмов кодирования типо CRC-256 в одну микросекунду? Может ли ПЛИС заменить МК, чтобы на него написать довольно сложную программу с кучей внешней перифирии и библиотек для работы с ними, как на атмегу или стм32? Вариант, когда на ПЛИС в несколько сотен тысяч ячеек создают простенький МК типо attiny13 не рассматриваем, понятное дело, что это делают плисоводы только для того, чтобы выпендриваться между себе подобных и на практике это не применяется.
>>407592 >понятное дело, что это делают плисоводы только для того, чтобы выпендриваться между себе подобных и на практике это не применяется. Лол.
Погугли microblaze или nios ii. Самый что ни на есть продакшен. Именно для этого они и используются — куча периферии, сложная программа с кучей библиотек. Плюс ещё какая-нибудь частная задача, которую не сделать на микроконтроллере, и поэтому надо городить плис (видео 4К, управление по 100 линиям без задержек, числодробление).
>>397766 (OP) Анон, поясни за PLL. Вот у меня есть Cyclone 10 LP 10cl006YU256C8G, тактируется кварцем 50мгц. Я что, с этим PLL могу завести NIOS 2 на 400мгц?
>>407632 Ты сможешь вытянуть из PLL сколько захочешь в его рабочем диапазоне, но ты не сможешь тактировать логику быстрее, чем сигналы в ней проходят от регистра до регистра (время прохождения зависит от реализуемой схемы).
Точнее, теоретически сможешь, но тебе это не понравится.
>>407596 >Именно для этого они и используются — куча периферии То-есть на мощном FPGA можно одновременно играть в змейку на TFT-дисплее, записывать файлы на юсб-флешку и заходить с браузера на него через lan-кабель? >сложная программа с кучей библиотек. Аноны выше наоборот говорят, что это плохо, надо всю программу ПЛИС писать в одном файле. >>407396>>407484
>>407645 >Аноны выше наоборот говорят, что это плохо, надо всю программу ПЛИС писать в одном файле. Ты, долбоеб блять, речь шла о том, чтобы не писать входы и выходы модуля в отдельном файле.
>>407645 >То-есть на мощном FPGA можно одновременно играть в змейку на TFT-дисплее, записывать файлы на юсб-флешку и заходить с браузера на него через lan-кабель? А ещё слушать SDR-радио, замутить клон денди, спектрума, запустить сразу 100500 uart/spi/i2c-трансиверов, ethernet, pci-e и много ещё чего. И всё это будет работать сразу и одновременно в одном кристалле.
Есть тактовый генератор 50МГц. Нужно сформировать 2 сигнала: 10КГц и 10КГц + 10% (т.е. 10000Гц 0,1 + 10000 = 11000Гц). 10КГц получаю на счётчике, который считает от 0 до 4999, т.е. период его работы 5000 тактов (50 000 000 / 10 000). Теперь посчитаем период счётчика для сигнала 11КГц: 50 000 000 / 11 000 = 4545,45(45) тактов. Но теперь, для сигнала 11КГц, попробуем посчитать по другому: 5000 + 10% = 5000 - 5000 0.1 = 4500 тактов. 4545,45(45) первым способом vs 4500 вторым. Я дурак и чего-то не понимаю. Откуда вылезла разница в 545 тактов?
>>407936 Ебучая макака. Ещё раз с учётом разметки. Есть тактовый генератор 50МГц. Нужно сформировать 2 сигнала: 10КГц и 10КГц + 10% (т.е. 10000Гц х 0,1 + 10000 = 11000Гц). 10КГц получаю на счётчике, который считает от 0 до 4999, т.е. период его работы 5000 тактов (50 000 000 / 10 000). Теперь посчитаем период счётчика для сигнала 11КГц: 50 000 000 / 11 000 = 4545,45(45) тактов. Но теперь, для сигнала 11КГц, попробуем посчитать по другому: 5000 + 10% = 5000 - 5000 х 0.1 = 4500 тактов. 4545,45(45) первым способом vs 4500 вторым. Я дурак и чего-то не понимаю. Откуда вылезла разница в 545 тактов?
>>407936 >Но теперь, для сигнала 11КГц, попробуем посчитать по другому: >5000 + 10% = 5000 - 5000 0.1 = 4500 тактов. А если 5000 + 100% (в два раза большая частота), то = 5000 - 5000 * 1.0 = 0 тактов?
Хотел посмотреть уроки по логическим элементам, но не могу скачать софт Quartus II Web Edition v9.1 для линукс или сборка для виртуальной машины, или уже вместе с sp2. На интел регистрация вплоть до телефона, которого не имею. Есть ли альтернативные источники для загрузки?
>>410134 >>410130 Запутался, раньше пробовал сделать так: >assign X = (A && B ) || (!A && !B) И не работало корректно, а сейчас попытался, и все хорошо работает. Возможно, я не привык еще с моделсимом работать, и он как-то запоминает прошлые симуляции. >assign X = (A & B) | (~A & ~B) Звучит логичнее, я ведь получу как раз 4 бита. Сейчас еще поковыряю, спасибо, аноны. Эта результат симуляции для девайса, который сравнивает 2 числа
>>410137 Да, я проебался в симуляции. На первой картинке результат симуляции при assign X = (A && B ) || (!A && !B). На второй при assign X = (A & B) | (~A & ~B). Все работает хорошо. Еще раз спасибо. Алсо, пожалуйста, посоветуйте какой-нибудь проект для нуба, чтобы поковыряться и освоиться.
>>410141 >Алсо, пожалуйста, посоветуйте какой-нибудь проект для нуба, чтобы поковыряться и освоиться. Его не существует. Делай любую, даже бредовую идею и получишь намного больше опыта и практики. Можешь начать с клонов ретрокомпов в FPGA. Думаю попробовать написать максимально тупой конечный автомат для приема-отсылки данных по UDP без использования корок. В качестве phy - бомжевская lan8720 по rmii.
>>410169 >Как у тебя с высшей математикой (в частности — многочленами над конечным полем)? Охуенно. Я не вычислял многочлены над конечным полем уже двадцать минут. Пойду повычисляю.
>>410144 >приема-отсылки данных по UDP без использования корок. В качестве phy - бомжевская lan8720 по rmii Держи в курсе если что. У меня отладка на этой фихе тоже валяется, накупил их по 300 рублей.
>>410214 На ночь глядя не понял прикола - явно что-то со страпончиком связано. Просто подав питание - ловит линк, а воткнув в плату и подав тактовый сигнал - уже нет. Может конфликт с txen от weak pullup. Как разберусь - сигналтапом подсмотреть фрейм и синхрозаголовок фрейма и можно думать как действвовать дальше
>>410214 Походу да, TXEN ебал мозги, но это не точно. Как-то запустил что от мимо пролетающей мухи дохнет, главное снял данные сигналтапом. Добро пожаловать в декодирование фрейма и маков.
>>410214 Покажи отладку если она с FPGA? Если просто модуль с 8720 - то не интересно, можешь не показывать. Таки да - TX_EN посадил в 0 - получше стало и соснул хуйца. На самой платке с FPGA есть генератор на 50 МГц и если их гнать через FPGA на выход и тактировать 8720 - сосу хуй может звон-отраженка от пустой линии до снятого генератора и как не перезагружай, дергая reset - ей похуй. Вернул в зад генератор - заработала намного стабильней. assign Z = swap ? data[7:0] : data [0:7] Вспоминая защиту от прострела ноги становится грустно что надо руками слеивать по биту.
>>410572 Когда нужно - можно назначить передачу данных как есть или поменять порядок бит. Не пытайся отсинтезировать - будет ошибка, Verilog явно запрещает такое делать. Например было 10101010 станет 01010101 или же 11001001 и станет 10010011.
>>410250 > если их гнать через FPGA на выход Для этого не каждый выход годится, ты же в курсе, да? Плюс Ethernet требует частоту +-50 ppm, а генератор на плате небось самый дешевенький.
>>410586 Использую что было - а там хуй тебе, а не PLL OUT. Там даже кнопки повесили на тактовые входы. http://www.alinx.vip:81/ug/AX4010_UG.pdf Нашел какую-то железку с STM32 с микропитоном + RMII PHY где снял дамп пинга - вижу прием и передачу фрейма. Уже есть где подсмотреть несколько вариантов передачи и как писал анон выше - посмотреть латентность от CRS или TX_EN до первых битов данных преамбулы. Сколько говна вручную разбирать у тестового фрейма и через mif "заливать" фрейм в память для тестов CRC которая как-то через жопу считается.
>>410086 Сдвиговый регистр даёт псевдослучайное значение относительно предыдущего, т.е. последовательность значений после запуска будет каждый раз одна и та же. А вот как получить рандом при каждом запуске? - вопрос!
>>411678 >А вот как получить рандом при каждом запуске? - вопрос Помню у меня автомат-десериалайзер от наводок на неподключенный разъем генерил просто рандомные значения.
P.S. Ну или можно забить на случайность начального значения и не париться, как в этом генераторе гауссовского шума (там ГСЧ сделан на трёх 64-битных сдвиговых регистрах): https://opencores.org/projects/gng
>>411947 Не утверждаю, но в этом случае выкинь в помойку. MAX3000 "4.5–ns pin–to–pin logic delays with counter frequencies of up to 227.3 MHz" Измени Альтере и возьми конкурента ispMACH 4000V/Z от Салата https://www.latticesemi.com/en/Products/FPGAandCPLD/ispMACH4000VZ "operate at SuperFAST™ frequencies of up to 400 MHz." Только вот хуй ты просто так 400 МГц (или даже 200Мгц) загонишь в single-ended режиме.
>>411952 Ничего. Только потом не ной тут что забил на согласование и у тебя все звенит, большая погрешность, вообще не считает и прочее, амплитуды нехватает на тактовом входе, у соседа снизу в коронках начал играть Rammstein и прочие бредовые последствия. Глянь сюда - тут рассматривается частота в 1 мегагерц и из какой полосы частот он состоит https://www.youtube.com/watch?v=fCbAafKLqC8
Радиотехники, мне нужна помощь, от электрики я далек. Ситуация следующая: имеется вибронакидка на кресло купленная на али, у нее есть пульт на проводе в котором перегревается транзистор uln2003apg и выходит из строя. В первый раз он сгорел и я купил на али их, перепаял в сервисе, но он опять стал перегреваться и глючить, на каких то режимах работал, а на каких то сильно грелся. Как быть, по новой припаивать опять все повторится, мб другой транзистор нужен чтоб не перегревалось или еще как то можно выйти из этой ситуации? Знал бы что такая параша китайская не стал бы покупать, но отзывы вроде все норм были, потом наверно у всех так же погорело.
>>412035 А, знаю, это называется затравка. Но откуда берут её? В персональном компуктере её роль выполняет системное время. Но в МК такой способ не прокатит, ибо после запуска все счётчики обнулены и если через какое-то определённое время нужен рандом, то и счётчики, запущенные на старте, к тому времени будут иметь каждый раз одно и тоже состояние.
Поясните максимально просто как работает FIR фильтр, и как его реализовать на ПЛИС. У меня есть АЦП, ЦАП 10 бит примерно 48 килосемплов, хочу, допустим сделать LPF, но я нихуя не понимаю как оно работает. Читал, ничего не понял, типа есть память, с семплами инпута, которые перемножаются на коэффициенты, а потом складываются. Чиво блять. В матлабе знаю как вычислять коэффициенты, но не знаю куда их засунуть, чтобы работало. Вот на картинке x(n) это номер семпла или чего?
>>412135 Вот тебе схема, которая пиздато ложится в ПЛИС. Здесь X - это входные сэмплы, в твоем случае которые падают с АЦП. Прямоугольники - это триггеры, образующие конвейер. По этому конвейеру твои сэмплы двигаются. Пришел новый - протолкнул старые, сдвинул конвейер.
>>412198 Я так понимаю каждый семпл умножается на каждый коэффициент, а потом результат умножения суммируется? Всё равно не понимаю. Я тупой. Допустим у меня фильтр 10 порядка, это надо десять умножителей. Пришел семпл, сразу умножился на все 10 коэффициеетов и высрался в общий регистр, с которого уже можно подавать на ЦАП. Так?
>>412135 > FIR КИХ > сэмплов отсчётов > LPF ФНЧ > сэмплами отсчётами > инпута входными Отчёты сигнала умножаются на коэффициенты фильтра и складываются. Что такое z-преобразование и z в минус первой степени ты наверное знаешь.
>>412217 Спасибо за урок русского языка. >>412198 Давайте ещё раз для дауна, на пальцах.
>Отчёты сигнала умножаются на коэффициенты фильтра и складываются.
Допустим поступил один отсчет сигнала, его исходное число умножается на все коэффициенты или результат умножения на первый коэффициент умножается на следующий? Второй вариант, думаю, не имеет смысла, потому что на выходе будет пиздецки большое число, поэтому остается первый вариант. Дальше, все результаты умножения исходного отсчета складываются вместе. Не понятно как запилить такой конвейер. Алсо, схема должна работать оче быстро, чтобы перемножить всю хуйню до поступления следующего отсчета. Извините, я просто математику не знаю она доставляет мне боль.
process begin wait until(clk'event)and(clk='1'); if (h_compteur ="1100011111") then --799 h_compteur<="0000000000"; else h_compteur<=h_compteur + "0000000001"; end if;
Вот где h_comyeur + "000000001" мне выдает ошибку:
Error (10327): VHDL error at VGA_controller.vhd(31): can't determine definition of operator ""+"" -- found 0 possible definitions
Можно ли в quartus 9.1 запустить симуляцию (используя файл текстовых векторов) без modelsim? Есть модуль 4-х входового xor, есть модуль теста для него, и есть текстовый файл с описанием всех состояний. Как это запустить теперь на симуляцию?
>>412580 >4-х входового xor Да проще заново от руки нарисовать, всего 16 комбинаций, к тому же там есть функции для автоматизации рисования входных последовательностей. https://youtu.be/4be1In4xArk
Какую отладочную плату купить, чтобы можно было проверять в ней задачи из книжки Харриса после симулятора? Может какую-то из марсоходов? Желательно, чтобы там периферия еще была (светодиоды, семисегментный индикатор, кнопка).
>>412779 Зависит от твоей подготов_очки. Если адовый задрот, любишь лотереи и есть время - пиздуешь на ебей-лохито-другое ищешь по словам "for chip recovery" и подобным минимум лот с минимум 2 одинаковыми железками. По большей части это все полностью живое оборудование и можно узнать его историю у продавца. Одну потрошишь на органы и срисовывание топологии + получаешь ЗИП на случай если выставишь подключать неиспользуемые выводы к земле или еще какими методами спалишь выводы. Получаешь емкие FPGA(на сотни тысяч LE) с расчитанным питанием и тактированием + обычно периферия типа динамической ОЗУ и специфичное под данный проект. Profit! Брат жив, зависимость есть. Мигалка светодиодом работает.
>>412814 Насколько я помню, в книге строят процессор, но сколько там задействуют LE я не знаю, не дочитал. Этот камень на плате имеет 10к LE, самое то для поиграться, но залезет ли туда проц из книги, не знаю. Сам такую отладку брал, только без перефирии, пробовал NIOS II, камень греется даже от мигалки свктодиодом на Си, поэтому забил на это дело. Алсо, никогда не использовал даже 1000 LE в своих проектах, простор есть. Но вообще на open cores есть много самопальных процессоров, думаю найдешь чего для изучения под эту борду.
>>412820 >Насколько я помню, в книге строят процессор, но сколько там задействуют LE я не знаю, не дочитал. Ну на однотактный хватит, но там есть и задания на самостоятельную разработку ковейерного процессора с разными степенями сложности hazard-блока, от сброса конвейера до предсказания ветвлений, разработку кэшей.
>>412820 >пробовал NIOS II, камень греется даже от мигалки светодиодом на Си WAT? Не шутишь? Насколько греется? У меня логики одного конченного автомата на полтысячи+ регистров, не тактируемых постоянно - не греется (или еле заметно) при тактировании на 30-40МГц. Stratix III - даже без конфигурации начинает заметно греться, а залив ту же конфигурацию конченного автомата - за пару минут разогревается вместе с радиатором что становится горячим независимо от того - работает автомат или нет. Настройки выводов проверял - стоят "input tristate with weak pullup"
Аккуратнее с программатором - я взял дешевый usb blaster на stm32, он при обнаружении квартусом бсодил комп (win10 x64 1909). Хотя из виртуалки с виндой/линуксом работал норм.
Взял какой-то за 1.5к на cpld+ftdi, этот норм работает.
>>412868 Смотря что рисуешь. Если всякую херню типа мигалок светодиодами - да, как угодно. Если подключаешь память - то лучше следить за группами выводов, где не на каждый можно вывести бит линии данных, особенно у DDR памяти. LVDS - неделимые пары и должны вестить максимально симметрично. Есть эмуляция LVDS где нужно ставить 3 резистора. Не проебывать тактовые входы и выходы - это очень важно! Не забывай про то что есть много банков питания, могут быть разные напряжения и типы сигналов. Например если используешь LVDS - считай весь банк проебал, даже если тебе надо всего пара линий. Где-то можно найти что если у тебя очень много быстропереключающихся сигналов - то использовать не более 80%(не помню) выводов в банке и прочие мелочи. А вообще - лучше вначале примерно накидать проект, синтезировать и посмотреть что будет.
>>412868 В составе OrCAD есть FPGA System Planner. У Ментора тоже есть тул, не помню, как называется. У них есть базы по всем современным ПЛИС (Altera, Xilinx, Lattice точно есть, насчёт остальных не знаю). Там ты можешь оттрассировать плату, учитывая особенности используемой ПЛИС (назначение тех или иных её пинов, банки и т.д.) и потом экспортировать полученную распиновку у Quartus/Vivado. Если интересует, могу выложить RAK от Cadence по FPGA System Planner.
>>412901 Тут дело такое: в двух словах не объяснить, а за тебя делать никто не будет. Попробуй сделай сначала свой тетрис на С, а потом уже готовый и отлаженный алгоритм переложи на схему - управляющий автомат, исполнительные устройства, все дела.
>>412951 >KiCAD Голосую. Такую херню рисовал и когда получилось 2 FPGA по 484 вывода с плавным переходом на FPGA на 1К+ выводов стало ясно что какую-то несусветную хуйню рисую и надо переделывать. Пока делалось - уже стало неактуальным. Вот фейл.
>>412839 Греется довольно сильно, а поскольку у меня камень в БГА корпусе, я его долго не держал. Если читнуть форумов по запросу в гугле "греется ПЛИС", то можно сделать вывод, что это какой-то ебаный рандом. Как-то читал, у парня два одинаковых камня, на разных устройствах, выполняющих одну работу грелись по разному. Видимо брак, или типа того.
>>413022 >и качать оттуда В итоге я проебся с импортом компонента пол часа и соснул. Это же какая-то противоестественная хуета! Футпринт отдельно, символ отдельно. Чо за ёбань? Нахуя вы советуете это говно народу? Орел на три порядка адекватнее этой опенсурсной поделки
>>413026 а ничего, что у одной микрухи может быть несколько корпусов? алсо, попробуй диптрейс, он не настолько мозговыедающий но без нормальных тулз под дифпары, пичалька
>>413087 В игл уже завезли ratline и рисование дорожки до тех пор, пока не ткнешь в пин? Когда я его смотрел, рисование платы отличалось от рисования линией в паинте только наличием сетки и проверкой по схеме
>>413009 С любой прошивкой греется? Может, статика? Защитные диоды на i/o, идущих наружу, есть? Отлаживал как-то плату с 5ceba4, уронил pls на резистор обратной связи питальника ПЛИС. Часть обвязки сгорела, сама ПЛИС запускалась, даже nios стартовал, но несколько пинов выгорели и она сильно грелась, пришлось менять. В норме с озу и ethernet была чуть теплая.
>>413099 >несколько пинов выгорели и она сильно грелась Лал. У меня такой же фейл был когда спалил одну FLEX, замкнув или -5 или -12 (отрицательное напряжение) на один из выводов. Без конфига - все норм, только заливаешь конфиг - почти в утюг превращается и частично работает.
>>412976 Нет, ментор - это совсем серьёзный бизнес, мало кто из мамкиных инженеров его использует (из-за сложности, а также из-за отсутствия в свободном доступе документации). Готовые библиотеки есть, но они продаются за деньги. Есть библиотека Optimus (где есть основные пассивные компоненты, а также некоторые часто используемые транзисторы, диоды, микросхемы и т.д.), но её ты уже наверняка видел. Более того, у него проблемы с ГОСТовскими шрифтами и в некоторых местах (например, в МЦСТ, когда я там работал) на них клали болт. Сам решил в своих проектах не мучиться с ментором и поставить OrCAD.
>>412976 Да, LP Wizard/ipc7351 land pattern creator (есть в pads/ee), можно найти/рассчитать посадочные места для почти всех корпусов, ещё можно экспортировать в оркад/аллегру/etc. Ещё на snapEDA куча всего, но там встречается говно, надо внимательно проверять. Кстати, в оркаде можно создавать компонент (УГО) из таблицы (New component from spreadsheet). Берешь таблицу с распиновкой ПЛИС и раскидываешь выводы по частям УГО и их сторонам, как тебе удобно.
>>413251 Я так понимаю, он именно про создание символов. Потому что создание посадочных мест по сравнению с созданием и правкой символов на несколько тысяч пинов - ерунда (распространённые есть в базовой библиотеке, остальные - да, LPWizard, про который все знают). >Кстати, в оркаде можно создавать компонент (УГО) из таблицы (New component from spreadsheet). Берешь таблицу с распиновкой ПЛИС и раскидываешь выводы по частям УГО и их сторонам, как тебе удобно. Не особо удобно переделывать каждый раз. Лучше таки освоить FPGA I/O Optimizer (если Mentor) или FPGA System Planner (если Cadence). Там как раз можно сначала оттрассировать наиболее подходящим образом, а потом отправить уже получившуюся распиновку в САПР для ПЛИС. И эти тулы ставят пины не абы как, в них есть база ПЛИС и выбор пинов идёт исходя из особенностей используемой ПЛИС. Т.е., память получится поставить только туда, куда её можно поставить, трансиверы, тактовые входа - аналогично.
Сап, надеюсь, здесь есть драйверописцы. Сейчас делается устройство на плис, которая делает расчет и формирует инфу, ну хз, 10 4б слов. Связанную инфу, это всё поля одного свойства. Как лучше сделать регистры чтения? Первый вариант: (размер регистров пусть 4б) 10# регистров, содержащие нужные поля, а регистр статуса - счетчика, показывающий глубину ФИФО данных, декрментируется только тогда, когда будут прочитаны все 10 полей. Если одно поле прочитать дважды, то на второе чтение будет та же инфа. Второй вариант: хранить в одном регистре данных всю сериализованную инфу, и получается, счётчик декрментируется только через 10 считываний из этого единственного регистра.
Первый вариант мне кажется наиболее предпочтительным, так как хорошо ложится на любой ДМА, но я опасаюсь, не будет ли коллизий или какого-то такого говна.
>>413637 Axi4 stream похож на сериализатор данных, а я спрашивал больше о полной организации внешних регистров в плиске. Вероятно, axi4 stream и будет стоять. А как оно будет дружить с pcie?
>>413644 >а я спрашивал больше о полной организации внешних регистров в плиске. Родина дала тебе готовое решение с счётчиками, флагами и прерываниями. Не нужон этот полный регистр, диды акси фифо использовали и ты используй. >А как оно будет дружить с pcie? Так же, как и любая лежащая в памяти инфа, которую можно вычитать процессором или на которую можно натравить DMA.
>>413645 >В чем фейл???? Камень автодетектом видит? Сам ебусь третий день, нихуя понять не могу. Пытаюсь разлочить свои залежи ЕРМ3032, сжег два буфера 244 в бластере, поотслоились дороги и сижу теперь жду новый от китайцы. За 1800 в терре покупать чота неохота.
>>413646 А если там 10 интов? В документации вроде ограничивается размером акси, для лайта это только 32 бита. Как связанно передавать несколько интов тогда? Или иметь фифо под каждые данные, тогда придется как-то хуево синхронить их
>>413637 А если я хочу кастомный протокол поднять поверх распространенного интерфейса (i2c, spi например), что-то такое могу использовать? А то на квартусе всегда сам писал контроллеры/драйверы, а в вивадо вроде что-то удобное есть.
>>413675 Естественно, есть контроллеры i2c и spi с готовыми драйверами (которые делают элементарные пересылки) и примерами. Пишешь обёртку вокруг xilinx'овых драйверов и гоняешь что хочешь. Мне казалось, это везде так, уж как минимум по такой стандартной хуйне (сам имел дело только с Vivado и ISE).
>>413678 1. Ну вроде да 2. Ага, софом. Что самое удивительное, у меня есть тестовый соф файл, он без проблем заходит, а вот мой vga контроллер не хочет
>>413689 Васянокод исполняется на Microblaze и дёргает функции из драйвера от xilinx. Драйвер от xilinx через axi lite ебёт регистры контроллера, контроллер гоняет байтики по своему соответствующему интерфейсу. Может, я тебя неправильно понял просто? По крайней мере, AXI streaming FIFO — он именно про это.
>>413698 >Microblaze Ну это не очень эффективно будет. Я то на Vhdl пишу. Могу кастомно настроить cpol, cpha и саму частоту (чего в драйвере не увидел). И тайминги вплоть до наносекунд просчитать. Нет каких-нибудь стандартных ip-ядер на интерфейсы, но без софтпроца? Софтпроц же априори будет менее надёжным и быстрым, чем простенький автомат на вхдл.
>>413695 Вроде пошло, я просто не ту схему сыклона 2 выбрал, однако экран черный, а он должен мне вывести был белый квадратик. Код правильный, компилируется без ошибок
>>413721 Что не ясно? Когда нигде выводы не задавал - fitter раскидывает выводы как хочет и куда что вывел - он пишет в колонке fitter locate. Что бы задать руками где какой вывод - прописываешь locate и делаешь полную пересборку проекта можешь подъебать - тыкнуть в fitter и далее - он не будет делать анализ и синтез. Когда задаешь руками выводы - внимательно следи за I/O standart - в пределах банка он должен быть одинаков.
>>413744 >Так это, в фиттере уже были раскинуты рандомно, фиттер всегда неправильно делает? Не неправильно, а рандомно. Просто рандомно. Он ничего не знает о том что и как у тебя снаружи подключено. Есть исключения - например память DDR, высокоскоростные SERDES.
Этот правильно говорит >>413747. Картинка из мануала что куда подключено. Неужели так сложно прописать 14 выводов? Где тактовую частоту берешь? Есть 27МГц на D12, E12, 50 МГц на L1, 24 МГц на A12, B12. Потенциально подходит 27МГц, есть PLL через который получешь нужную частоту. Используешь его?
>>413715 Все используют микроблейз, никто не жалуется. Каково это — пересобирать проект, когда надо поменять какой-то параметр в конфиге — я даже не представляю. Наверное, у тебя проекты собираются по две минуты (а у меня часа по полтора на мощном core i7 с 64гб рамы).
>>413792 >проекты собираются по две минуты В квартусе нормальные проекты собирались по 5-10 минут, точно такие же проекты в виваде - минут 15-30, хуею с говнокодеров.
Какие задержки у микроблейза? Может ли он среагировать на управление и уже на следующий такт начать обработку?
>>413821 Туда ли ты вкатился, петушок? Оттуда же - кусок схемы как устроен ЦАП для создания аналоговых сигналов красного, синего, зеленого цвета и 2 сигнала вертикальной и горизонтальной синхронизации.. Какой к какому выводу ПЛИС подключен - смотри выше.
Не понимать вопроса.. Что ту может пойти не так или вызвать затруднение в назначении и сопоставлении выводов схемы и плисины ((не)рабочесь говнокода неучитываем).
>>413824 Это боль..Снести к хуям файл QSF в корне проекта Ебанутый у них редактор выводов. Тыкаешь в заголовок Location (3-я колонка) потом курсором в первый сверху вывод, зажимаешь шифт и тыкаешь в самый последний вывод, отпускаешь шифт, жмешь delete. Так же можно массово менять тип вывода (7 и 9 колонка).. Обычно сортирую по банкам в таких случаях.
>>413829 >>413830 Вдвойне не понимать.. У тебя вопрос по наличию-отсутствию выводов, то что они прибиты гвоздями к 1 или 0? Читай варнинги "вывод стикед to gnd|vcc"
В том что у тебя каждый блок развернут, а тебе нужно каждый блок в блок завернуть? Используй еще один блок верхнего уровня, где создавай три файла (с PLL уже создан), второй есть, а один - прйдется полностью переписывать.. но зойчем???
>>413875 >Он его и разобьёт, и руки порежет. Разобьет - хуй с ним. Порезать руки - не так страшно, как порвать анус. Анальная контузия - это не шутки! Какртинка с обезьяной опаздывает.
>>413939 Ты бы еще Altera UP1 выкопал. Да, я флексоёб.
При первом приближении VGA контроллер крайне прост - это пачка счетчиков которые на любое говно можно перенести, хоть в CLPD (жирную, например EPM3128 http://micklab.ru/IgrosoftIGP1.htm ), единственный геморрой - это приделывать память которую отображать. Код по большей части кроссплатформенный, поэтому может просинтезировать на любую FPGA с некоторыми ограничениями по быстродействию (например отсутствие аппаратных умножителей и будут делаться на логике).
Аноны, могу кого-нибудь попросить скачать 4 курса по PADS? Я на Верилоге уже охуеваю. Каждый файл надо индивидуально качать, плюс именование, чтобы по чаптерам топики складывать. Выручайте.
Отпишитесь, если кто возьмётся, пожалуйста. Я вам даже аккаунт зарегаю и курсы оформлю. >>413996 - хуй.
Если что, мне University: PADS Professional Student Edition On-Demand Library: Professional Edition скачают. Продолжаю реквестировать, чтобы кто-нибудь слил курсы по PADS.
>>397766 (OP) Сап анон - вот мой контроллер, у него пока один вход только - часы. Он выводит на экран квадратик, работает. Однако мне надо сделать тестбенч для него, но как тайминг правильно ввести для CLK?
>>414491 Какие это, блядь, часы?.. Это тактовый синхросигнал! В чём моделируешь, в МоделСиме? Если делаешь функциональную симуляцию, то без разницы какая будет у него частота, в функциональной симуляции главное не абсолютные, а взаимные соотношения и длительности сигналов.
Проблема в том, что у меня всегда вертикальный и горизонтальный импульс на 1, не показывает blanking, а препод требуюет чтобы весь процесс был показан. Может я в тестбенче накосячил со временем что то?
>>414505 >>414509 Мне кажется он имел в виду другое.. Ему нужно указать время симуляции минимум на время отрисовки одного кадра. Тупо в лоб - 25МГц / 60(?) будет чуть больше 416 000 тактов на симуляцию.
>>414549 На ВХДЛ что ли пишешь? Я не знаю как там, на Верилоге тактовая частота создаётся просто: always #1 clk_25 = !clk_25; Получается частота периодом в две временные единицы.
>>414564 Пробовал. Присматривался. Китаеза наебал, отправил не ту, схему не предоставил. Ввиду того что она одна - потрошить на скалывание схемы нет смысла, заказал у Qtech. Что за пиздец последнее время? Даже Альтеру некогда дрючить, не говоря о тесте Блевады в цинке. Если платка не одна - за день вполне реально прозвонить все линии данных - управления. Сам так делал, зависимость есть.
>>414587 Я так понимаю китайцы и не дают схем на антмайнеры. Бушные по 100-500р вообще отдают пачками. Помимо того что эти платы использовались и в хвост и в гриву для майнинга, что ещё может оправдать такую дешевую цену? JTAG вроде как выведен, но не распаян. Блока какого-нибудь у них нет? И кстати хуею с тупых майнеров, ни у кого на форумах даже таких мыслей не возникало, просто воспринимают цинк как специализированный проц для майнинга.
>>414592 >>414593 >>414594 Иногда читал что цинк магическим образом выгорает. Из интерфейсов - обвязка озу+пзу+езернет+(питание) и gpio наружу, те чуть меньше, чем нихуя, но разве надо больше? Для первоначального вката хватит геморроя с головой. Схем нет, только реверсом. Как eval норм после реверса. Реверсил модуль памяти от VIOLIN memory со Stratix III на 200К LE - вызыванивал чуть больше 700 выводов. А мне норм, довольно быстро получилось..
>>414594 Похожа не левую, честно искал минут 10 - проебал у себя в залежах, не покажу модельку, а ссылка с али ничего не даст.
>>414597 Не ебу. Поищи даташит или референс мануал и посмотри есть ли вообще LVDS выводы и прикинь по фотке куда идут. Скорее всего да, но.. Только в одну сторону или в обе если есть встроенная терминация LVDS.
>>414595 >>414596 Это не правая с левой соединяются, а разные версии контрольных плат у меня. У тебя на картинке мой второй пик с платой носителем. Все торчащие пины для соединения с асиками/запитки охлаждения для них. Чисто контрольный блок, который общается с 40+ Asic.
>>414597 Будто на дешёвых отладках такое бывает. Обычно через FMC какой-нибудь выводят.
>>414596 А, кажется, я понял. Первое фото >>414594 это арм-управляйка для фпга (на плате arm cpu память и разъемы к fgpa), а для платы с второго фото >>414596 нужна согласующая доплата с разъемами.
>>414603 Как минимум в первом пике: >>414594 Во втором хуй разглядишь, но где-то читал, что там тоже 7010. Вторую плату можно и без носителя использовать.
>>414608 Что-то у тебя даже слот под микросд не напаяли, хотя место есть. Под USB с PHY тоже место есть. Мне как раз нужна цинкоборда с gpio. Чем банки цинка запитаны можешь глянуть? 3.3/2.5/1.8?
>>414609 Когда брал выбирал - мне было вообще поебать. Не спрашивай почему одну взял, а не две и больше. Включать не рискну, по контрольным точкам возле преобразователей надписи 1V5 3V3 1V8 1V0.
>>414615 >Почему? Вроде мелочь, но бля пока найдешь где высрать 12 вольт, припаяться..
>К виваде вообще подключал платку? Очевидно нет. Иногда плата-схема важнее чем ее работоспособность, поэтому если берется на органы - то нет разницы. Каждый ебаный раз как начинаешь что-то делать сваливается куча херни. Краем глаза заглядваю в тред. От QMtech брал просто по рекомендации в прошлом треде. А так - в планах просто для себя пореверсить платку. Глядишь в будущем пригодится, но глядя как блевада компилит - на любителя Фанат Альтеры с их колючим кактусом, а не хиленьких с их блевотной блевадой
>>414616 > Фанат Альтеры с их колючим кактусом, а не хиленьких с их блевотной блевадой Неистово дрочую. > глядя как блевада компилит Даже дико мелкий проект компилит по 5 минут, я просто хуею с индусов-кодеров. За сколько брал плату?
>>414615 >нужно напаять jtag и вивада увидит цинк. Что это тебе даст? Максимум достучишься до FPGA части и подавая тестовые сигналы вычислишь кто куда и хорошо если есть доступ к выводам. Всякие конфигурационные выводы типа MSEL (Altera) как будешь искать, не говоря о выводах памяти и прочем в BGA корпусах?
>>414617 >За сколько брал плату? Стоила кажется 3300, но из-за ошибки (не ту выслали, присматривался к версии с 2 чипами озу, а выслали с одним) через диспут не зверствовал и взял за 40% стоимости.
>>414618 > до FPGA части и подавая тестовые сигналы вычислишь кто куда и хорошо если есть доступ к выводам Ну за 500р тоже неплохо. А про BGA точно, совсем не подумал. Может они конечно по референс дизайну раскидали, но надеяться на это глупо.
>>414620 Поищи у себя на авито. Я вот зараженную планирую брать, один хуй прошивка для майнинга не нужна. Жаль конечно l3+ на проце, сразу и не заметил, так бы накупил и поюзал, выглядит очень удобной.
>>414623 Я думал за 500 рабочая, типа распродажа барахла у которого нет будущего в майнинге. Велик шанс, что получишь нерабочий хлам, потому как майнеры и асики перепаивают и контрольки чинят - есть у них мастера, они не совсем уж лохи.
>>414626 >>414627 Antbuild судя по всему пиздить половину хэшрейта для хакера. И майнеры не умеют чинить. На форумах у них там вообще треш творится, не удивлюсь если они и питание не умеют чинить.
>>414628 > есть у них мастера Я так полагаю эти мастера неплохо так рубят бабло на дурачках.
>>414628 Вот скажи, тебе жалко 500 рублей? Это меньше чем поход в магазин. Возьми на одну платку больше и отреверси и глядишь ЗИП образуется. Увлекательное медитативное занятие, может и смехоту узнаешь из первых рук. Только вот в этой стране ни одна тварь даже сраное спасибо или благодарю не скажет за это. Одно дело коммерческие железки реверсить, другое - "любительские" или особоузкоспециализированные, на которые всем похуй, как например эти мозги управления.
>>414656 Лол. Походу долго тут не протянешь. Просто прикинь - НеведомаяЕбанаяХерня делалась под срисовку одной схемы. Под одну ебаную платку и скалывание ее топологии.
Посмотри какой медитативный процесс. Да, камера на телефоне плачет по помойке где ей и место. Даже на таком мыле суть хорошо передается. Такая вот звонилка, как работает - сам догадаешься и очень бысто. Показан отлов одиночных линий, спаренных и 3+ линии. Особо внимательные заметят баг в работе, но похуй на него, он редкий и исправляется при повторном тесте. https://yadi.sk/i/RqQcgVBhNXW2Ng
>>414659 >Такая вот звонилка, как работает Сердес какой-нибудь? На каждый пин свой уникальный код транслируешь? Чем принимаешь только, не очень понял. Охуенно сделано, мое почтение. Я бы просто нули и единицы на каждый пин выдавал и управлял бы через инсистем.
>>414662 Тупо UART же. Через пачку (де)мультиплексоров на каждый вывод вывожу. Выбираю "номер анала" и в него же дрищу его номером по UART-у и ловлю. Соответственно сколько байт поймал за цикл опроса, столько и пытаюсь отобразить. Просто, тупо, работает, иногда глючит когда флюс не смываешь от мест припайки. Потенциально 256 аналов за раз можно сканить, но остановился на железке на 128 аналов коих и так дохуя.
>>414663 Прикалываешься? Сам подумой и сопоставь ее назначением этой НЕХ.
>>414662 >Я бы просто нули и единицы на каждый пин выдавал и управлял бы через инсистем. Не актуально или тебе надо по максимум осторожно все говно снести, оставив сам камень и схемы питания. Но нахуй надо. Проще +одна железка (кои идут по цене лома), которую не долго думая на органы и остается чистый рисунок топологии без влияния резисторов, конденсаторов и прочего говна на линиях. Опять же вспомни про говно в BGA корпусах. У меня нет знакомых которые снимут и поставят назад BGA, поэтому доктор сказал в морг на органы, значит на органы и ЗИП.
>>414664 >Прикалываешься? Сам подумой и сопоставь ее назначением этой НЕХ. Нихуя не понимаю - подключаюсь щупом на вывод ром и подаю на выводы fpga по порядку номера. Индикатор покажет номер вывода к которому подключен вывод ром.
>>414665 >или тебе надо по максимум осторожно все говно снести, оставив сам камень и схемы питания Ну хз, что я там такого смогу поломать 3.3в лвттлями? Разве что флешу/ддр заблочу, но по питанию все сбросится.
>>414669 >ддр заблочу Дальше не читал. Вот как доберешься до того какой вывод куда подключен? NAND память бывает и в BGA и тут соснешь соснешь со своим подходом. Вот как у этой NAND памяти узнаешь кто куда подключено своим методом? Сквозных VIA нету что бы снизу присосаться. Еще "эталон" - это LVDS сигналы с внешней терминацией и у тебя получается.. Сигнал сразу на двух выводах меняется при изменении на одном, так как они соединены через резистор в 100 Ом. Вот и думай.
>>414671 > и тут соснешь соснешь со своим подходом. Да я не спорю, я про это и раньше писал. > А про BGA точно, совсем не подумал. Может они конечно по референс дизайну раскидали, но надеяться на это глупо. Как вариант иметь несколько плат и с одной спаять необходимые части и проверять по дыркам. Но моим способом это пиздос долго. > Еще "эталон" - это LVDS сигналы с внешней терминацией и у тебя получается.. Сигнал сразу на двух выводах меняется при изменении на одном, так как они соединены через резистор в 100 Ом. Вот и думай. Лвдсы же можно по дорожкам запалить как раз, так что все ок, плюс питание на банках можно сразу посмотреть, благо в 7ой серии теперь нет 3.3 лвдса. Только вряд ли на этих антмайнеров вообще есть лвдсы.
Я не понимаю что я там нулями и 3.3 вольтами поломать смогу?
>>414672 >Я не понимаю что я там нулями и 3.3 вольтами поломать смогу? Если коротко - ничего, если все выводы как входы и только один вывод работает как выход.
Я же давлю на то, что не во всех случаях можно отследить сигналы куда какой идет, поэтому самое простое решение - это тупо все снести и прозванивать чистую платку. Линии данных практически сразу палятся, а вот с питанием и всякой служебной херней, тактированием и подобных что не всегда подключается точка-точка или через резисторы - немного сложнее, но реально.
Конкретно в обсуждаемой платке самое сложное - это DDR срисовать, остальное (условно) доступно. У нее снизу 16+8 резисторов штабелями и еще штук 5 рассыпухой. Вот как отследишь кто куда? У той же Альтерки (про FPGA, а не SoC) - линии данных жестко прибиты, а сигналы RAS, CAS, адресные и подобные - как хочешь раскидывай и гадай кто куда. Пикрил - выдержка из схемки от платки на QMtech и походу память гвоздями прибита, но кто его знает...
>>414674 > схемки от платки на QMtech и походу память гвоздями прибита У них там на цинк тоже охуительная схемка в один лист? Я по советам анонов тоже их платку, но ддровскую с артиксом купил.
> походу память гвоздями прибита Можно сравнить с схемотой других отладок на том же соке, но что-то мне подсказывает, что нифига не прибита, а просто в референс дизайне так было.
>>414793 Да это, конечно, ничего необычного, вот только бластер только под альтеру, не? Под хилых свой погроматор. Просто на отладках типа arty и иже с ними есть возможность залить, тупо подключившись по usb. Там стоит ftdi232 или 2232, вот и мне интересна возможность получить заливку бинарника занидорага. вдохновлялся идеей hscope, чтобы можно было из говна собрать себе некоторое подобие измерительного устройства
>>414801 >Под хилых свой погроматор. Да, купил китайский за 2-3к. Все равно дебажить надо. Я бы на таком не экономил, это же жесть как неудобно иначе и велик шанс наебнуть.
>из говна собрать себе некоторое подобие измерительного устройства Бля, ты - это я. Только вот пока не продвинулся дальше идей, работа поглощает все время.
Ну и естественно бластер зайлинкс несовместим с альтерой и стоит в разы дороже. Есть ещё какой-то супер программатор за 500 баксов, но я так и не понял нахуя он такой дорогой.
>>414793 >>414801 >>414802 Какой-то с Али. Имя затерто, но все же знают что это FT232HL. На том же Марсоходе из FT2232H делают байтбластер под Альтеру. Салат прошивал через FT2232DПроверить на H не могу - софт проебан и впадлу получать новый ключ и все восстанавливать. Так же на Али есть программатор 3 в одном - Altera+Xilinx+Lattice. Ставлю что тут разница только в содержимом EEPROM, чисто спижженном с платок от Digilent.
>>414810 >Ставлю что тут разница только в содержимом EEPROM, чисто спижженном с платок от Digilent Про это кстати вычитал и правда так. Для дебага точно нормально подойдёт? На зайлинксовских платах со встроенным отладчиком не работал, только через бластер. У меня пикрил вообще, разницы с официальным за 500$ не заметил.
>>414821 В душе (shower) не ебу. Ньюфаг же в мире хиленьких поделок и блевотины. Больше нравится жрать колючий кактус. FT Prog-ом опозналось - уже хорошо, а блевада на то время не стояла. Может на днях попробую загрузить импакт или как-там программер зовется и автодетект прогнать для цинка.
>>414824 >Больше нравится жрать колючий кактус. Да мне тоже, но все новые проекты на зайлинкс перевели.
>Может на днях попробую загрузить импакт или как-там программер зовется и автодетект прогнать для цинка Да ну его, он не интересный. Через виваду хотя бы можно посмотреть данные с встроенных датчиков плисы Xadc.
>>414825 >Через виваду хотя бы можно посмотреть данные с встроенных датчиков плисы Xadc. Запили что ли гайд что сделать для тупых макак птенчиков, которые первый раз разгружают блеваду. Какой говнокод пилить, в каких ебенях компилить, как загружать и тестить..
>>414826 Да я сам нюфаг вивад ещё, лучше кого-нибудь опытнее попросить. А так просто заходишь в нее и сразу жмешь "open hardware manager". Даже без создания проекта. Там конектишься к плисине и смотришь в списке устройств Xadc/sysmon, он через жтаг подрубается напрямую, без проекта даже.
>>414831 О, это все ты. А у этой платки разве программатор не вшит? Алсо, запитать от юсб хотя бы можно? За сколько брал программатор? По идее плисовый программатор должен быть производительнее.
Вообще у qmtech есть куча рабочих проектов, которые идут для этой платы, можешь открыть проект, скомпилить и залить. Правда с цинками я не работал, так что как зашивать проц не знаю видимо через сдк.
>>414844 >А у этой платки разве программатор не вшит? Тебе не кажется что ответ очевиден?
>Алсо, запитать от юсб хотя бы можно? На шнурке USB->POWER как вроде запускается и идет в комплекте, но не уверен, не помню, гарантий не даю. Самые правые - спокойно работают от USB, с цинком - спорно, но грузится и неизвестно как поведет себя под нагрузкой. 5-й циклон - только внешнее питание... Так же у цинка есть "баг" - он сука питается от порта usb (который преобразователь на компорт) и не до конца гаснет при выдергивании штатного внешнего питания.
>За сколько брал программатор? Пикрил. Можешь обдристать, но мне похуй. Схема получена, дамп есть. Задание выполнено.
>По идее плисовый программатор должен быть производительнее. Не понимать.
Минутка рекламы. Уже не актуально, но интересно - эти ребятки работают с железками у которых есть порты 100G Ethernet и на wirespeed разгребают этот поток говна. Это тебе не байт по UART переслать. https://metrotek.center/fpga-webinar.html
>>414892 Это реклама. Тебя никто не связывает и не вставляет спички в глаза что бы принудительно смотрел происходящее. Кому интересно - перейдут, кому неинтересно - пройдут мимо. Поэтому только один вопрос - не лень было писать? Если бы каждый лид писал что ему не подошло, а не гадаешь по статистике и CTR, что не так с лендингом или куда там льешь трафик.
>>414891 То что по ссылке уже каждый школьник знает. Вот если было бы скажем углубленное изучение ТаймКвеста, методы как уложить неукладывающийся по частоте проект, как поднять Ниос, его архитектура, как под него кодить. А так очередной детский сад.
Наверное не в ту тему, но не в раковник же писать. Укрощаю АЦП, поясните за CiC дециматор. Нужна софтверная реализация, и перенос дециматора в центр цепи очень сэкономит память. Я правильно понимаю что в таком варианте дециматор не просто пропускает каждый N-ный (в примере 4-й) сэмпл, но и сбрасывает весь каскад аккумуляторов слева?
>>415010 >Я правильно понимаю Нет, конечно ничего сбрасывать не требуется. Просто распиши разностное уравнение того что будет на выходе (для второй картинки) и станет видно, что это эквивалентные варианты. Собственно разностное уравнение соответствует программе 1 в 1.
Также полезно рассмотреть с частотной точки зрения. У фильтров с твоей второй картинки АЧХ вида |sin(DхFнорм)|, D=2R, Fнорм - нормированная частота относительно частоты дискретизации. Т.е. Fнорм=2pi (или еще чему, в зависимости от того как нормировали) соответствует реальной частоте равной частоте дискретизации. Что происходит при прореживании отсчетов (там где у тебя квадратик R)? Частота дискретизации на выходе получается в R раз ниже. Поменяется ли АЧХ для тех двух вариантов с этой точки зрения? Нет. АЧХ цифровых фильтров периодическая и тут поменяется только период повторения АЧХ относительно реальной частоты. Но там еще поменялось D и период синуса останется прежним. Разумеется еще нужно учитывать алиасинг, поэтому для доказательства эквивалентности, разностное уравнение все равно придется расписать.
Тебе точно нужен именно CIC фильтр? Ты точно в этом уверен? Может я в чем-то ошибся, пусть поправят если что.
>>415048 Спасибо, бро. Спектральную часть я понимаю, и даже этот финт с переносом. Но ведь слева от него опущен каскад интеграторов как они не переполняются если их сразу не компенсирует гребенка?
Вот как я рассуждаю для одиночного CiC: Уравнение цепи до дециматора выглядит так: >y=y[i-1]+x-x[i-D]; Считаем на каждый новый семпл: >y=y+data[0]-data[D-1]; И буферизуем входные семплы по вкусу. Для высоких порядков нужно хранить >data[D][N] чисел, что слишком накладно. А вот как сюда засунуть дециматор, чтоб хранить >data[2][N] семплов?
Хочу купить платку с зинком, чтобы запилить на ней одноплатный компьютер с линухой, возможно даже портативный. Присмотрел подобную на 7020, нормально взлетит? Как-то ссыкотно у ноунейм бренда брать. https://aliexpress.ru/item/4000316821863.html
Видел еще у qmtech новую с 7020, но 512 мб ддр и без юсб. Хотя бренду и доверяю, но по хар-кам немного хуже получается.
>>415611 >успехи с запуском цинка с antminer Если ко мне >>414831>>414608 - то никак. Всем похуй же и потрошить пока нет ни малейшего желания, а остальным как можно заметь - похуй же.
>>415606 Этих тоже рассматривал, но выйдет дороже, да и синезуба с вайфаем встроенного нет, что уж говорить про отдельную плату для жпио. Зато хотя бы ацп распаян.
>>415598 Что именно fpga-шное ты собираешьcя на ней делать? Если нужен именно одноплатник - бери лучше малинку. С маргинальными одноплатниками и так головняка много, а тут ты еще серьезно ограничен выбором дистрибутивов.
>>415621 > Что именно fpga-шное ты собираешьcя на ней делать? Все подряд по работе по сути поднятие всяких интерфейсов и протоколов для тестов и пару домашних извращений. Есть платка с артиксом-7, но хочется еще больших извращений.
> С маргинальными одноплатниками и так головняка много Это же самое веселое. Придется головой думать и пердолиться, а не на все готовое садиться.
> Ultra96-v2 Еще такое есть "FZ3 Card - Deep Learning Accelerator Card", но оно сильно дороже получается, я даже 14к не очень хочу тратить.
С доставкой не все так гладко, кто-нибудь заказывал вообще с авнета или миюра? С алика все просто будет.
>>415611 > Как успехи с запуском цинка с antminer? Я из дома даже не выхожу. С барыгами с авито не очень хочется контактировать в это время. Поэтому позже буду пробовать.
>>415625 >antminer Посмотрел на авите, за 900-1500р можно купить даже новую. Чота заинтересовало. Такие копейки за такую йобу. После карантина прикуплю
>>415626 > Такие копейки за такую йобу Я вот чисто случайно наткнулся на такое и решил с анонами поделиться. Просто в интернетах даже не поднимается такая тема. Благо один из анонов оказался уже прошаренным.
Ебли там конечно много будет, но чисто фпга поднять просто думаю.
Подскажите как мне быть. Часто необходимо будет производить вычисления с плавающей точкой. Как это будет выглядеть на Verilog, обычное деление и умножение умножает и делит с отбрасыванием всем что после точки.
>>415878 Я думаю для меня бессмысленно покупать Стратикс 10 для 1-2 вычислений не имеет смысла. Буду думать как мне обойтись без этих вычислений, тем более что у меня SoC в наличии
>>415908 Это конечно выход из положения и я даже думаю скорее всего мне этот вариант подойдет. Все равно я пока не понимаю как бы мне это реализовать. Я только начал изучать ПЛИС и верилог в частности.
>>416042 Скорее всего потому что сигнал t в тестбенче асинхронно с тактовой частотой. Формально активный (нарастающий) фронт тактового сигнала совпадает с нарастающим фронтом сигнала t. По факту в симуляторе может быть так что нарастающий фронт сигнала t появляется сразу после (с нулевой задержкой) после активного (нарастающего) фронт тактового сигнала, вот и получается что когда есть активный фронт тактового сигнала, то в этот момент сигнал t ещё не в 1. Попробуй в 32 строке заменить #20 на #21
>>416116 Проверь букву "с" в clk, в модуле триггера, чтобы она не была русской и попробуй заменить logic на reg. И почитай ворнинги которые выдаёт МоделСим может там есть подсказка. И кстати, проблема про которую я говорил у тебя есть. Посмотри как переключается D-триггер, он меняется в том же такте что и сам сигнал d, а это не правильно. С JK-триггером тоже самое, новое состояние должно быть на следующем такте после команды.
>>416121 >Посмотри как переключается D-триггер, он меняется в том же такте что и сам сигнал d Это потому что в тестбенче значения сигналов устанавливаются через "=".
>>415229 Фишка цика в том, что он работает с переполнением. Основной затык в том, что растёт разрядность по выходу каскада. Поэтому и применяют всякие хаки типа перестановки интегратор-гребёнка.
НО.
Если ты хочешь сделать децимацию в 2-4 раза можно смело забить на все хаки и сделать в лоб. Разрядность вырастет не очень сильно и по выходу сможешь ее сбросить вниз округлением. гугл на тему rounding half up/down.
>>416116 Заведи отдельную переменную и её перекидывай по сигналу t. Так же можно вытащить сигналы прям из модуля t_flip_flop_ar, а не из flip_flops. Мб при подключениях что-то сломалось...
Первый про вот эту штуку -> http://llhd.io/ SV нормально компилит, без проблем. Для VHDL не может найти IEEE-шные либы на линухе. Кто-то теребонькал вообще этот LLHD c VHDL? Судя по доке с vhdl не должно быть проблем, может я просто где-то проебался.
Второй про тулзы на линухе. До этого в основном пользовался вивадой, сейчас на винде с квартусом играюсь. А на линухе не совсем понимаю где и какие тулзы смотреть. Нужен синтезатор и симулятор. Чтобы просто из cli небольшие модули с тестбенчами синтезировать в RTL, видеть картинку, что получилось на схеме, и запускать симуляцию потом. Кто может просветить?
Спасибо всем за ответы. Выход Т триггера начал переключаться после синхронизации входных сигналов с clk, и добавления сброса, чтобы установить начальное состояние выхода (reset = 1; #20; reset = 0;).
>>416042 Я кароч понял, в чём твоя исходная проблема.
Ты в коде тестбенча t и qt сбрасываешь через {t, qt} <= 0;
Так не делается, потому что qt это выход схемы, им должна управлять симулируемая железка. Вероятно, авторы симулятора не ожидали, что кто-то так попробует наебать систему, поэтому не отловили попытку сделать явную хуйню. Сбрасывать выходы модулей в исходное состояние надо через сигнал ресета и никак иначе.
>>416670 Да, работает, если добавить ресет, и писать просто t <= 0; #10; t <= 1;. Но есть такой прикол, что при использовании блокирующих присваиваний для изменения значений входов, выходы меняются в том же такте, что и входы. А если использовать неблокирующие, то все норм. >>416674 Да, я думал можно тупо присвоить выходу значение. Еще в моделсиме ворнинг был какой-то, типо несколько источников у выхода.
>>416687 >Но есть такой прикол, что при использовании блокирующих присваиваний для изменения значений входов, выходы меняются в том же такте, что и входы. А если использовать неблокирующие, то все норм. Ну хуле, привет вот этому вот >>416453
Посоветуйте какие-нибудь современные отладки на Lattice и Microsemi. А то как-то совсем в их продукции не разбираюсь, но интересно. Возможно прикуплю себе.
>>416693 >Lattice Могу только посочувствовать если поставишь их IDE под некроCPLD 4000 серии и около нее. Все в округе заблюешь при попытке нарисовать что-то на схемном вводе + Ежегодичная анальная привязка к маку карты (тестовую(?) нахаляву выдали и давно протухла. Для программирования - хватало ft2232D) Именно FPGA - не тыкал, не знаю, не скажу, только CPLD ispMACH4000, выдранные из свичей. Краем уха слышал обоснование тотальной разницы цен на примерно равные по объему FPGA - салат строит "с нуля" и вширь, а Альтера/Хилинькие - делают максимально жирную FPGA и обрезают их. Это было давно и неправда.
Микросеми слышал и не более того. Сектант-фанат кактуса и атмосферных циклонов да хуй там. даже обосснаный стратикс 3 будет потолще чем циклон и больше простор для ошибок и бредовых схем
>>416700 > Все в округе заблюешь при попытке нарисовать что-то на схемном вводе Мне и вивады хватило после квартуса. Да, забыл указать, что именно FPGA хочу. Zynq от зайлинксов заказал, Танг и Прайм от Gowin заказал, с стратиксами и ссыклонами и так довольно много работал. Надо еще таки купить антмайнеры и трайнуть их реверсить, но что-то мне кажется сосну с PS пинами. Спасибо за ответ!
>>416149 Спасибо, понял куда курить дальше. Неочевидный момент что с одной стороны фильтр может переполняться и это нормально, а с другой его усиление приводит к переполнениям и это плохо. Сейчас сделал децимацию 8х в лоб. Разрядность на моих порядках фильтра как раз впритык возросла с 24 до 64 бит. А дальше бью Кихом в целых числах а дробные с постоянным запятой осиливать лень т.к. есть сопроцессор .
>>397766 (OP) Сап плисач. Я программист микрокотроллеров и с недавних пор решил перекатиться в ПЛИС. Посудите сами, прогая мк максимум, чего можно добиться - это зарплаты 100к в ДСах, но это потолок по сути, а на ПЛИСинах и карьерный рост привлекательней, и возможность для трактора(релокейта) есть. Ещё рассматривал варианты перекатится в промышленные компьютеры и малинки, но там линукс и это уже чисто для программистов имхо, и в проганье ПЛК, но там какие-то поехавшие петровичи, настраивающие плк и регуляторы в тайге на лесопилках и заводах. Но в целом полагаю, что ПЛИСы должны быть проще чем МК, ведь в мк приходится читать сотни страниц даташитов, знать с десяток семейств разных мк и их параметры, а ПЛИСы отличаются между только количеством ячеек. Посему вопрос - мне ведь должно быть легче вкатиться в ПЛИС чем обычному программисту или мимокроку, п-правильно?? На что обратить внимание, с чего начать? С цифровой схемотехникой немного знаком - в университете изучал логические элементы, триггеры, мультиплексоры, дешифраторы, автоматы Мура и Мили, таблицы истинности, СДНФ и так далее. Т.е. в крациях помню, как всё это работает, но по памяти нарисовать схему, скажем, синхронного RS-триггера не смогу. Когда прогаю мк знания цифровой схемотехники мне пригождаются, например, чтобы запихнуть байт в сдвиговый регистр и отправить по линии связи, настроить предделитель частоты таймера или выбрать нужный канал АЦП с помощью мультиплексора. Но так как пишу в основном на Си, то мои познания об архитектуре микропроцессора весьма скудные, знаю только, что там внутри АЛУ, которое складывает и отправляет байты, а про то, как оно работает, как там устроены шины и адресации не знаю. Как я понял, мне нужно сделать следующее: 1) Подтянуть знания цифровой схемотехники, пособирать разные триггеры и регистры в каком-нибудь мультисиме. Ещё как опционально выучить архитектуру микропроцессоров, на дваче мне посоветовали книжки Харрис и Харрис "Цифровая схемотехника и архитектура компьютера" и "Код" Петцольца. На сколько у плисоводов вообще востребована задача собирать soft-процессоры в своей работе? 2) Выучить verilog и vhdl. 3) Сделать пару пет-проектов и залить их на гитхаб(и завести гитхаб сначала). Для отладки купить на алике отладочную плату altera с максимальным количеством элементвов и программатор(Byte-blaster). Ещё есть xilinx, но altera проще, как я понял altera это avr от мира плис, так что лучше начну с неё. 4) Рассылать резюме и устроиться куда-нибудь прогать плис. Сколько времени может понадобится на вкат, годика неспешного проганья плис после основной работы хватит?
>>419077 >Но в целом полагаю, что ПЛИСы должны быть проще чем МК Это ты зря. В разработке на ПЛИС тебе также придётся читать сотни страниц даташитов на различные блоки ПЛИС, ип ядра. >выучить архитектуру микропроцессоров Это нужно, если собираешься проектировать свои процессоры, но обычно используют готовые. >На сколько у плисоводов вообще востребована задача собирать soft-процессоры в своей работе? Довольно часто, но для этого не надо знать досконально как внутри устроен процессор, достаточно почитать мануал как его настроить, подключить нужную переферию. Часто используют хард процессоры, как в цинке например.
>>419077 Ещё посмотри, как Ethernet делать и оперативку подключать по альтеровским примерам, они нередко используются. С кучей логических ячеек у китайцев есть неплохой вариант на ep4ce115 https://a.aliexpress.ru/_eLzDcT с озу, gigabit ethernet и программатором. Я думаю, идеально было бы потом связаться с начальниками отделов, в которые хочешь вкатываться и узнать из первых рук, с чем они работают и что лучше изучить.
>>419077 >в целом полагаю, что ПЛИСы должны быть проще чем МК, ведь в мк приходится читать сотни страниц даташитов Тогда ты ПРОСТО ОХУЕЕШЬ и будешь визжать как сучка с того, что тебе предстоит читать для ПЛИС.
Чтобы осознать масштаб пиздеца, пролистай юзер гайд на один лишь мультигигабитный трансивер (используется для последовательных интерефейсов со скоростью полтора гигабита в секунду и выше — Ethernet, PCI-E, HDMI, SATA, etc) одного лишь семейства Ultrascale и прикинь, как быстро ты сможешь передать и принять по нему хотя бы один байт): https://www.xilinx.com/support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf
Безусловно, глаза боятся руки делают, но нет, ПЛИС — точно не та область, куда стоит вкатываться в расчёте меньше курить маны.
>>419077 > прогая мк максимум, чего можно добиться - это зарплаты 100к в ДСах Да и в плисах больше не светит по большому счёту. Хочешь денег - иди веб-макакой.
>Сколько времени может понадобится на вкат, годика неспешного проганья плис после основной работы хватит? Смотря до какого уровня. Помигать диодом сможешь уже через пару часов.
>>419090 Ну хз, смотря что делаешь, у меня вот, например, такой необходимости нет. Хотя лишним и не будет.
>>419575 >Хочешь денег - иди веб-макакой. Тоже так думал. А вот хуй там. Надо идти в... Рекламу! Стань рекламщиком, работай за проценты от продаж. Еще жеще - берешь биту, присасываешься к трейдеру и ебашишь на бинарных аукционах. Ахуенный рандом и непредсказуемость, везение и сможешь гребсти десятки-соткиК в день.
>>419090 >Плис у нас в основном в военке, а тебя туда не возьмут, Я и не собираюсь идти в военку и становится невыездным, ведь, как указал, пепспектива завода трактора - одна из причин, почему вкатываюсь в ПЛИС. наслышан об историях плисоводов, которые завели трактор >пока матан цифровой фильтрации не осилишь Та что там его осиливать, всего лишь выучить преобразование Фурье, фильтры каллмана, вот и всё.
>>419117 Либо это бред, либо я что-то не понял. Для чего используют софт-процессоры или готовые по типу цинков? Часто просто для управления, приходят какие-то управляющие данные, хоть по какому интерфейсу, хоть по UART, выдаются настройки по каким-нибудь SPI во всякие АЦП/ЦАП и делаются другие подобные вещи. А ты что предлагаешь? И сколько ресурсов ПЛИС займет то что ты предлагаешь?
>>419704 Почему именно кортекс? Сейчас гитхаб завален разными RISC-V и не только. А можно и что-то совсем простенькое сделать, не торопясь, за день.
>>419714 > приходят какие-то управляющие данные, хоть по какому интерфейсу, хоть по UART, выдаются настройки по каким-нибудь SPI во всякие АЦП/ЦАП и делаются другие подобные вещи. Протокол необязательно стандартный, частоты тоже. Плюс стандартные корки используют акси, что оверкилл для большинства задач. Разве если нужна точность до наносекунд софтпроцы подойдут?
> А ты что предлагаешь? И сколько ресурсов ПЛИС займет то что ты предлагаешь? Предлагаю вручную на HDL писать автоматы для конкретных задач.
>>419720 Если кратко - софтпроцы для управления/сложных для плис протоколов, а hdl для точной потактовой оптимизации/решения узких задач? Как можно в виваде например напердолить кастомный протокол под SPI-корку? Придется писать своего AXI-мастера, без этого никак?
>>419721 Зачем для SPI нужно AXI? SPI это тык-тык через сдвиговый регистр и все. AXI это только если к микроблейзу подсоединять. Но если скрость не важна, то хоть ногодрыгом можно, если через процессор. А если так просто выдать что-то по включению в SPI, то тоже AXI ни к чему, счетчик, сдвиговый регистр и практически все.
>Предлагаю вручную на HDL писать автоматы для конкретных задач. Как ты себе это представляешь для типичной задачи для процессора? Для сравнения, простой процессор займет несколько сотен ячеек (т.е. в которых по LUT и триггеру) и немного блочной памяти, а сколько займет твой автомат, если он не будет разновидностью процессора с тем или иным набором команд?
>>419749 Ахаха, напугал жопой ежа микроконтроллерщика параллельными процессами. Внутренняя переферия микроконтроллера может одновременно принимать и получать байты по интерфейсам в полный дуплекс, измерять АЦП и выдавать напряжение в ЦАП, откликаться на внешнее прерывание, шимить и считать время таймером, записывать в память. По завершении процесса поднимается соответствующий флаг и мк обрабатывает прерывание (если его предварительно разрешить). Ну, все вектора прерываний одновременно будет использовать только поехавший, но одно или несколько прерываний одновременно используется очень часто. Это только начинающий/любитель будет, не используя прерываний, ждать флага завершения процесса, чтобы начать другой, вот у него да, микроконтроллер будет работать последовательно, обрабатывая один процесс за другим.
>>419762 >Только не называй код для ПЛИС программой, это схема. Да, верно. В крайнем случае можно сказать, что это прошивка ПЛИС, потому что как и в мк она заливается в энергонезависимую память.
>>419703 > фильтры каллмана Хуйня полная. ЦОС не про это вообще. Удачи выкатиться с ПЛИСами из рашки. Проще питон задрачивать. хотя сам в Швеции в одной компании на букву Э асики разрабатываю, лол
>>419764 Хе-хе, это совсем не то, ты только запускаешь периферию, а потом её опрашиваешь в программе последовательно. А ты попробуй удержать в уме одновременную и взаимную работу хотя бы десятка устройств, счётчиков, регистров, мультиплексоров, автоматов и прочей срани. При этом всё это надо вместе увязать, что бы всё работало согласованно, одно другому выдавало данные с точностью до такта и прочее. Это тебе не программу писать.
>>419780 Это штука, которая описывает системы, которые можно приблизительно представить как линейные, с шумом, который можно приблизительно представить как белый гауссовый. Она охерительно общая.
>>419782 >в этой штуке нет ничего особенного или сложного Я ровно об этом и написал — она описывает наиболее распространённую в технике модель систем (линейные стционарные) с наиболее распространённой в технике моделью помех (белый гауссов шум). Ты возражаешь на какой-то выдуманный тобой же аргумент, а не на мой.
>>419777 >Хе-хе, это совсем не то Самое что ни на есть то, в этом посте >>419749 речь шла о "последовательно работающем МК". А в МК может одновременно работать несколько счетчиков, ацп, цап. >, ты только запускаешь периферию, а потом её опрашиваешь в программе последовательно. Вектор прерывания вообще не об этом. Прерывание может выдернуть МК из его последовательной программы в любой момент, заставить выполнить программу прерывания, а потом уже разрешит ему вернуться к основной программе. >А ты попробуй удержать в уме одновременную и взаимную работу хотя бы десятка устройств, счётчиков, регистров, мультиплексоров, автоматов и прочей срани. При этом всё это надо вместе увязать, что бы всё работало согласованно, Ну когда пишу программу для МК как то удерживаю в уме и увязываю работу одновременную работу нескольких usart, i2c, spi, usb, ацп, цапов, таймеров по десятку векторов прерываний. >одно другому выдавало данные с точностью до такта и прочее. Вся ПЛИСина тактируется от одного кварца. Разные блоки ПЛИС можно тактировать от частоты кварца, или от частоты кварца деленной на 2/4/8/.../1024. Поэтому совместить работу нескольких объектов до такта не составит труда. >Это тебе не программу писать. Ну я не думаю, что написать прошивку для ПЛИС прям намного сложнее, чем написать программу для МК. Ты же не выдумываешь каждый раз, скажем, схему счётчика или сдвигового регистра, верно? Ты берешь книжку по цифровой схемотехнике и собираешь его на языке Verilog или VHDL, ну или ты читал книжку раньше и можешь сделать это по памяти. Вот из таких отдельных блоков и состоит конфигурируемая цифровая схема, которую загружают в ПЛИС.
>>419785 >А в МК может одновременно работать несколько счетчиков, ацп, цап. Ты долбоеб? Проц, который обрабатывает показания с перифирии (внимание, последовательно!) чаще всего один.
>>419785 >речь шла о "последовательно работающем МК". А в МК может одновременно работать несколько счетчиков, ацп, цап. Я не про периферию как таковую, а про работу процессора, и тебя как программиста, ты составляешь программу которая исполняется последовательно.
>Прерывание может выдернуть МК из его последовательной программы в любой момент И что? Процессор как выполнял машинные инструкции одну за другой так это и делает, пускай прыгая по программе взад вперёд, это ничего не меняет. Процессор сначала выполняет одну инструкцию полностью, потом берёт другую. Все эти ваши конвейеризации, многопоточности, многоядерности это всё детский сад по сравнению с тем то делается в ПЛИС.
>удерживаю в уме и увязываю работу одновременную работу нескольких usart, i2c, spi, usb, ацп, цапов, таймеров по десятку векторов прерываний Это всё не то. Ты просто знаешь что они у тебя запущены и с каким-то интервалом или по событиям генерят прерывания, тут ничего сложного.
>Вся ПЛИСина тактируется от одного кварца. Разные блоки ПЛИС можно тактировать от частоты кварца, или от частоты кварца деленной на 2/4/8/ Невинная толстопростота. У меня для тебя плохие новости. И это ты ещё наверно не слышал про метастабильность.
>Ну я не думаю, что написать прошивку для ПЛИС прям намного сложнее, чем написать программу для МК. Когда наберёшься опыта - конечно.
>Вот из таких отдельных блоков и состоит конфигурируемая цифровая схема Да, только этих блоков одновременно существующих может быть очень много. И нужно прокачивать свою "оперативную память" в мозгу чтобы всё это держать в голове. Симулятор, конечно, в помощь, но на начальных этапах будет сложно, готовься.
Для примера попробуй хотя бы сделать UART-приёмник, именно приёмник, если знаешь что такое счётчики, регистры, автоматы, то подучив hdl, для начинающего по силам, тогда примерно поймёшь что это такое. А на практике схемы будут в разы, а то и в десяток раз сложнее и объёмнее.
>>419785 Написание прошивки для ПЛИС - это по сути создание схемы из цифровых элементов. Представь, что собираешь свой блок на макетной плате из логических элементов, триггеров, счетчиков, только на несколько порядков быстрее и эффективнее.
>>419776 >Удачи выкатиться с ПЛИСами из рашки. Проще питон задрачивать. Да, но почему-то веб-макак, перекатившихся в гуглы-фейсбуки, по-пальцам пересчитать, зато среди плисоводов каждый второй - тракторист. Олсо, ты же сам себе противоречишь: >с плисами не выкатится из рашки >сам плисовод и работаешь за бугром
>>419786 >Ты долбоеб? Нет, ты. >Проц, который обрабатывает показания с перифирии (внимание, последовательно!) Ты думаешь, что это происходит так. Проц померял показание ацп, потом послал сообщение по uart, потом принял байты по spi. Но чаще происходит по другому. МК одновременно меряет ацп, в любой момент, вне зависимости чем проц занимается, он может принять байты по uart, spi, и шимить что-нибудь таймером. Все эти события обрабатываются в прерываниях, которые выдергивают МК из его последовательной работы. >чаще всего один. Не один же, в МК кроме собственно процессора (АЛУ, CPU), ещё есть куча перефирии.
>>419793 >Для примера попробуй хотя бы сделать UART-приёмник, именно приёмник, если знаешь что такое счётчики, регистры, автоматы, то подучив hdl, для начинающего по силам, тогда примерно поймёшь что это такое. Думаю, осилю. Делал программный UART-приёмник. Написать и откалибровать для надёжной работы софтварный UART-ресивер для МК куда-сложнее, чем просто соствить его из блочков на ПЛИС, потому что приходится учитывать время, за которое выполняются инструкции процессора и согласовать работу нескольких прерываний.
>>419809 Да я вкурсе. Просто чисто на практике вся эта "конфигурация цифровой схемы" заливается во flash-память плиски через программатор как самая настоящая прошивка. А уже из неё она модифицирует плис, превращая его в нужную схему. А если нужна другая схема, можно перепрограммировать плис, залив другую прошивку.
>>420008 С трудом верится что сможешь так прямо легко сделать UART, учитывая что ты ранее писал: >но по памяти нарисовать схему, скажем, синхронного RS-триггера не смогу. Ну хоть как-то, пусть не сразу, а немного подумав, пусть неоптимально, тоже не сможешь? А потом: >мои познания об архитектуре микропроцессора весьма скудные, знаю только, что там внутри АЛУ, которое складывает и отправляет байты, а про то, как оно работает, как там устроены шины и адресации не знаю. Другими словами ты написал, что не сможешь сообразить простейший процессор с несколькими инструкциями? Знать для этого ничего особого не нужно, кроме какого-нибудь набора команд в качестве примера. Это несложная задача. Конечно сомнительно что именно такая задача встретится на практике, но задачи, возникающие при программировании FPGA, часто весьма близки к этой.
Тут можно сколько угодно так распинаться, но знаний у тебя от этого не прибавится. Так что если собрался, то бери учебник и вперед.
>>420022 >Если ты такой умный, то почему еще тут что-то пишешь, а не зубришь учебник? Сперва надо купить макетную плату с ПЛИС, программатор, учебник. Вот найду всё это и буду сидеть учиться по учебнику, сразу же повторяя схемы, которые узнал на практике(то есть в ПЛИС).
>>420029 >Другими словами ты написал, что не сможешь сообразить простейший процессор с несколькими инструкциями? Да. А разве когда делаешь на ПЛИС процессор или приёмник uart нужно каждый раз изобретать велосипед или можно использовать проверенные временем схемы из учебника? >Знать для этого ничего особого не нужно, кроме какого-нибудь набора команд в качестве примера. Это несложная задача. Ничего себе не сложно. Насколько я знаю, микропроцессорная техника это вообще отдельная отрасль цифровой электроники. Гарвардская и фон-неймонавская архитектура, наборы команд cisc, risc - для меня это темный лес, потому что пишу на Си и ассемблер никогда не использую. У меня только обрывки знаний(как на пикрелейтед), типо вот в гарвардской шина адреса и данных отдельно, а в фон-неймановской вместе(или наоборот). Инструкция cisc это несколько очень маленьких инструкций risc вместе. А ведь всё это следует досконально знать, чтобы самостоятельно делать процессоры с нуля из логических элементов.
>>420033 >Сперва надо купить макетную плату с ПЛИС, программатор Вовсе не обязательно. Тут другой подход, симулятор просто необходим при разработке. Тестбенчи - не слышал? >учебник Полный интернет этих учебников.
>>420006 Надо же, погромист поясняет плисоводам про параллельную работу блоков микроконтроллера итт. Удачи тебе с неспешным вкатыванием в плисы после основной работы.
>>420036 >Ничего себе не сложно. Именно что легко и просто. К примеру брейнфак-процессор, что в нем сложного? А это уже полный по Тьюрингу процессор. Или можно придумать что-то не более сложное в реализации, но более простое в использовании.
>>420037 >симулятор Сомневаюсь что можно будет симулировать разные гигабитные интернеты, DDRы. Плюс симуляция не покажет подводных камней вроде метастабильности.
>>420042 >погромист поясняет плисоводам про параллельную работу блоков микроконтроллера итт. А что, разве в МК CPU и переферия не параллельно работают?
>>420045 Ерунда. Эзернеты ладно еще, да и то вряд ли. А DDR - это любое устройство в котором данные меняются и по заднему и по переднему фронту тактового сигнала, чего в нем такого? Метастабильность на ровном месте не проявится, особенно в простых учебных задачах. Необходимость использования симулятора от этого никуда не исчезнет. Для обучения симулятора хватит, особенно в начале.
>>420006 >МК одновременно меряет ацп, в любой момент, вне зависимости чем проц занимается, он может принять байты по uart, spi, и шимить что-нибудь таймером. Все эти события обрабатываются в прерываниях, которые выдергивают МК из его последовательной работы. Я это все знаю и понимаю. Да, прерывания происходят в любой момент (на самом деле нет), но это вообще ортогонально параллельному выполнению задач, потому что прерывания по-прежнему обрабатываются последовательно, в том числе и вложенные прерывания (если такие разрешены). Кроме того чаще бывает так, что у тебя есть scheduler или scheduling algorithm, который вносит очень большую ясность в то, как работают процессы, как обрабатываются прерывания и т.д. Обычно, задача, которую действительно приходится решать на МК, это синхронизация. Короче, какой-то хуевый из тебя программист МК, скорее фантазер. И еще, тот факт, что у тебя много периферии не отменяет того факта, что CPU с данными с периферии работает последовательно, маня.
>>420106 >Да, прерывания происходят в любой момент (на самом деле нет). Прерывания происходят в ближайший тактовый сигнал после того, как произошло событие, вызвавшее прерывание. Это не такая уж большая разница, вполне можно сказать, что происходят в любой момент. >но это вообще ортогонально параллельному выполнению задач Задачи выполняются параллельно, одновременно через сдвиговые регистры отправляются и принимаются байты, меряются ацп, работают таймеры. МК только управляет ими в прерываниях. >потому что прерывания по-прежнему обрабатываются последовательно, в том числе и вложенные прерывания (если такие разрешены). Инструкции ассемблера в прерываниях - да, последовательные. Но само прерывание может произойти в любой момент, потому что паралельно запущено несколько переферий. Что ты представляешь под выражением: " прерывания по-прежнему обрабатываются последовательно"? Мол, вот сейчас обработали прерывание 1, потом прерывание 2, потом 3? Это вообще не так, они могут происходить в любом порядке и в любое время, потому что процессы, их вызывающие, происходят одновременно. >Кроме того чаще бывает так, что у тебя есть scheduler или scheduling algorithm, который вносит очень большую ясность в то, как работают процессы, как обрабатываются прерывания и т.д. Планировщик задач это понятие из операционных систем, он использует аппаратный таймер, чтобы каждому процессу отводилось ровно определенное время. К архитектуре микропроцессора он не имеет никакого отношения. Так же как и задачи операционной системы, на которые выделяет время её планировщик задач и прерывания МК не имеют ничего общего. >Обычно, задача, которую действительно приходится решать на МК, это синхронизация. Что ты имеешь ввиду? Приведи пример. >Короче, какой-то хуевый из тебя программист МК, скорее фантазер. Я профессионал, делаю устройства, которые работают и получаю за это деньги. А вот о тебе того же сказать не могу, раз у тебя планировщик задач объясняет, как работают прерывания.
>>420179 Ну давай разберем написанное тобой по пунктам. >Прерывания происходят в ближайший тактовый сигнал после того, как произошло событие, вызвавшее прерывание. Это не такая уж большая разница, вполне можно сказать, что происходят в любой момент. Ага, а critical sections не существуют, приоритета у обработчиков прерываний нет и т.д.
>Задачи выполняются параллельно, одновременно через сдвиговые регистры отправляются и принимаются байты, меряются ацп, работают таймеры. МК только управляет ими в прерываниях. У тебя за такт несколько инструкций процессора выполняется? Параллельно? Ты это на полном серьезе пишешь или троллишь тупостью?
>прерывания по-прежнему обрабатываются последовательно"? Мол, вот сейчас обработали прерывание 1, потом прерывание 2, потом 3 Именно так они и обрабатываются. В однопроцессорном, одноядерном МК иначе быть не может. Даже не знаю, что тут непонятно тебе.
>Так же как и задачи операционной системы, на которые выделяет время её планировщик задач и прерывания МК не имеют ничего общего. Сами по себе прерывания не связаны с этим, а обработчики уже могут быть связаны.
>Планировщик задач это понятие из операционных систем, он использует аппаратный таймер, чтобы каждому процессу отводилось ровно определенное время. Ну ты хотя бы википедию почитал бы что ли, чтобы так не позориться. То, что ты назвал это только частный случай - round robin. Есть множество разных алгоритмов sceduling-a. Сразу видно профи))))
>Что ты имеешь ввиду? Приведи пример. Псевдопараллелизм или истинный параллелизм, семафоры, мьютексы, мониторы и т.д. Это как бы то место, где начинается разработка в области МК, все остальное это детский садик.
>>420179 >Прерывания происходят в ближайший тактовый сигнал после того, как произошло событие, вызвавшее прерывание. Если честно я тебя тут не понял. По твоему даже выполнение текущей команды не должно завершиться? Или контроллер прерываний у тебя отработает за один такт? Ты тут только что писал о том, что не знаешь внутренностей процессоров, а тут рассуждать принялся. Ну как, начал изучать верилог или опять будешь писать что без платы не можешь?
>>420186 >Именно так они и обрабатываются. В однопроцессорном, одноядерном МК иначе быть не может. Даже не знаю, что тут непонятно тебе. На всякий случай уточню, что под последовательно я понимаю не только "обработали прерывание 1 до конца, затем обрабатываем прерывание 2 до конца", а только то, что нет в МК истинного параллелизма, в отличие от ПЛИСов. Кажется ты не понимаешь, что в ПЛИСах параллелизм ИСТИННЫЙ, тогда как в МК чаще всего ПСЕВДО.
>>420179 >А вот о тебе того же сказать не могу, раз у тебя планировщик задач объясняет, как работают прерывания. Ещё добавлю к твоему высеру, что в посте, который ты комментируешь имелось ввиду то, что наличие планировщика сводит "сложность" большого числа одновременных прерываний на нет. Ведь в этом случае можно иногда даже чисто формальными методами посчитать schedulable у тебя система или нет, т.е. все дедлайны будут выполнены или нет, а также найти и проанализировать worst case execution time (хотя конкретно это уже не такая тривиальная задача). На плисах дело обстоит сложнее, хотя и там формальные способы проверок есть, но с плисами приходится анализировать каждый пук в разрабатываемой схеме, а в МК нет. МК это более высокий уровень абстракции, чем ПЛИС, поэтому там во многом проще. Ты профессионалом по мк где-то в снг работаешь, да? Какие проекты закончил? Что конкретно реализовал?
>посамоутверждаться на залётном контроллеропролетарии Так ладно бы он поспрашивать что-то пришел, но он же выебываться начал и пояснять всем за все с ебалом "профи, который делает работающие устройства". При этом он пишет такую лютую хуету даже про свою "профессиональную" область деятельности, поэтому его и накормили говном.
>>420235 Все таки с людьми стоит быть помягче. Мало ли кто выебываться начал, можно было просто не отвечать, особенно если видно что собеседнику уже ничего не помогает. И уж точно ненормально называть кого-то душнилой лишь за то что огрызнулся в ответ.
>>420203 >Ещё добавлю к твоему высеру, что в посте, который ты комментируешь имелось ввиду то, что наличие планировщика сводит "сложность" большого числа одновременных прерываний на нет. Не сводит, потому что прерывания и задачи планировщика задач это совершенно разные вещи, они по разному реализованы и выполняют разные функции. Планировщик в операционной системе реального времени выделяет каждой задаче строго определенное время и реализован он на уровне языка программирования(чаще всего ОС пишутся на Си). И он сам использует как минимум прерывание одного аппаратного таймера для своей работы. Прерывания реализованы аппаратно на уровне архитектуры и могут занимать разное время, а можно и вообще зависнуть в прерывании и не выходить из него. По поводу того, что планировщик задач может заменить прерывания. Это не так. Допустим, в планировщике задач на каждую задачу у тебя отведено по 1 мс, в очереди 10 задач. А на смену фронта по одному из выводов МК должен откликнуться буквально в течении нескольких тактов. Пока операционная система обработает 10 задач пройдет 10 мс, это слишком много. Планировщик задач тут не поможет. Поэтому придется использовать внешнее прерывание.
>>420235 >Так ладно бы он поспрашивать что-то пришел, но он же выебываться начал и пояснять всем за все Я ничего не "пояснял всем за все", я общаюсь с анонами на интересующие меня темы: МК и ПЛИС, в которые я хочу вкатиться. >с ебалом "профи, который делает работающие устройства". Перечитай всю ветку разговора. Это было сказно после того, как ты меня обозвал: "Короче, какой-то хуевый из тебя программист МК, скорее фантазер" в этом посте >>420106 >При этом он пишет такую лютую хуету даже про свою "профессиональную" область деятельности, Приведи хотя бы один или несколько пунктов, где я "писал такую лютую хуету про свою область деятельности", или будешь зачислен в пиздаболы. >поэтому его и накормили говном. Разве что в твоих фантазиях.
>>420186 >>Прерывания происходят в ближайший тактовый сигнал после того, как произошло событие, вызвавшее прерывание. Это не такая уж большая разница, вполне можно сказать, что происходят в любой момент. >Ага, а critical sections не существуют, приоритета у обработчиков прерываний нет и т.д. И как это отменяет то, что прерывание происходит в любой момент времени? >>Задачи выполняются параллельно, одновременно через сдвиговые регистры отправляются и принимаются байты, меряются ацп, работают таймеры. МК только управляет ими в прерываниях. >У тебя за такт несколько инструкций процессора выполняется? Параллельно? Ты это на полном серьезе пишешь или троллишь тупостью? А при чем здесь выполение инструкций процессора, если речь о том, что разнообразная переферия МК(АЦП, счетчики) и МК работают параллельно? >>прерывания по-прежнему обрабатываются последовательно"? Мол, вот сейчас обработали прерывание 1, потом прерывание 2, потом 3 >Именно так они и обрабатываются. В однопроцессорном, одноядерном МК иначе быть не может. Даже не знаю, что тут непонятно тебе. Контроллер прерываний проверяет сработавшие прерывания последовательно по таблице векторов прерываний, ты об этом? Но он работает параллельно с основной программой, которая выполняется на CPU и если сработает прерывание, то он перенаправит МК по своему вектору и заставит МК выполнить участок кода, связанный с этим прерыванием. Конечно, это не полный парралелизм, как на ПЛИС, но время отклика на событие здесь куда быстрее, чем параллелизм с помощью планировщика задач. >>Так же как и задачи операционной системы, на которые выделяет время её планировщик задач и прерывания МК не имеют ничего общего. >Сами по себе прерывания не связаны с этим, а обработчики уже могут быть связаны. Как? >>Планировщик задач это понятие из операционных систем, он использует аппаратный таймер, чтобы каждому процессу отводилось ровно определенное время. >Ну ты хотя бы википедию почитал бы что ли, чтобы так не позориться. То, что ты назвал это только частный случай - round robin. Есть множество разных алгоритмов sceduling-a. Сразу видно профи)))) Как твой алгоритм шедуллинга без аппаратно таймера выйдет из задачи, если время будет превышено? Можно просто в задачиче while(1) поставить и никакой алгоритм тут не поможет, программа зависнет на одной задаче. >>Что ты имеешь ввиду? Приведи пример. >Псевдопараллелизм или истинный параллелизм Ну про это я уже понял, истинный параллелизм, если речь идет о цифровых схемах, только в ПЛИС, в процессорах возможны только разные уровни псевдопараллелизма. >семафоры, мьютексы, мониторы и т.д. Это все выполняет операционная система. >Это как бы то место, где начинается разработка в области МК, все остальное это детский садик. Какое-то бахвальство. В одних случаях необходимо использовать операционную систему на МК, в других программа будет проще и быстрее без неё, написанная одним циклом.
>>420187 >Если честно я тебя тут не понял. По твоему даже выполнение текущей команды не должно завершиться? Или контроллер прерываний у тебя отработает за один такт? Да, это я и имел ввиду. В ближайшую инструкцию, а не такт, инструкция занимает несколько тактов. >Ты тут только что писал о том, что не знаешь внутренностей процессоров, а тут рассуждать принялся. Внутренности знаю на уровне, достаточном для работы. Структуру процессора вплоть до того, как собрать его из логических элементов - к сожалению, нет. >Ну как, начал изучать верилог или опять будешь писать что без платы не можешь? Да, без камня не могу. Когда рядом с пекой лежит камень и мигает светодиодом как-то быстрее учится, ничего не могу с собой поделать.
>>420509 У меня DE0 nano soc на циклоне 5, включал пару раз остальное время лежит без дела, ибо лучше подолбиться в мультисиме чем постоянно заливать на циклон и смотреть там как работает схема
>>420513 Вот именно. Тут роль симуляторов совсем не такая как для микроконтроллеров. А еще так будет слишком затруднительно с конфигурациями побольше, которые компилируются десятки минут.
>>420509 >Структуру процессора вплоть до того, как собрать его из логических элементов - к сожалению, нет. Нахрена для этого знать внутренности процессора? Процессор это просто конечный автомат, не особо сложный для простых случаев. Это проще нормального БПФ, быстрой сверки, декодеров каких-нибудь помехоустойчивых кодов и прочего. А ты не столь давно грозился на автоматах что угодно сделать.
>>420506 >Планировщик в операционной системе реального времени выделяет каждой задаче строго определенное время Заебал, честно слово. https://en.wikipedia.org/wiki/Preemption_(computing) - читай. Один из примеров, где не выделяется "строго определенное время" и именно этот тип встречается в RTOS-ах чаще всего. Еще раз, то, о чем ты говоришь, это round robin - частный случай, самый простой.
>По поводу того, что планировщик задач может заменить прерывания. Это не так. Ты вообще не вкуриваешь, о чем тебе пишут.
>Не сводит, потому что прерывания и задачи планировщика задач это совершенно разные вещи Да, только тебе другое объясняют, овощ.
>>420508 >А при чем здесь выполение инструкций процессора, если речь о том, что разнообразная переферия МК(АЦП, счетчики) и МК работают параллельно? При том, что изначально ты заявил, что ПЛИСы не сложнее микриков. Тебе намекнули, что есть фундаментальная разница: ПЛИСы параллельны. Ты заявил, что микрики у тебя тоже параллельны. Заметь, никто не спорит с тем, что перИферия (даун ты неграмотный) работает параллельно, и битики прерываний в регистре прерываний параллельно могу выставлятся. Загвоздка в том, что для программиста под микрики эта параллельность никак на сложность разработки не влияет, потому что все это спрятано под капотом, так сказать. А разработчик под МК имеет дело с написанием последовательных программ. Я не ебу, на кой хер ты, как ты написал, "держишь в голове параллельную работу всей периферии", скорее всего ты вообще не понимаешь что делаешь и не понимаешь принципов программирования. Именно в МК при написании программы ты всегда имеешь дело с последовательным алгоритмом. Еще раз, дебил, да, периферия параллельно триггерится, но дальше те же прерывания разруливаются последовательно. Понимаешь?
>>420508 > Конечно, это не полный парралелизм Это вообще нахуй никакой не паРаЛЛелизм (чмо ты неграмотное). Это максимум ПСЕВДО параллелизм. Где твоя единственная проблема это ДОСТУП К ОБЩИМ РЕСУРСАМ, т.е. СИНХРОНИЗАЦИЯ.
>Как? При обработке прерывания сохраняешь контекст, если надо создаешь таску для обработки события (может быть разный приоритет), восстанавливаешь контекст, попадаешь либо в прерванную таску, либо, если у события приоритет выше, чем у данной таски, начинаешь выполнять созданную в прерывании таску. Фишка в том, что очень легко в этом случае анализировать ПОСЛЕДОВАТЕЛЬНОСТЬ выполнения операций при разных сценариях и относительно легко оценить WCET.
>Как твой алгоритм шедуллинга без аппаратно таймера выйдет из задачи, если время будет превышено? В этом случае юзается ватчдог, да. В другом смотри пред. пункт и читай статью на вики про preemptive scheduling.
>Это все выполняет операционная система. А что ты там нахуй погромируешь тогда, если по-твоему, тебя это не касается и это выполняет операционная система? Периферию конфигурируешь что ли? Лол, пиздец какой.
>в других программа будет проще и быстрее без неё, написанная одним циклом. Ага, а проблемы доступа к общим ресурсам в этом случае не возникает, лол.
>>420508 И еще, добавлю, что я эти RTOS для микриков писал своими руками еще в университете (ибо учился в развитых странах, а не СНГ), у меня два высших образования и опыт работы как эбмеддед так и в ПЛИСах (сейчас FPGA/ASIC), поверь, я знаю, о чем говорю, и сразу вижу твой уровень (околонулевой). И, к сожалению, я знаю уровень большинства компаний в этой области на постсоветском пространстве и удручающий уровень образования тоже знаю, поэтому с понимаем отношусь к пробелам в твоих знаниях. Попробуй, вместо того, чтобы нести околесицу, прочитать пару хороших общепризнанных книжек по МК и RTOSам, а потом уже возвращайся со своим авторитетным мнением.
>>420519 Манька, путающая микропроцессор и микроконтроллер, и до которой то, что она это путает, доходит не с первого раза, рассуждает о чьем-то уровне, хвалясь проектами уровня laba.c.
>>420527 >путающая микропроцессор и микроконтроллер И в чем их отличие? Мне всегда казалось что там нет более-менее четкой границы. Периферия со всякими таймерами, АЦП, ЦАП и прочим бывает и в тех и других. Память? Тоже по разному бывает. Например, i.MX 6ULL это микропроцессор? Чем тогда его периферия отличается от STM32, что один вдруг стал процессором, а другой микроконтроллером?
>>420528 Это да, действительно мерзко выглядит. Был бы он умнее, вообще ничего в ответ не писал.
>>420516 >https://en.wikipedia.org/wiki/Preemption_(computing) - читай. Один из примеров, где не выделяется "строго определенное время" и именно этот тип встречается в RTOS-ах чаще всего. Еще раз, то, о чем ты говоришь, это round robin - частный случай, самый простой. Теперь понял. Прерывания - это аппаратный способ распределения задач, а шедуллер - программный. Можно выставить приоритет задач в шедуллере и тогда задача, требующая наибольшего быстродействия, прервет все остальные задачи и выполниться в срок.
>>420517 >При том, что изначально ты заявил, что ПЛИСы не сложнее микриков. Тебе намекнули, что есть фундаментальная разница: ПЛИСы параллельны. Ты заявил, что микрики у тебя тоже параллельны. Заметь, никто не спорит с тем, что перИферия (даун ты неграмотный) работает параллельно, и битики прерываний в регистре прерываний параллельно могу выставлятся. Да, это я и имел ввиду. Ведь речь была о чем? О том, что ПЛИСы и МК работают параллельно, и это так. >Загвоздка в том, что для программиста под микрики эта параллельность никак на сложность разработки не влияет, потому что все это спрятано под капотом, так сказать. Влияет, нужно учитывать время, за которое периферия выполняет задачи или МК откликнется на внешнее прерывание. >А разработчик под МК имеет дело с написанием последовательных программ. Разарботчик МК пишет программы, разработчик ПЛИС - цифровые схемы. У МК и ПЛИС разные задачи и нельзя говорить, как утверждаешь ты, что, мол, плиски для элиты, а микроконтроллеры для быдла. >Я не ебу, на кой хер ты, как ты написал, "держишь в голове параллельную работу всей периферии", скорее всего ты вообще не понимаешь что делаешь и не понимаешь принципов программирования. Я все прекрасно понимаю. >Именно в МК при написании программы ты всегда имеешь дело с последовательным алгоритмом. Т.е. ты утверждаешь, что вся программа для МК представляет собой последовательный алгоритм. Но это не так, если используется хотя бы одно прерывание. Еще раз, дебил, да, периферия параллельно триггерится, но дальше те же прерывания разруливаются последовательно. Прерывания обрабатываются последовательно, но при этом параллельно(псевдопарралельно, ведь ядро у МК одно) алгоритму основной программы.
>>420518 >>Как твой алгоритм шедуллинга без аппаратно таймера выйдет из задачи, если время будет превышено? >В этом случае юзается ватчдог, да. В другом смотри пред. пункт и читай статью на вики про preemptive scheduling. Ещё лучше. Представим твой алгоритм шедуллинга. //задача 1 ... //задача 2 ... //задача 3 ... //задача 4 ... В задаче 2 ставим while(1). //задача 1 ... //задача 2 while (1) { }; //задача 3 ... //задача 4 ... Watchdog будет каждый раз из задачи 2 возвращаться в задачу 1, а следующие после задач 2 задачи 3 и 4 вообще никогда не будут обработаны. Сразу виден твой уровень 2 университетов развитых стран и опыта работы в эмбеддед и ПЛИСах, хех. >>Это все выполняет операционная система. >А что ты там нахуй погромируешь тогда, если по-твоему, тебя это не касается и это выполняет операционная система? Касается, я должен знать как это все работает и как настроить в операционной системе. Суть в том, что с нуля операционку писать никто не будет(в продакшене нет на это времени и нет смысла) обычно берется нужная RTOS и она и выполняет разные семафоры и шедуллеры. >Периферию конфигурируешь что ли? Лол, пиздец какой. А что, переферию не нужно конфигурировать?
>>420519 >И еще, добавлю, что я эти RTOS для микриков писал своими руками еще в университете (ибо учился в развитых странах, а не СНГ), Хоть я учился в СНГ, RTOS своими руками не писал(хотя, запросто смогу написать хоть на Си, хоть на ассемблере, если немного почитаю про это), алгоритмы шеддулинга я писал и как работают семафоры и приоритет задач в RTOS тоже знаю. > у меня два высших образования и опыт работы как эбмеддед так и в ПЛИСах (сейчас FPGA/ASIC), поверь, я знаю, о чем говорю, Так ты тот анон из Швеции? Ну завидую, повезло со стартовыми условиями, родаками, мне повезло меньше. Но уровень образования в СНГ не сильно хуже, можно найти как годного спеца в СНГ, так и полного дуба с дипломом MIT. Тут больше от конкретного человека зависит, а не от вуза. > и сразу вижу твой уровень (околонулевой). > Попробуй, вместо того, чтобы нести околесицу, Приведи, пожалуйста, примеры из моих постов, где я нес околесицу и которые свидетельствуют о моем околонулевом уровне.
>>420556 >Т.е. ты утверждаешь, что вся программа для МК представляет собой последовательный алгоритм. Но это не так, если используется хотя бы одно прерывание. Ага, только последовательность действий никуда не исчезает. Она прерывается и начинает ветвится, но это не истинный параллелизм, маня.
>>420559 >Ну завидую, повезло со стартовыми условиями, родаками, мне повезло меньше У меня не было особых стартовых условий, как ты говоришь. Обычный мухосранск, обычная семья, все. Я не хочу продолжать этот спор. Ты не понимаешь разницу между истинным и псевдо параллелизмом. Ты не знаешь плисовскую специфику, а специфику эмбеддеда знаешь довольно узко. Я могу только пожелать тебе осознать узость и невежество своих представлений и заняться самообразованием.
По моему, с параллелизмом все понятно - ядро обрабатывает команды последовательно, периферия работает параллельно (по сути так же, как цифровые блоки в ПЛИС, только ее уже реализовали в кремнии в составе стандартизированной архитектуры + аналоговая часть, где она есть).
Кстати, иногда в плис напрямую нужны навыки с микроконтроллеров - при использовании soft или hard ядра в ПЛИС его ПО пишется также, как для МК. Тот же Ethernet + протокол обмена + более-менее сложное управление йоба цифровыми блоками нередко делаются с использованием soft-ядра и rtos. >>420519 Оффтоп: Кто хочет учится - тот научится и там, и тут. У меня 30-40% бывших одногруппников также умеют и практикуют в fpga и mcu, кто-то из них asic занимается. Некоторые студенты защищают готовые приборы и блоки для asic как дипломы, было бы желание, впрочем, на работе все равно полноценные специалисты формируются ещё несколько лет. У нас просто больше людей на бюджете и относительно недорогом платном учатся на отъебись, поэтому средний уровень по больнице несколько ниже.
>>420556 >Т.е. ты утверждаешь, что вся программа для МК представляет собой последовательный алгоритм. Но это не так, если используется хотя бы одно прерывание. Именно что так. Если у тебя программа сделала куда-то JMP, то это не значит что твой алгоритм параллельный или псевдопараллельный, он как был последовательным так и есть. То же самое и с прерываниями, там прыжок делается не через JMP, а самим ядром, но принципиально это ничего не меняет, в обоих случаях счётчик команд прыгает с места на место и ничего более. Даже в самом термине "прерывание" заложен весь смысл: основная программа прерывается и выполняется другой участок кода.
>>420569 >Тот же Ethernet В своё время, я его на чистом Верилоге поднял, так-то.
>>420548 >Разница не такая уж большая >>420531 >И в чем их отличие? Мне всегда казалось что там нет более-менее четкой границы. Периферия со всякими таймерами, АЦП, ЦАП и прочим бывает и в тех и других.
Я всегда думал что как раз наличие периферии и ОЗУ внутри кристалла и отличает процессор от МК, в МК она есть , в процессоре нет. Например какой-нибудь intel i7 - это процессор, а вот уже STM - МК.
>>420531 >там нет более-менее четкой границы Все это хуйня для первокуров - взрослые делают работу, а не размышлют "программирую я процессор или микроконтролер?".
>>420643 >Типа без PHY? Без него никак, он же напряжения согласует. Я делал на marvell 88e1111, нужно было поднять 100мб/с. Но он у меня только контрольную сумму считал, кодировку 8b/10b делал и финальное манчестерское кодирование, может ещё начальную преамбулу добавлял, не помню уже, хотя это всё можно было и самому сделать, не сложно.
>>420776 >В любом случае, для меди нужен развязывающий транс Ты падла еще здесь? Тебя же уволили еще вчера! Какие нахуй трансформаторы? Конденсаторы! Гальваническая развязка? Да вертел её на хую! Хуяк хуяк и в продакшен! Еще бздани что разъемы нужны. На плату сука напрямую привариваем! Оптимизация во все поля! Везде глаз да глаз нужен! Такую хуйню сморозят и накрутят! Где-то был забавный документ от броадкома как согласовывать разные выходы PHY (токовый, напряжения) друг с другом для внутриприборных связей (на коротких дистанциях) без гальванической развязки.
Твой коммент хорош, но не в тему. Чуть выше обсуждаются именно микросхемки PHY, а не трансформаторы и разъемы, поэтому паста про фотодиоды и светодиоды в SFP немного не к месту, так как в большинстве случаев это внешний SFP модуль и нужен только простой разъем под него (и serdes в fpga), а не модули 1х9 или 2х5 которые жестко на плату запаиваются.
>>420889 >согласование сред и напряжений можно и на рассыпухе организовать Может не надо? Возьми за бакс-другой микросхемку PHY. Всяко меньше места займет и без скатывания в такие маразмы: https://marsohod.org/index.php/projects/94-ether-sendЭто не упрек в адрес марсохода, прикольные проекты можно выловить http://www.equicom.ua/ping/ping1/ping1.htm - микроконтроллеры? Стек TCPUDP/IP? Трансформаторы? Гальваническая развязка? Разъемы? Всех НАХУЙ! Только хардкор! ПЗУ с ближайшей помойки и оттуда же россыпчатой логики, стабилизаторов надергаете со сдохших хабов . Стирание ПЗУ? С фонаря лампу ДРЛ спиздите вместе с дросселем. На солнышко положите и мне похуй что оно с неделю будет стираться. Надо быстрее? Пиздуйте к алкашам-сварщикам. Программатор нужен? Да хуй вам. У в стельку пьяного электрика напиздите автоматов вместо выключателей, там же проводов найдете что бы собрать ручную прошивалку ПЗУ. ЗА РАБОТУ! БЫСТРА БЛЯ! Было бы смешно если бы это не было реальностью здесь. Такие проекты хоть и выглядят как маразм, но.. Они идеально подходят под обучение - очень отчетливо видно где что как работает и как это можно воссоздать.
Спизженно отсюда https://nag.ru/goodies/resurs/genman.jpg Даже не знаю - существует ли прошивка в сети. Задрочив этот сайт в свое время без вопросов взяли в инженерный состав провайдера у которого локал_очка из почти 2К абонентских свичей.
>>419793 >Для примера попробуй хотя бы сделать UART-приёмник Ну если сделать UART приемник с одним сэмплом на каждый бит принимаемого байта(в середине бита), то он будет не сложнее передатчика. Я так и делал программный UART для МК, потому что если передача ведется по разным промышленным протоколам всё равно отправляемый пакет проверяется по CRC и с надежностью непосредственно UARTа можно не париться. А вот если сэмплов будет 8 на один бит, как в настоящих аппаратных UART приёмниках, то это будет уже на порядок сложнее, да.
>>420531 >И в чем их отличие? Мне всегда казалось что там нет более-менее четкой границы. Микрокотроллер - это когда переферия, ПЗУ и ОЗУ расположены на одном кристале с ядром.
>>420564 >Ты не понимаешь разницу между истинным и псевдо параллелизмом. Я прекрасно знаю эту разницу. ПЛИС - это цифровая схема, МК - это ядро, которое выполняет инструкции из своей памяти программ одну за другой. >Ты не знаешь плисовскую специфику, Не совсем пониаю, что нужно особго "знать в ПЛИСовской специфике". ПЛИСы отличаются друг от друга только количеством ячеек и частотой тактирования, всё. От разработчика ПЛИСок требуется только знание цифровой схемотехники и языков VHDL и Verilog, чтобы он мог запрограммировать плиску. >а специфику эмбеддеда знаешь довольно узко. В эмбеддеде я разбираюсь не хуже тебя. >Я могу только пожелать тебе осознать узость и невежество узость и невежество своих представлений Опять таки, ты врёшь, покажи, где я в своих постах показал свое невежество и узость своих представлений.
>>420519 > RTOS для микриков писал своими руками еще в университете (ибо учился в развитых странах, а не СНГ), у меня два высших образования и опыт работы как эбмеддед так и в ПЛИСах (сейчас FPGA/ASIC) Всем похуй вниманиеблядок. ОЧНИСЬ ВСЕМ НАСРААТЬ ПОХУЙЙЙ.
>>421592 >А вот если сэмплов будет 8 на один бит, как в настоящих аппаратных UART приёмниках В настоящих аппаратных UART приёмниках количество сэплов нечётное число. Чтобы мажоритарное голосование могло работать.
>делал программный UART для МК Уровня лаба в местной шараге? Ну это судя по твоему высказыванию выше о 8 сэплах.
>>421596 >истинный последовательнизм именно он и есть, если не брать во внимание всякие многоядерности.
>>421599 >ПЛИС - это цифровая схема, МК - это ядро, которое выполняет инструкции Так то МК - это тоже цифровая схема. Там тоже регистры ядра работают параллельно, однако суть вещей это не меняет.
>ПЛИСы отличаются друг от друга только количеством ячеек и частотой тактирования, всё Ты в общем-то начни изучать ПЛИСы, и через полгодика приходи, тогда и поговорим.
>>421595 Это ты так считаешь. А в NXP считают иначе, на примере упомянутого i.MX 6ULL. Ерунда у тебя, а не определение. Например ископаемый 8031 был без ПЗУ, но его все равно называли микроконтроллером, а периферии у него толком не было. А какой-нибудь Intal Atom может иметь GPIO. И так далее.
>>421650 > А в NXP считают иначе, на примере упомянутого i.MX 6ULL. Это applications processor, что никак не является синонимом микропроцессора, этот термин ближе к термину SoC
>>421670 Все это ерунда, граница между одним и другим не становится от этого четче. >термину SoC Сок это то же самое что "полный фарш" - обо всем и ни о чем. Какой-нибудь nrf24 с 8051 внутри это сок. Подобных микроконтроллеров с трансивером внутри существует много и далеко не все из них называют соком, например rfPIC. Или ближе к этому треду, цинки тоже соком называют, а сравнивать их с nrf24 бессмысленно.
>>421703 >Все это ерунда, граница между одним и другим не становится от этого четче. Тут важно то, в чем соснул именно ты. А ты соснул в том, что открыл даташит, увидел надпись applications processor и подумал, что речь о микропроцессоре. А это сильно разные вещи, практически омонимы. Можно долгоискать границы между applications processor и микроконтроллером, но микропроцессор это довольно определенный термин, хотя сейчас и довольно устарелый. Но это очень унылый спор для аутистов, поэтому больше я писать на эту тему не буду.
>>421745 Полнейшая чушь. Ты еще написал бы что DSP это не процессор, даже если вообще без периферии и RAM/ROM. Особенно показательно что про SoC ничего не ответил.
>>421599 >ПЛИСы отличаются друг от друга только количеством ячеек и частотой тактирования, всё. Чел, ну что же ты так слился некрасиво и глупо...
>От разработчика ПЛИСок требуется только знание цифровой схемотехники и языков VHDL и Verilog, чтобы он мог запрограммировать плиску. Ага, конечно. Алгоритмы ЦОСа знать не надо, особенности работы TTL знать не надо, ну и т.д. по длинному-длинному списку. Про vhdl и verilog ты, видимо, не в курсе, что это не вся работа. Там целый комбайн разных тулов и технологий используется от идеи и прототипирования до конечной верификации в железе. Ох, а сколько всего интересного происходит при работе с арифметикой! Там столько всего интересного из численных методов! Ох, а алгоритмы, например, в связи, могут быть довольно сложными даже просто по своему математическому описанию, представляешь что творится в реализации? А как я обожаю метастабильность и signal race condition... мммм. Ох, а как же софтпроцессоры? Про них-то забыли! А еще можно петалинукс поднять!
Здарова, бандиты! Попала мне в руки плата с Altera EPM3256ATC144-10N - is any good? Какой минимальный набор железа и софта, чтобы помигать светодиодиком? Никогда раньше ПЛИС не ебал с ПЛИС дела не имел
>>422532 >EPM3256ATC144 Говно мамонта, так еще и CPLD - штука с ограниченным числом перезаписей своей памяти конфигурации, коих по даташиту до 100 раз. Так и написано - ДО 100 раз. Где-то промелькала инфа что при разводке (fitter) некоторые блоки могут отключаться и использоваться только для коммутации и при попытке создать счетчик на 50 бит в max3064 и немножко логики - соснешь хуйца, хотя у тебя еще якобы 16 триггеров в запасе.
Если забить хуй - норм выбор для начала. По софту - самый "свежий" Quartus II 13.0sp1, в более свежих версиях убрали поддержку MAX3000. Для программирования конфигурирования - usb blaster или сам собери на pic18f14k50.
>>422535 Научится писать без говнокода, делать компактные конструкции, констрейнты, что будет плюсом. А потом уже перейдёт на что-то посерьёзнее. >штука с ограниченным числом перезаписей своей памяти конфигурации, коих по даташиту до 100 раз Где-то их тестировали на количество циклов. 10000 успешно получилось, дальше просто не стали. Видимо, в даташите написали 100 циклов, чтобы в случае чего не было претензий, что ПЛИС сдохла от постоянной перезаписи.
>>422550 > Видимо, в даташите написали 100 циклов, чтобы в случае чего не было претензий, что ПЛИС сдохла от постоянной перезаписи. В шоке от твоего интеллекта и логики.
>>422550 >Где-то их тестировали на количество циклов. 10000 успешно получилось, дальше просто не стали. Уважаемый, не надо подтасовывать факты, а если пиздишь - то готовь пруфы вместо пердежа. Тестировали MAX II на Марсоходе https://marsohod.org/11-blog/91-killmax которая имеет мало общего с более ранней серией MAX3000 или MAX7000. Здесь вопрос про серию MAX3000.
Мое мнение - начинать с любой FPGA, которую можно конфигурить хоть каждую секунду и ей ничего не будет.
>>422550 >чтобы в случае чего не было претензий, что ПЛИС сдохла от постоянной перезаписи. Там не только про это, а еще про сохранение конфигурации в течение N лет. >Научится писать без говнокода, делать компактные конструкции, констрейнты, что будет плюсом. Про компактность и говнокод сомнительно. Что бы ты не писал, все равно очень мелкие. Что на них делать то? Что-то на уровне частотомера или часов с будильником? Может генератор полос для аналогового телевизора? По моему для начала можно ограничится моделсимом. >usb blaster или сам собери на pic18f14k50. Если совсем по минимуму, то можно byte blaster ii от LPT, если найдется комп с LPT.
В Сыклоне 4 у триггеров есть вход ena. Как он работает? Я понимаю что это разрешение на запись, но как он функционирует? Я имею в виду подавать на него надо синхронно с тактовым сигналом, или можно нет? Это просто мультиплексор на D-входе с обратной связью от выхода триггера, или что-то более хитрое?
>>422860 Сигнал разрешения на запись должен быть синхронным с клоком. >Это просто мультиплексор на D-входе с обратной связью от выхода триггера Скорее всего, но это не имеет значения. В плисине, кроме сброса и установки, не должно быть асинхронных сигналов. Тот же анализатор таймингов считает енейблы синхронными клоку.
>>422954 Ещё стоит не забывать что те же асинхронные сбился не полностью асинхронные: Включение сброса может быть асинхронно с клоком, но выключение всегда должно быть синхронным. Для этого используют сихронизаторы сброса.
>>422976 >сдаётся мне, не всё так просто >так он там называется clock enable, что как бы намекает на то, что этот вход не так прост как кажется. У тебя шиза какая-то начинается. Clock enable -- это стандартное название входа регистра. Можешь посмотреть у других производителей, например у Xilinx. Есть ещё clock gating, который отключает полностью клок, уменьшая энергопотребление, но это другое. А так перестань уже ебать мозг себе и анонам, почитай про синхронный дизайн, метастабильность и синхронизацию сброса. А асинхронщину оставь до того момента, как будешь работать в интеле и делать всякие схемы домино (как в 4 пнях).
>>422977 >А так перестань уже ебать мозг себе и анонам, почитай про синхронный дизайн, метастабильность и синхронизацию сброса. Ещё раз. Я не спрашиваю про синхронный дизайн или сброс. Я спрашиваю про конкретный вход триггера. Называется он clock enable, что намекает нам на то, что он находится во взаимосвязи с тактовым сигналом. Вот об этом я и спрашиваю. Как он с ним взаимодействует? В идеале бы, конечно, увидеть схему этого триггера, но скорее всего её нет в открытом доступе. Меня терзают смутные сомнения, что этот clock enable просто объединён по И с тактовым сигналом, но это не точно.
>>423048 >просто объединён по И с тактовым сигналом Интересно, можно ли проверить это каким-нибудь экспериментом? Для упрощения задачи можно считать что триггер не в составе ПЛИС, а отдельно. мимопроходил
>>422934 Я хуй знает уже в чем твоя проблема. Не знаешь какой ena, так подай сигнал в двух случаях - синхронно и асинхронно, да посмотри, что будет в ттл симуляции.
>>423097 >Ещё у MAX3000A пятивольтовое питание Лишь бы что-то бздануть. Даташит на 46 страниц лень пролистать? МАХ3000 - у них питание 3.3 Вольта, а выводы - да, держат 5 вольт. Возьми тот же обоссанный некро FLEX10K как на Altera UP2 и еби ее сколько хочешь переконфигурациями. https://habr.com/ru/post/277947/
>>423048 >что этот clock enable просто объединён по И с тактовым сигналом Это называется gated clock, об этом я писал ранее, и это не clock enable.
>Называется он clock enable, что намекает нам на то, что он находится во взаимосвязи с тактовым сигналом Под clock enable обычно понимают синхронный сигнал и это пошло ещё с тех времён, когда появились первые логические ИС а может и раньше. Подразумевается что clock enable управляет мультиплексором, на один вход которого приходят данные, а на другой выход флипфлопа. И у альтеры должно быть также, или по крайней мере поведение схемы должно быть такое же, иначе они не использовали стандартное обозначение флипфлопа. Для варианта с логическим И enable не может идти с выхода флипфлопа, так как при этом будет укорочение импульса клока.
>>421645 >>421985 >>ПЛИСы отличаются друг от друга только количеством ячеек и частотой тактирования, всё. >Чел, ну что же ты так слился некрасиво и глупо... Ну и чем же они отличаются, кроме частотой тактирования и колвом ячеек?? Отвечай, либо слит. >Ага, конечно. Алгоритмы ЦОСа знать не надо, особенности работы TTL знать не надо, ну и т.д. по длинному-длинному списку. Про vhdl и verilog ты, видимо, не в курсе, что это не вся работа. Там целый комбайн разных тулов и технологий используется от идеи и прототипирования до конечной верификации в железе. Ох, а сколько всего интересного происходит при работе с арифметикой! Там столько всего интересного из численных методов! Ох, а алгоритмы, например, в связи, могут быть довольно сложными даже просто по своему математическому описанию, представляешь что творится в реализации? А как я обожаю метастабильность и signal race condition... мммм. Ох, а как же софтпроцессоры? Про них-то забыли! А еще можно петалинукс поднять! Всё тобою вышеперечисленное и к проганью микриков относится, и ко многим другим сферам, не только к ПЛИС. Основы всего этого дают в вузах, а то, что не дали, не составит труда научится самому. А ты так описываешь всё это, будто это тебе не это, а секретные манускрипты древних, доступные только гениям.
>>423233 >Всё тобою вышеперечисленное и к проганью микриков относится Что-то я не слышал, что на МК реализовывали DSP часть современных телекоммуникационных систем. Ага, МК тебе в реалтайме OFDM в FFT разложит, да на современных частотах особенно, в МК из всего реального DSP максимум ШИМом яркость дисплея настраивают, вот и весь ЦОС в МК. Иди дальше конфигурировай свои микрики, да хэндлеры для кнопочек пиши.
Нет ну какой пиздец, сравнить ЦОС, реализуемый на ПЛИСах, с ЦОСом, реализуемом в микриках
>>423233 Ты, наверное, подумал, что под "алгоритмами в связи" я имел в виду что-то вроде стэка протоколов, которые на МК и реализуются. Однако под алгоритмами я имею в виду такие штуки, как декодеры, турбо-эквалайзеры и т.д.
>>423233 >Ну и чем же они отличаются, кроме частотой тактирования и колвом ячеек?? Отвечай, либо слит. Я не тот анон, который тебе про это писал. Но тут ты сильно... Самими ячейками, внезапно. Как минимум LUT-ы в ячейках (LE, в терминологии альтеры) бывают с разным количеством входов. Возможности таких ячеек заметно отличаются в разных FPGA. Ячейки объединяются в штуки побольше с общей цепью переноса, это тоже может отличаться. Из наиболее очевидного, кроме ячеек (LE) в FPGA есть разные аппаратные блоки, такие как блочная память, умножители с DSP блоками, PLL, высокоскоростные трансиверы SerDes, аппаратные блоки для подключения памяти, даже входы/выходы это тоже отдельные конфигурируемые блоки. И все это отличается в разных ПЛИС.
>>421646 >>А вот если сэмплов будет 8 на один бит, как в настоящих аппаратных UART приёмниках >В настоящих аппаратных UART приёмниках количество сэплов нечётное число. Чтобы мажоритарное голосование могло работать. Ты ошибаешься. Смотри пик 1, даташит на Атмега8, аппаратный UART. В нормальном режиме 16 семплов(они пронумерованы начиная с единицы), в ускореном режиме 8 семплов на один бит данных. >>делал программный UART для МК >Уровня лаба в местной шараге? Чем лаба в местной шараге отличается от лабы в элитном вузе лиги плюща? По-факту результат должен получиться один - устройство должно работать в соответствии с тех.заданием лабы. >ПЛИС - это цифровая схема, МК - это ядро, которое выполняет инструкции >Так то МК - это тоже цифровая схема. Там тоже регистры ядра работают параллельно, однако суть вещей это не меняет. Да, понимаю. Только ПЛИСку можно сконфигурировать под любую цифровую схему, какую захочешь, чего не скажешь про МК. >>ПЛИСы отличаются друг от друга только количеством ячеек и частотой тактирования, всё >Ты в общем-то начни изучать ПЛИСы, и через полгодика приходи, тогда и поговорим. Ну как я понял, в них есть много разных "переферий" как в микропроцессорах - различны полезные блоки подтяжек ног, аппаратных умножений, даже встроенные процессоры есть. Наткнулся на познавательную статью о FPGA, пик 2. Это только у простельнких PLA и CPLD в микросхеме ничего нет, кроме ячеек. Скоро начну изучать, программатор USB Blaster уже купил, теперь надо заказать с алика отладочную плату с плис с какой-нибудь мощной плис. Потом еще может разживусь простеньким логическим анализатором/осцилом приставкой, но на первых порах можно обойтись и без этого.
>>423238 Зойчем ты это делаешь, Ирод? Никак не дотянусь до тестов этой фичи во Flex-ах , которой нет в новых циклонах/стратиксах или в шары ебусь. Все скачали старые версии квакающих квартусов, часть которых навсегда протухнет и исчезнет после 26-го числа...? Кто не понял - будут некоторые проблемы с программированием MAX3000/MAX7000 и подобной некрофилии, включая Flex-ы в виду того что только в сети можно будет найти старые версии кактусов.
>>423235 >Что-то я не слышал, что на МК реализовывали DSP часть современных телекоммуникационных систем. Ага, МК тебе в реалтайме OFDM в FFT разложит, да на современных частотах особенно, В STM32 есть аппаратное преобразование фурье. А уж если мы возьмем микроконтроллеры с DSP, то они и вовсе могут дать пососать ПЛИС. Впрочем, и программная ЦОС применяется, интегрировать, дифференцировать, отфильтровать сигнал можно на мк программно. > в МК из всего реального DSP максимум ШИМоем яркость дисплея настраивают, вот и весь ЦОС в МК. Ну-ну, и давно ШИМ относится к цифровой обработке сигналов? >Иди дальше конфигурировай свои микрики, да хэндлеры для кнопочек пиши. А ты тогда, а ты, знаешь, что ты - иди светодиодом мигай на плиске, бака! Ну а если серьезно, последний раз нажатие кнопочек и мигание лампочками писал на лабах в вузе, так получилось, что в рабочих проектах мне ни разу не пришлось работать с кнопочками. Всё взаимодействие с пользователем происходит по езернету, витой паре, вай-фаю, инфа выводится на дисплеи без всяких кнопочек и лампочек ебаных. >Нет ну какой пиздец, сравнить ЦОС, реализуемый на ПЛИСах, с ЦОСом, реализуемом в микриках И в плисках и в Микроконтроллерах используется ЦОС, для разных задач. И там, и там нужно знать основы ЦОС, чтобы решить поставленную задачу.
>>420564 >У меня не было особых стартовых условий, как ты говоришь. Обычный мухосранск, обычная семья, все. >учился в развитых странах, а не СНГ Родившись в обычной семье из мухосранска в СНГ не возможно учиться в вузе развитых стран. Вот прям абсолютно никак. Если это бесплатные программы, нужно, чтобы родаки узнали об этой программе, делали все, чтобы ты смог по этой программе поступить, собрать необходимые доки, обучить тебя иностранному языку этой страны, дать хорошее образование, чтобы ты сдал вступительные экзамены, оплатить переезд и проживание в стране на время обучения. Т.е. это должна быть не обычная семья из мухосранска, а семья с достатком выше стреднего, в которой родители заботятся о твоем будущем. То, что ты смог получить образование в вузе развитой страны это заслуга твоих родителей, а не твоя, скажи им спасибо.
>>423238 > В нормальном режиме 16 семплов(они пронумерованы начиная с единицы), в ускореном режиме 8 семплов на один бит данных. Что тут сказать... Если это действительно так, то у меня плохие новости для Атмеги 8. Какое будет результирующее значение если с линии считаются 4 нуля и 4 единицы? При этом, судя по картинке, считывания распределены равномерно по биту, что неверно. В начале бита считываний лучше не делать.
>Чем лаба в местной шараге отличается от лабы в элитном вузе лиги плюща? Ничем, и там и там студенческая лаба, студенческого же уровня. В реальной промышленности более ответственный подход к разработке. >устройство должно работать в соответствии с тех.заданием лабы Какое тех. задание такая и лаба, это да.
>>423241 > А уж если мы возьмем микроконтроллеры с DSP, то они и вовсе могут дать пососать ПЛИС. Спец. устройство всегда будет работать быстрее универсального. Так что ПЛИСы, выполняя конкретный жёстко заложенный алгоритм, накинут на клыка любому DSP-процессору.
>>423251 А нет, выходит ты прав с мажоритарной системой и нечетным количеством. Вот пик. 16 и 8 это количество тактов, а самих семплов 3 и приходятся они на середину бита. Для семплов отбираются 8,9,10 строб соответственно из 16 стробов.
>>423251 >Так что ПЛИСы, выполняя конкретный жёстко заложенный алгоритм, накинут на клыка любому DSP-процессору. Здесь они плюс минус равнозначны. И в FPGA и в цифровых сигнальных процессорах есть встроенные блоки DSP для ЦОС.
>>423255 Как-то сомнительно. С чего бы тогда всякие биткойны в свое время майнили именно на FPGA? Может непосредственно к ЦОС такое отношение не особо имеет, но на помехоустойчивые кодеки должно быть весьма похоже.
>>423276 >С чего бы тогда всякие биткойны в свое время майнили именно на FPGA? Потому что в процессорах DSP есть строгоопределенный набор алгоритмов ЦОС и алгоритм майнинга битка туда не входит. А на FPGA можно написать алгоритм(конфигурацию схемы) который будет майнить биток.
>>423289 И как это отменяет все вышесказанное >>423243, ебаный дебил? Во-первых родители должны узнавать про все эти программы и сделать всё необходимое, чтобы ты в эту программу попал, собирать доки, выбрать вуз, чтобы там была программа по обмену. Берут туда только с отличными оценками и знанием иностранного языка, то бишь родители уже заранее должны были заранее позаботиться об этом.
>>423293 Причем тут родители вообще? Я когда поступал, просто сам же подал доки в большой техвуз ДС2, где и учился спокойно 5 лет, а в последний год, а в последний год понял, что меня все заебало, пришел в отдел с разными международными программами, выбрал программу, подал доки и все, уехал на год в зарубежную магистратру, где и защитился.
>Во-первых родители должны узнавать про все эти программы и сделать всё необходимое, чтобы ты в эту программу попал, собирать доки, выбрать вуз, чтобы там была программа по обмену. Если в 18 лет за тебя все доки собирали родители, и вуз выбирали тоже они, то, естественно, никогда и никуда ты не поедешь, корзиночка мамина.
>Берут туда только с отличными оценками и знанием иностранного языка, то бишь родители уже заранее должны были заранее позаботиться об этом. Ты долбоеб? Там средний балл нужен 4.5-4.7, это как бы вообще не проблема, если ты в универе хотя бы на половину лекций ходишь. Про иностранный язык тоже хуету городишь. Никакого особого знания не нужно, нужно уметь читать, писать, уметь хотя бы на 60-70% понимать речь на слух, что-то сказать самому. Опять же причем здесь родители? У меня были нулевые знания языка в 18 лет при поступлении в ДС2. На 3-м курсе я понял, что материалов для учебы на русике мне уже не хватает и начал читать на инглише, сначала тяжело и нудно, со словарем, потом бодрее, а через полтора года уже сам писал на английском спокойно.
Ты пишешь какую-то полную хуйню, возможно, ты никогда не учился в нормальном вузе, и даже не интересовался, как такие программы работают.
>>423299 Родившись у нищих родителей в мухосране в однушке с парашной школой на окрание на 100 человек у тебя ни знаний не хватит, чтобы сдать вступительные/егэ в топ вузы ДСов на бюджет, ни денег на проживание в дсах. Просто иди нахуй, пиздобол маняврирующий, твой успех это заслуга твоих родаков, у меня больше нет желания продолжать этот оффтоп, разговор закончен. >Никакого особого знания не нужно, нужно уметь читать, писать, уметь хотя бы на 60-70% понимать речь на слух Ты дибил ебаный, то что ты пишешь это B1 как минимум, в мухосранской школе, где я учился, ты к 11 классу разве что london is a capital of great britan знать будешь, а не понимать речь на слух. Я за 2 года магистратуры больше английского выучил, чем за всю школу, потому что пришлось даташиты на английском читать и литературу техническую. >ты никогда не учился в нормальном вузе Да, но это не моя вина, я не выбирал семью, город и страну, в которой родился. Родители ни разу не были в моем вузе, я сам поступил в бакалавр, магу, сам искал места работы по специальности, сам набивал первые несколько лет опыта. Образование в "нормальном вузе" в ДС или Европы я смогу получить лет к 30, когда бабок накоплю на него.
>>423319 Что за хуйню ты несёшь? У нас в дс в "топ вузе" проходной балл поступивших по второй волне НА БЮДЖЕТ был 200-210 за 3 предмета. Это очень мало, и любая школа такой уровень даёт запросто, ведь это всего лишь 70 баллов за предмет. Тебе дают общагу за 400 р в месяц, а жить можно и за 7-8к, у нас так некоторые жили, сами работали и ещё родителям помогали. Я тебе написал, что английский я нихуя не знал, а начал в универе с чтения тех же даташитов и лекций из иностранных вузов. При учёбе по обмену или программе двойного диплома тебе выдаётся грант, покрывающий все твои расходы на жилье и еду при обучении в другой стране. То, что ты об этом ничего не узнавал это не вина твоих родителей. Не взваливай вину за свою жалкую жизнь на внешние обстоятельства, очень много разных тем и возможностей, особенно в России.
>>423320 >Тебе дают общагу за 400 р в месяц, а жить можно и за 7-8к, Вот тут у тебя накладочка выходит. Так а где ты возьмешь 7-8к на проживание, если тебе нищие родаки не будут давать столько денег? Работать паралельно с учебой? Но, извини, тогда ты будешь посещать мало лекций и средний балл 4.5-4.7 для программы обмена ты не наберешь. >То, что ты об этом ничего не узнавал Где я должен был об этом узнавать, когда поступал в вуз в 16 лет? Комп с интернетом у нас дома появился только когда я уже был на 2 курсе, а возможности мотаться по вузам ДСов и рассправшивать там приемные комиссии о их программах у меня возможности тоже не было. >Не взваливай вину за свою жалкую жизнь на внешние обстоятельства, Я не взваливаю, а собственными силами выбираюсь из того говна, в котором мне "повезло" респавнутся. Это ты не делай вид, что весь твой успех это целиком твоя заслуга, 90% это заслуга того, что тебе повезло со стартовыми условиями. >очень много разных тем и возможностей Для челов с хорошей семьи, который обучился в топ вузе ДС и Европы - бесспорно. А с коркой мухосранской шараги очень тяжело найти высокооплачиваемую работу сходу.
>>423322 >Так а где ты возьмешь 7-8к на проживание, если тебе нищие родаки не будут давать столько денег? У нас некоторые работали, еще и родителям кидали деньжат. Это надо быть убер нищуками, чтобы не набрать 7-8к в месяц ребенку на покупку продуктов в другом городе. Есть социальные стипендии в вузах, приносишь справку с доходами родителей, тебе эти 7-8к платит государство каждый месяц потом, на них и живешь. Так и работать даже не придется и лекции не пропустишь. Ты просто не умеешь крутиться.
>Где я должен был об этом узнавать, когда поступал в вуз в 16 лет? Не знаю, почему ты поступал в 16, обычно люди в 18 поступают.
>рассправшивать там приемные комиссии о их программах Ну так в любом +- крупном госвузе эти программы есть, это надо быть парашей уровня Синергии, чтобы таких программ обмена не было в принципе. Вот тебе простой ответ - не надо поступать в мутные шараги.
>Это ты не делай вид, что весь твой успех это целиком твоя заслуга, 90% это заслуга того, что тебе повезло со стартовыми условиями. Лол, ты ничего обо мне не знаешь и рисуешь удобную для себя картину в своем воображении. Моя семья была убер нищуками в 90-е, интернеты у меня появились позже всех, а нормальную пеку я себе только уже в универе купил, самостоятельно на нее заработав. И да, я считаю, что мне еще повезло, я видел истории гораздо хуже среди своих сокурсников, но это не мешало им хорошо учиться, хорошо работать и съябывать забугор, кому надо.
>Для челов с хорошей семьи, который обучился в топ вузе ДС и Европы - бесспорно. А с коркой мухосранской шараги очень тяжело найти высокооплачиваемую работу сходу. Опять же, тут не корка твоя виновата, а твой майндсет неудачника. Ты сам себе придумал эти правила жизни, по которым ты бесперспективная чмоня, поэтому любое твое действие в этом контексте превращается в превозмогание, таким образом ты тешишь свое эго, вот и все. Вылазь из этого чехла, иначе так всю жизнь и проебешь.
Ананасы, киньте в меня годную мурзилку по Intel Quartus Prime. Алсо хотел тупо и смело потыкать в https://github.com/myriadrf/LimeSDR-Mini_GW Первым делом решил просто сборку прогнать, квартус предложила обновить корки, некоторые провалились но была подсказка что можно обновить в платформ дизайнере. Платформ дизайнер обновил какую то часть. После этого сборка предсказуемо падает и я подозреваю что есть какие то зависимости (на внешние библиотеки или типа того) которые я не указал. Если кому не лень то попробуйте собрать сорцы используя последний квартус лайт или киньте хинт.
>>423340 Я как-то собирал, но дальше дело не пошло. Подробностей того как именно собирал не помню уже. FPGA там маловата, мало чего влезет. Ну можно приделать к имеющемуся демодулятору ЧМ еще парочку других, при желании можно приделать динамик, кнопочки и дисплейчик. Но толку то, что-то более интересное уже не потянет.
У нас в семье помер батя, мамка осталась одна с двумя детьми на руках. Старший заканчивал школу и должен был поступать в универ, а младший (я) как раз должен был пойти в школу. А это было начало 90-х, то ещё времечко. И вот чтобы поднять двоих спиногрызов мамка пошла работать на корабли вахтовым методом, 2 недели в рейсе, 3 дня дома и так десять лет, без отпусков, выходных и прочего. Ну так вот, старший уехал учится в город до него сутки поездом, а жили мы в такой дыре, что страшно представить, это даже не мухосранск, это вообще ёбаное днище. Ну и вот, я фактически остался один, был предоставлен сам себе, была ещё бабушка, но у неё у самой из-за войны 3 класса начальной школы, так что ни о каком воспитании и напутствиях речи не шло, она только борщ варила. Ну и какие могут быть интересы у пацаньчика в таком возрасте? С другаганами в компик погонять, да по заброшкам полазить. Да и в школе одни гопники были, туда не то что ходить, появляться в её окрестностях лишний раз не хотелось. Приедет мамка на 3 дня, навесит люлей за двойки в дневнике и опять уедет и всё по кругу. Школу закончил кое-как на трояки, так что ни о каком бюджете даже и мечтать не мог. Пришлось идти работать на полный день, а поступать на вечернее отделение, сам работал сам себе учёбу оплачивал. Какие тут на хер могут быть программы обмена - не смеши.
>>423346 Да мне пока j4f и для самообучения т.к. пока едиственная плата с fpga в доме, а вот например дисплей приделать который будет отображать например текущую центральную частоту и настройки даже может быть интересно.
Но пока надо асилить саму среду и понять что ей не хватает.
>>423349 Ну так в школе учиться надо было, а не по заброшкам лазить. Возможность ходить на уроки в школе и слушать учителей была? Была. Все, иди нахуй, сам же все и проебал, теперь страдай.
>>423354 Для начала лучше возьми ту же версию квартуса, что и у них. А еще лучше начни с более простого - мигания светодиодом. >например дисплей приделать Для такого не обязательно изменять конфигурацию FPGA, я же писал про автономную работу без компа. А если работать с компом, то дисплей без разницы как приделывать. Там у LimeSDR на плате есть программно доступное GPIO, можно через него.
>>423349 > А это было начало 90-х, то ещё времечко. >Ну и какие могут быть интересы у пацаньчика в таком возрасте? С другаганами в компик погонять, да по заброшкам полазить. Ну ты и фантазер. Мать-одиночка, начало девяностых, и... компьютер. Я читал книги о компах, увидев этот самый компьютер единственный раз в жизни. Потом, когда комп появился (точнее появился у тетки, к которой я ездил раз в неделю), игры всегда казались чем-то очень скучным, я предпочитал ломать сейвы. Сейчас у любого школьника из мухосрани возможностей учиться в 100 раз больше, чем у среднего класса в 90-е.
>>423360 > Для начала лучше возьми ту же версию квартуса, что и у них. А еще лучше начни с более простого - мигания светодиодом.
Так если там корки просило обновить это ж неспроста, может там пофиксили что.
> Для такого не обязательно изменять конфигурацию FPGA, я же писал про автономную работу без компа. А если работать с компом, то дисплей без разницы как приделывать. Там у LimeSDR на плате есть программно доступное GPIO, можно через него.
Это я и без лайма могу сделать хоть на FT2232, хоть на STM32 или AVR, суть была именно прозрачно всю эту инфу выводить без модификации софта на компе. Или например тот же FFT что для лайма в FPGA сделал на тот же экран гнать.
>>423360 У меня именно по квартусу вопрос, сам я разраб знакомый и с эмбеддом и с тырпрайзом и вот чес слово хоть оно и на эклипсе но я за полчаса не вкурил концепцию квартуса.
>>423394 Там и мини с модификацией гейтвари может в 80 мегасемплов FFT делать на борту (гугли или смотри один из форков), тому и j4f хочу посмотреть но ппц инопланетное IDE.
>>423394 Там после АЦП в LMS7002M и так децимация должна использоваться, это с одной стороны. А с другой стороны, не кажется ли тебе что частота дискретизации может упираться в FT601?
>>423357 Ну ты не сравнивай жизненный опыт ребёнка и взрослого человека, в том возрасте я учёбу на одном месте вертел, собственно как и все вокруг, а наставить на путь истинный было некому.
>>423361 >начало девяностых, и... компьютер Компьютерами мы тогда называли приставки, Денди там, Сега 16-битная. А пеку я в первый раз увидел у знакомого знакомого, он на почте каким-то сисадмином работал. Я тогда в Кваку первую погамал, культурный шок испытал, от того какими игры могут быть, после Денди сраного то, через некоторое время у другана 486 появился, с тех пор и заинтересовался компьютерами.
>>423328 >Моя семья была убер нищуками в 90-е, интернеты у меня появились позже всех, а нормальную пеку я себе только уже в универе купил, самостоятельно на нее заработав. И да, я считаю, что мне еще повезло, я видел истории гораздо хуже среди своих сокурсников, но это не мешало им хорошо учиться, хорошо работать и съябывать забугор, кому надо. Типичная ошибка выжившего. Зря тригеришь на спор, это так толсто что просто фу
>>423544 >Их всю жизнь было выгоднее майнить на видеокартах, чем на FPGA. Не факт. По соотношению потребляемая мощность/производительность плисы должны выигрывать у видеокарт. В своё время были исходники FPGA майнера битка и я запускал их на 4 и 5 стратиксах (на DE4 и DE5 бордах). После этого я понял что биток - это наёбка, никакой он не децентрализованный. Вроде тогда можно было достать бесплатно (или почти бесплатно) плисы со старых базух и на них делали FPGA майнеры. А потом уже разработали асики.
>>423544 >Не говоря уж о том, что блоки ЦОС для майнинга практически бесполезны Я просто мимо проходил, но, как мне кажется, DSP это далеко не всегда про ЦОС. Это еще всякие VLIW и SIMD. На DSP, к примеру, декодеры Витерби и всякое такое делают не просто так.
>>423832 И то и другое. Сам решай. Намного проще и в намного больших количествах какие-то (да, какие-то) непонятные штуки которые так и продаются - на органы или под восстановление. Может попадется кусок FLASH массива, может кусок мультиплексора SDH/PDH, что-то с Ethernet, кусок БС, схема видеозахвата, что-то под PCI или PCI-EX... Схем на них практически не найти, только самому срисовывать поэтому если вкусная платка под запуск - минимум 2 брать (одна рабочая, другую потрошить) или одну если тебе нужен конкретный камушек под свой проект. Найти фирменные отладки под восстановление можно, но надо очень постараться.
>>423856 блять, я понял. ну да, но такое оборудование стоит охуевших денег и хз как оно через таможню пойдет. это конечно не топ на терабиты в секунду, но девайсы недешевые и часто там бга. ты же про телекоммуникационные детали, да?
>>423856 > не находит "базухи" И не должен находить или ты счастливчик если нашел. Пробуй разные варианты начиная от chip|gold recovery до названия семейства ПЛИС и производителя. Ты же ищешь в явном виде железяки на органы по цене лома. Иногда по смежным запросам можно найти - как тупой пример это поиск карт расширения для ethernet свичей/мультиплексоров E1/../ и там почти всегда можно найти ПЛИС в разных вариантах. Если реально нужен кусок базовой станции для работы-настройки-тестов - тогда мимо, не подскажу. Здесь пытались довести мысль об одном из кучи вариантов где можно разжиться подтекающими ПЛИСами. Подфапываю на модули от Violin Memory с разъемом в стиле памяти DDR2. Только разъем, если воткнешь в комп - сразу все спалишь из-за несовместимого расположения выводов и питания модуля от 12вольт. Хорошая такая флешка с SLC памятью на сотню-другую гигов.
>>397766 (OP) какой элемент или что используется чтобы переключить сигнал с одного на другой источник подобно крану? речь идет о цифровых сигналах и cpld. нужно по событию переключить поток данных как если бы я убрал соединение в редакторе и добавил в другое место, не совсем понимаю как использовать лог. элементы в этом случае.
>>423952 я нашел на логических элементах, но их что-то дофига для большой шины выходит. если бы был бы "кранообразный" вариант с high-z, было бы в 2-3 раза меньше расходов.
>>423958 >вариант с high-z Соснешь хуйца. Внутри ПЛИС нет никаких high-z, оно и реализуется внутри на мультиплексорах. high-z существует только на выводах наружу.
>>423959 >какой аналог логической схемы это синтезируется Хер знает. Тебя ебет? Логики же обычно жопой жуй. У той же Альтеры когда создаешь жирные мультиплексоры через мегавизард - в нижнем левом углу пишется сколько LE уйдет на реализацию. Еще скажи что собрался схему рисовать в schematics что пишешь про сложность реализации схемы..
>>423960 Вот рандомный мультиплексор 32 входа по 32 бита занимает 672 lut (с огромным натягом это количество макроячеек(ALM), подправят если неправильно описал). Во что синтезируется? Так и не выкопал в кактусе 9.0 - он на Flex не дает глубоко заглянуть, а RTL - дохуища уровней вложенности что ебанешься скрины делать.
>>423962 я пробую маленький чип cpld с макс плюс 2, сейчас нет инета чтобы квартус скачать. суть в том, что логика простая и влезает и еще остается. но хочу иметь максимум представления чтобы хватило еще на что-нибудь. >нет high-z как называется принцип, когда можно оптимизировать схему и из двух разных частей слепить что-то минимальное по элементам, беря в расчет что какие-то сигналы будут абсолютно одинаковы. например я думаю совместить счетчик с мультиплексором, правда не знаю во что синтезируется столько элементов. пока самый удобный и экономный вариант - это писать на vhdl в квартусе и смотреть в RTLViewer.
>>423965 >как называется принцип, когда можно оптимизировать схему и из двух разных частей слепить что-то минимальное по элементам, беря в расчет что какие-то сигналы будут абсолютно одинаковы. Это не твои проблемы, а оптимизатора и твоего ковнокода схемы.
>писать на vhdl в квартусе и смотреть в RTLViewer. Идея хороша. Один раз люто ёбнуло - на Flex показывает около 40 lut используется, меняю чип на MAX3064 и сосу хуй! Нехватает связей на трассировку внутри и cannot fit design.
>>423967 в max3000 нет LUT, там иначе все. потому приходится исходить из этих ячеек. или посоветуй дешевый чип с 44-48 ног примерно, 64 самое большое. tqfp. дешевый и сильный. max3000 и max7000 по цене прям совсем копейки стоят, самое то их так применить.
>>423969 Другие ответят по камням. Вижу фанат Альтеры? Сам решай что тебе нужно - семейств CPLD у Альтеры не так много. Посмотри в сторону салата Lattice. Сам жду с кетая 5 вольтовые FPGA Epf10k10lc84-4 в PLCC84 как временная замена MAX7128S и которую хер сожжешь перепрошивками при тестах.
>>423969 >>423969 старые max от альтеры мультивольтовые(3000А точно), а у xilinx максимум логики в самом простом корпусе и небольшой цене. в целом, они много от кого похожи между собой. а программаторы нашел что на все три производителя есть самопальные/lpt/com, короче доступные. большие отличия только у нормальных fpga, но это потом. наверное марсоход соберу.
>>423971 >маленький чип cpld с макс плюс 2 >с макс плюс Может не стоит страдать такой некрофилией и взять что-то посвежее типа того же квартус 2 https://habr.com/ru/post/277947/ ?
> lattice, программатор вроде можно самому сделать Как минимум подтверждаю что голый ft2232D работает как программатор, ft2232H не тестил.
>лучше чем xilinx. Мне очень интересно - сколько на тебя говна выльют фанаты хиленьких?
Как раньше пИсалось - бери лучше FPGA (хоть самое ёбаное днище) для облучения - их невозможно убить перепрошивками и жопа не будет гореть если не хватает места что бы вписаться.
>>423972 >старые max от альтеры мультивольтовые(3000А точно) Еще один вылез. Что по твоему "мультивольтовость"? Не у всех МАХ-ов есть разделение выводов по банкам. МАХ7000S - чисто 5В, МАХ3000/MAX7000AE - 3.3В и понимает 5В на входах. МАХ II / V - если скажешь они держут 5 вольт - с ноги по ебалу без вопросов. Да, они держут, но только самые жирные камни (1270, 2210), остальные же самые камни (коих большинство и как пример - тот же Марсоход 1 на epm240) - уже не держут 5В на входе.
>>423973 мне понадобились эти девайсы потому что микроконтроллер не успевает, то что нужно реализовать очень просто. можно на 4000/74 серии даже собрать, но дороговато и паять много придется. про реализацию спрашиваю потому что сложно понять сколько займет ресурсов готовый примитив, особенно если он написан кодом + триггеры в максах 3000 и 7000 нельзя разделить на логические элементы. для fpga какой минимум осциллограф и логический анализатор стоит взять?
>>423979 >логический анализатор В FPGA он есть и у Альтеры зовется SignalTap. Есть некоторые жесткие ограничения (например невозможность просмотра сигналов на LVDS парах) в которые вряд ли упрешься. SignalTap только в FPGA, в CPLD его нет может ошибаюсь и есть пародия на него хотя бы из-за крайне малой емкости - и логической и ОЗУ.
>сложно понять сколько займет ресурсов готовый примитив, особенно если он написан кодом Легко. Полная CUMпиляция(синтез) проекта под выбранный кристалл и не забудь (хотя бы от фонаря) назначить выводы, а не полагаться на мнение фиттера при назначении выводов.
>>423991 >У Альтеры вообще внутрисхемная отладка мощная, Хилые и рядом не валялись. Только инсистема и нет. Есть ila и vio. Памяти вроде только через софтпроц можно.
>>423996 У Альтеры, есть ещё Сигнал Пробе Пинс, это когда поверх существующей компиляции можно провести ещё одну быструю компиляцию в которой на неиспользуемые ноги выводятся точки из проекта. И его более продвинутый вариант Логик Анализер Интефейс - управляемый через программатор мультиплексор на который заводятся выходы интересующих элементов, а выходы мультиплексора на свободные ноги. Хотя это всё не совсем внутрисхемная отладка, наблюдение проводятся внешним осцилопом, но всё же. Да и сам СигналТап намного навороченее чем его аналог у Хилых.
Подскажите, как в vivado объединить модули? в xilinx ise все элементарно делалось, view instantination template и поехали кодить. В vivado все не совсем очевидно
Подскажите софт на люникс, чтобы синтезировать из верилог, а потом отображать логическую схему из логических элементов. Ещё, желательно, эмулятор схемы, чтобы я её сразу проверял.
>>424424 http://llhd.io/ Там же ссылки на гитхаб с синтезатором и симулятором для этого дела. Все очень быстро и просто. Верилог работает из коробки, для вхдл у меня сразу не получилось, не видит ieee-шные библиотеки.
>>397766 (OP) >3 пик Нахуй вы лягушкой становитесь блять? Я бы сам вкотился, если бы не мнения интернетов. Помню давно-давно лет 6 назад на верилоге писал всякую фентезийную хуитку, представлял, как я разрабатываю железяки. А сейчас джава-котлин-тытырпрайс без пяти минут мид с проебанной душой и четким осознанием что деньги тебе счастье не принесут. Алсо чтобы вкотиться помимо языков описания, что еще нужно? Вспомнить цос, тоэ, потыкаться в борду? Или несмотря на курьерские зп, порог вхождения там все-таки конский?
Какую йобу можно сделать на подобной плате, чтобы все охуели как я умею. Получится сделать что-то типо простейшего синтезатора звука? Чтобы на монитор картинка выводилась с клавишами, а по нажатию кнопок ps2 клавиатуры на динамик выдавалась частота ноты определенной.
>>424789 >простейшего синтезатора звука? да >Чтобы на монитор картинка выводилась с клавишами, а по нажатию кнопок ps2 клавиатуры на динамик выдавалась частота ноты определенной. виндовс-ребенок
>>424789 Возьми какой-то стандарт цифрового сигнала. Сделай демодулятор. Запроектируй в матлабе, посмотри как работает. Потом сюда запиши. Уверен, от самооценки ты потом начнешь трахацца с самим собой
>>397766 (OP) Во что стоит вкатываться в 2к20? Выбираю из нескольких стульев: 1. ПЛК. 2. Микроконтроллеры. 3. ПЛИС. Куда легче вкатится и под что легче прогать? Где больше зарплата и есть возможность дальнейшего трактора? О себе: есть оконченная вышка радиотехника, небольшой опыт проганья под плк и микирки, под плис не прогал, но на лабах собирали разные цифровые схемы в мультисиме, так что при желании смогу вкатится в любую область. АйТи не хочу, там все душные, рынок перенасыщен и надо бошку напрягать куда больше, чем в перечисленных выше сферах.
>>425430 >Плк это же мк и плисы как раз. Схуяли? На плк ты пишешь на максимально простых графических и текстовых языках FBD, LD, ST, и на уровень "железа", из которого собран ПЛК, ты не опускаешься. >Лучше в питун вкатывайся Писал же, что не хочу в айти. Рынок там переполнен и с джуна требуют, как с синьора. Не хочу унижаться на собесах, когда тебя даже на жалкую зп в 40к заставляют вертеть двоичные деревья или сортировать пузырьком. >и иди работать в сбербанк. В такие топ-фирмы берут только закончивших топ вузы ДС с красным дипломом.
>>425433 >даже на жалкую зп в 40к заставляют вертеть двоичные деревья или сортировать пузырьком. В плисах ты такую зп только через пару лет достигнешь.
>>424800 >Чтобы на монитор картинка выводилась с клавишами, а по нажатию кнопок ps2 клавиатуры на динамик выдавалась частота ноты определенной сложная задача для плис, тупо не рационально. проще на мк. это надо vga сделать, сделать ps/2 интерфейс и какую-нибудь таблицу для выделения кодов клавишь и отправки этого на блок генератора частоты нот (а частота там не просто n*x от клока.) проще это все конечным автоматом сделать или недоядром хоть 4битным cpu. все что касается чего-то близкого к "памяти программ" как в мк на плис обходится дороже, они не для этого. собсна сам мк это ядро + периферия, в том числе память. само ядро арм, например, не определяет память. есть кортексы без встроенной памяти если не считать загрузчика, м.б. даже без него есть.
>>425452 *vga, ps/2 еще ладно. но вот ноты генерировать уже геморно будет, придется писать много счетчиков. охуеешь от того как это будет в виде логики выглядеть. потому то
>>425452 >это надо vga сделать, сделать ps/2 интерфейс и какую-нибудь таблицу для выделения кодов клавишь и отправки этого на блок генератора частоты нот Хорошая учебная задача.
>а частота там не просто n*x от клока Почему нет? мимо_далёкий_от_музыки
>>425453 >>425452 ой, я же не шарю почти. частоты для vga, нот и ps/2 делаются таймером встроенным в плис или pll или еще как. для нот лучше всего регулируемый генератор или pll c цап чтобы задавать частоты нот максимально плавно. для vga и клавы просто можно делить опорную частоту. для рисования картинки понадобится фреймбуффер и в дешевых плис с этим не очень. плата марсоход, например, использует внешний чип памяти. для примитивного вывода с низким разрешением в плис тоже может не хватить памяти.
>>425433 Лол, тут ты будешь осваивать в схемотехнику, рисовать схемы, кодить на Си и HDL, следить за тем, чтобы плату правильно развели (или делать ее самому), а потом сидеть до ночи с осциллографом/логическим анализатором и пытаться понять, почему она не работает. Зато интересно, дохуя всего знаешь и умеешь, можешь свои железки делать. Короче, вкатывайся туда, где больше нравится.
>>425433 >Не хочу унижаться на собесах, когда тебя даже на жалкую зп в 40к заставляют вертеть двоичные деревья или сортировать пузырьком.
Братиш, не торопись, подумой. Двоичные деревья ты выучиваешь один раз (надо признать, не без пользы для собственного мозга), сдаёшь один раз, после чего всю жизнь копипастишь куски со стековерфлоу, попивая смузи. А на днищепрограммирование ты вкатываешься легко, потому что никто на такие условия не идёт, а потом всю жизнь за копейки в неотапливаемом цехе ебёшь себе мозг подбором магических значений регистров и задержек, при которых хуйня начинает работать, и больше её не вздумай трогать, еби следующую хуйню.
>>425455 >Почему нет? На самом деле да, если используется равномерно темперированный строй, что норма для 2к20. Но пищать синусами, меандрами или треугольниками это дно, надо ебашить Карплуса-Стронга, а там генератор псевдослучайных чисел и полноценный КИХ-фильтр со сменными банками коэффициентов. мимо_интересующийся
>>425560 >На самом деле да (ну или всё-таки нет, потому что даже равномерно темперированный строй — он всё-таки равномерно логарифмический, а не равномерно линейный).
>>425559 > а потом всю жизнь за копейки в неотапливаемом цехе ебёшь себе мозг подбором магических значений регистров Блин, как ты узнал? мимо прогаю микрики зимой в комнате +9 градусов летом + 35
>>397766 (OP) нашел у себя пост карту для ноутов на epm7064. хотел наебать систему и думал что выгоднее заказать пост карту чем готовый чип. так-то оно почти так, но мне подошел бы и вариант за 1$/
есть ли способы скачать прошивку с max7000 чтобы потом записать обратно и пост карта работала?
встречались ли вам подобные дешевые девайсы, откуда можно взять cpld и fpga? я помнил что раньше видел красную пост карту за три сотки с доставкой где аж три epm7032 или типа того, но оказалось что там совсем мелкие девайсы на 8 логических ячеек.
>>425624 > но мне подошел бы и вариант за 1$/ чип там большой, мне столько контактов не нужно. а стоят они от бакса до 6-7 в зависимости от корпуса и напряжения.
>>425683 Добавить SignalTap, In-System Sourcec and Probes по вкусу, просинтезировать, залить в реальный кристалл. Profit! А я чуть соснул - сигналтапа нет во флексах, даже в чуть улучшенной версии EPF10K200S. Похуй, не особо рассчитывал на него, особенно когда раздуплил как реальную систему запускать в пошаговом режиме и можно в статике наблюдать за сигналами даже глазами. Мелкие тесты гоняю во встроенном симуляторе в 9-м кактусе. Может так в общем виде? https://marsohod.org/11-blog/113-icarus Как гонять тесты конкретного камня в моделсим - неебу, самому интересно.
>>425683 Зачем моделировать проект для конкретного чипа? Синхронно делай - нормально будет. На крайняк сам квартус моделировать может с точной времянкой. На моделсим тоже можно, я раньше для старых циклонов делал, но потом полностью отказался от такого подхода.
>>420519 > я эти RTOS для микриков писал своими руками еще в университете Ты должен понимать, что лабы в университете несколько отличаются от промышленных задач. Ты серьезно пытался кого-то этим удивить? Ты хоть понимаешь, с кем сидишь на одной борде, мальчик? >(ибо учился в развитых странах, а не СНГ) По-твоему в СНГ нет серьезных разработок, университетов и промышленности? На разработку «ОСи» времени уходит очень мало. Тут такая же история как с ассемблером против СИ, просто нужно научиться строить код иначе. Конечно всё зависит от задачи, можно так извратиться, что «сквозные процедуры» не помогут. Но практика показывает, что такие задачи исходят от принципа «так принято всеми, поэтому и и ты пиши так, — другие не поймут». Вот для таких случаев я и включаю к компиляции в проекте ОСь, что бы человек, который не может построить свой код сквозными процедурами мог продолжить проект. Мало того это ооооооооочень сильно экономит память. Каждая задача имеет свой стэк, и если у тебя есть некая ветка, которая выделяет память, по цепочки исполнения процедур, и эта ветка запускается в нескольких задачах, тебе, по сути нужно резервировать двойной объём памяти для каждой задачи. Что тянет за собой удорожание контроллера на котором крутиться ОСь, так же и вообще затраты ресурсов. Я постоянно запускаю медицинские и индустриальные устройства, где очень часто стоит вопрос об энергопотреблении, поверьте тут считается каждый такт. Код пишется очень быстро, задачи какие угодно, и файловые системы, и телекоммуникация, и протокольные части, и графика+анимация, вообщем всё и вся. Применяю как Си, так и ассемблер, постоянно и бесповоротно. Мало того подход со «сквозными процедурами» заставляет писать фактически идеальный код. Понятно, что есть ошибки, но из-за подобного подхода они минимизируются. Для примера, таким методом я запустил проект, в котором медицинское устройство вшивается в человека, если я допущу ошибку, и не дай боже где-то что-то зависнет, то в лучшем случае человека будут оперировать, а в худшем он умрёт. Я просто за последние 15 лет на столько привык иначе относиться к программированию, что вообще не рассматриваю классический метод программирования. Безусловно я свои модули даю другим людям, но очень часто, что бы их могли понять, я вынужден переписывать, не применяя экзотику. Например тот же скрипт-парсер команд для модемов. У меня один такой скрипт-парсер позволяет за одну итерацию поднять как управление модемом, так и какой-нибудь протокол. Причём скрипт-парсер уже содержит в себе автомат переповторов при ошибках, заложенные сценарии, например инициализации, генератор событий. Вообщем полный фарш для протоколов и коммуникаций. Но как доходит вопрос о том, что бы кто-то использовал, приходиться проводить лекцию, а когда кто-то узнаёт что проект на СИ параллельно запускает и мой компилятор, люди вообще впадают в ступор. Я уже говорил, что я могу себя ограничить классическим подходом, и всё написать на IF/THEN/FOR, но это приведёт к емкости и низкому качеству конечного результата. Я не претендую на самый качественный код, но пять лет в теле человека он обязан проработать без сбоев. Я не претендую на самое энергосберегающее устройство, но имея простые компоненты я получаю своим подходом то, что работает как в телах людей, так и на заводах по миру. Наверное вы правы это маньячество, и я бы хотел, что бы в программировании были маньяки, ставящие перед собой сложные задачи и решали их с лёгкостью. — Приведу пример как мои процессы при включенном OS while(1) { u32 flag = prcLoopMeasureParallelPress(); if ( (flag & prflag_MEASPMS58_MASK) == prflag_MEASPMS58_DELAY) { taskYIELD(); } } … больше нет ничего в процессе — Приведу пример что находится внутри измерительной части u32 prcLoopMeasureParallelPress(void) { u32 res=prflag_NOP; res |= DoProc(&process_measPM_TruxPress, proc_NOP); return res; } — Внутри DoProc и крутятся все сквозные процедуры, их можно вызывать в простом вечном цикле без ОСь, без лишней затраты памяти. Вот как это выглядит: u32 prcLoopALL(void) { u32 res=prflag_NOP; res |= DoProc(&process_key, proc_NOP); res |= DoProc(&process_lcd, proc_NOP); res |= DoProc(&process_keymenue, proc_NOP); res |= DoProc(&process_measPM_TruxPress, proc_NOP); res |= DoProc(&process_measPM_TruxTMP, proc_NOP); res |= DoProc(&process_measure, proc_NOP); res |= DoProc(&process_FullProcess, proc_NOP); res |= DoProc(&process_trux, proc_NOP); res |= DoProc(&process_power, proc_NOP); res |= DoProc(&process_main, proc_NOP); return res; } — Вот так выглядит пример «крутилки» изображения: // LCD Dynamic Refresh case proc_LNG_LCD: ProcNext(process); break; case proc_LNG_LCD+1: DoLcdScript(ShowScriptID); // lcdRefUpdateData(); //Update Data Ans Show Window LCD_SCR_UPLOAD(1); ProcNext(process); break; case proc_LNG_LCD+2: if ( LCD_SCR_UPLOAD(0) ) { ProcNext(process); } break; case proc_LNG_LCD+3: res |= prflag_LCD_DELAY; ProcJr(process,-2); break; — И нет никаких проблем. За день-другой поднимается готовый к разработке код проекта. Дальше дело техники, пиши новое и добавляй процессы. Данный код выглядит на много проще нагромождения под ОСьки, и места занимает меньше. Кстати, приведённые куски это части индустриального прибора, который был поставлен с нуля на серию за шесть месяцев. И всё это работает на тактовой частоте 12 мегагерц, в проекте всё универсально, коммуникация внутри проекта может на ходу смениться на любой интерфейс SPI+I2C+UART или вообще стать виртуальной и быть внутри протокола, который будет внутри другого протокола, который будет работать по чему угодно. Вообщем законченный проект, получен сертификат, прошли аттестацию, вошли в список данного класса прибора как 7 лет работы от батареи. Ассемблер в данном проекте не применялся только на стороне датчиков, где так же есть много особенностей.
>>425859 >>425815 Используя правила синхронного проектирования. Из основных - не допускать комбинационных схем на тактовом входе и входе асинхронного сброса триггеров.
>>425881 >не допускать комбинационных схем на тактовом входе и входе асинхронного сброса триггеров. Шо за хэрню я читаю? Конченный автомат на 155РЕ3! Триппера? Да нахуй надо. Реально, сам подофигел когда срисовывал схему, снял и декодировал дамп памяти. У РЕ3 выходы открытый кАллектор, нужны подтягивающие резисторы, на схеме их нет, она для понимания сути. Такой себе псевдоконтроллер прерываний, дегенерящий команду 11010111 (код 0хD7) - RST 2 (вектор прерывания №2) Как сделать буфер? Ставить всякие АП или ВА86? Да хуй там! Берем ЗАЩЕЛКУ ИР22, тактовый вход в 1 (постоянно пропускать сигнал) и... Рулим сигналом ОЕ! Вот это поворот! Про классику жанра в виде RC цепочек даже говорить не приходится. Чем не триггер на короткий промежуток времени? Или.. МультиВИБРАТОР! Заставит вибрировать и колебаться любой сигнал, который встретится на его пути. Это наиболее запомнившиеся моменты. Был участок где почти вся схема это ИЛИ в несколько слоев, часть из которых используется как повторитель-разветвитель.
>>425892 Неужели у тебя не хватило Л - Логики что бы разместить дизайн понять что это стебный пост хотя и не лишенный смысла, так как основан на реальных фактах?
Артефакт в виде ИЛИ-НЕ на тактовом входе триппера ТМ2 мало понятен и в каких условиях он срабатывает. Расспыпуха для декодирования стоп слова состояния 580ВМ80 и еще что-то, как-то связанное с делением адресного пространства.
>>425912 >у тебя не хватило Л Хватило. Кроме того, скорее всего это ты тут недавно про езернет затирал в таком же стиле.
>Артефакт в виде ИЛИ-НЕ на тактовом входе триппера ТМ2 Я тоже так делаю, когда плисина к процу подключается как внешняя ОЗУ. Но тут надо хорошо понимать что такая схема гонку не даст в силу самой временной диаграммы по которой работает проц. В общем не для новичков всё это.
>>425951 >Кроме того, скорее всего это ты тут недавно про езернет затирал в таком же стиле. Ну да, это я >>401682. Что в этом такого? Выгонишь ссанными тряпками в загон для пердуинщиков? Люблю контраргументы или очень граничные случаи-варианты. Скажу больше - у меня все еще фронтофобия. Боюсь фронтов тактового сигнала у триггеров, так как вроде все понятно, а говнокод схема работает не совсем как задумывалось. Асинхронный дизайн - вот что я люблю!
Сап, плисоводы! Есть ли реализации 10/100 Мбит ethernet со стеком и всей хуйней, и количеством используемой RAM меньше, чем у альтеровского Triple-Speed Ethernet?
>>425976 >>а схема работает не совсем как задумывалось >А как? Триггер по фронтам работает как и должен. Нет, так только парашные триггеры работают. Хороший триггер должен работать не по фронтам, а по уровням.
>>426032 >Хороший триггер должен работать не по фронтам, а по уровням. >по уровням Вот не пойму - это тонкий троллинг? Защелки - ЗЛО! Прямая широченная взлетно-посадочная полоса в Ад и Содомию. На защелках у тебя вся инфа моментов на выход пролетит, а не застрянет по пути как на флиплопах. Увидев сообщение latch inferred при синтезе проекта - сразу с ноги бьют по ебалу за такое распиздяйство.
>>426040 >двухступенчатые триггеры были хороши в своё время, сам их люблю. Как ты отличишь двухступенчатый триггер от триггера с "нормальным" динамическим управлением (ну там классическая схема D-триггера из трех RS) по внешним признакам, не смотря на его схему? мимопроходил
Плисоны, подскажите. Есть одна частота (около 75МГц, т.е. 200+ MSPS) и нужно мерить ее фазу относительно опорной. Гёрцелем или БПФ, я пока не представляю. Фаза гуляет быстро, так что конвертер на смесителе в 1 Гц с вычислением на атмеге или готовый SDR приемник не подходят. Нужно мерить фазу, амплитуду к шуму + немного простейших вычислений и запустить SPI\I2C слейв чтоб скормить результат дальше. Можете примерно соориентировать с плис по требуемым ресурсам? Нужен ответ уровня тебе хватит и макса\циклона\спартана\ххх. Да, разрядность 12б, 4 канала. И еще вопрос. На сколько имеет смысл скукоживать сигнал логарифматором перед АЦП чтоб сэкономить разрядность чтоб потом софтверно компенировать логарифм? Это сильно усложнит требования к камню?
>>426550 Опиши поподробнее задачу. Что значит мерять фазу? Одного генератора относительно другого? Или демодулировать фазовую модуляцию? >Есть одна частота (около 75МГц, т.е. 200+ MSPS) Зачем 200 MSPS?
>Можете примерно соориентировать с плис по требуемым ресурсам? Нужен ответ уровня тебе хватит и макса\циклона\спартана\ххх. Прежде надо выбрать способ решения задачи.
>>426081 А почему ты их противопоставляешь триггерам с динамическим управлением? Двухступенчатые триггеры это всего лишь способ реализации, пусть и устаревший, триггеров с динамическим управлением.
>>426565 >Одного генератора относительно другого This. Но измеряемый будет скачком менять фазу через 5..50мкс. >Зачем 200 MSPS? Святой Найквист и апостол его Котельников. Вариант аналоговым образом сделать умножение и анализировать на низкой частоте ПЧ не подходит ввиду малой точности ака малого времени "измерения" фазы. И для этого подойдет любой SDR.
>>426598 >Вариант аналоговым образом сделать умножение и анализировать на низкой частоте ПЧ не подходит ввиду малой точности ака малого времени "измерения" фазы. С чего бы это? Квадратурные демодуляторы есть с очень широкими полосами, а тебе для >5..50мкс. Явно хватит полосы несколько МГц. Более того, в цифре все равно придется делать то же самое, т.е. умножать а потом фильтровать. БПФ тот же, будет тем же самым по своей сути, только избыточным. Но не столь важно какая часть обработки будет в цифре, а какая в аналоге, а как написал анон выше, способ решения задачи. Сделай для начала модель, без разницы дискретную или непрерывную, но сделай, а потом уже будут ясны требования к ПЛИС.
>>426598 >Вариант аналоговым образом сделать умножение и анализировать на низкой частоте ПЧ не подходит ввиду малой точности ака малого времени "измерения" фазы. Поясни почему не подходит. Можно вообще поставить квадратурный демодулятор и на него завести сигнал с опорного генератора, а анализировать на нулевой ПЧ.
>Но измеряемый будет скачком менять фазу через 5..50мкс. Какая при этом будет полоса модулированного сигнала? Уж точно не больше 100 МГц.
>Святой Найквист и апостол его Котельников Они говорят больше о полосе, а не частоте.
>>397766 (OP) 1 курс, хочу вкатываться в плис и схемотехнику и вот это все железное бездушное и скрытое от глаз мимокроков. Но вот мне вопрос назрел, если я уже шарю в линуксе и сетях чуть чуть, меня уже приглашают на стажировку админом облака И это круто, набираться опыта А вот стажеров схемотехников разводить платки или прогерров fpga где у нас в России берут? Может мне нахуй не рыпаться, пока не уеду в европку?
>>426658 Есть вариант вкатываться во всякие научные институты, но там с зряплатами жиденько. Есть в ОИЯИ несколько железячных групп, которые с фпга работают, и заплаты более-менее по сравнению с остальными.
>>426582 Потому что в нынешних ПЛИСах используются именно триггеры с с динамическим управлением. Ну это со слов самих производителей. Да и противопоставляю не я, а вот этот >>426032 анон.
>>426603 >>426604 У вас почти одинаковые ответы, так что отвечу скопом. Мне нужно получить точность в доли градуса, для этого придется копить максимум периодов. Сдвиг частоты вниз супергетеродинированием (готовый SDR приемник по сути) мне не нравится как раз тем что мы считаем фазу по низкой частоте и меньшему числу периодов, т.е. с меньшей точностью в условиях ограниченности окна по времени. Про модель понял, сам начинающий питоноёб, сделаю. Интересует верхняя граница по бюджету решения.
>>426661 >Только не удивляйся, что тебе будут платить 15-25к и при этом ебать. Пусть потом не удивляются, что он научившись всему и освоим параллельно язык, в один прекрасный момент скажет - бай-бай, прыщики, я устал - я мухожук в забугорную компанию, а вы держитесь тут, здоровья вам.
>>426598 >Вариант аналоговым образом сделать умножение и анализировать на низкой частоте ПЧ не подходит ввиду малой точности ака малого времени "измерения" фазы. Цифровой ФНЧ сделай для ПЧ. Он будет усреднять тебе измерение фазы, выраженное в виде сигнала ПЧ, насколько душе угодно. Чем больше режет высокие частоты, тем сильнее усредняет.
Я тут мимо проходил. Я правильно понимаю, что ПЛИС это такая микруха с кучей ног, которой можно скомандовать пропускать сигналы с одной любой ноги на любую другую и ещё и переключать их? Как электрические связи прокидывать программно?
>>426785 >ПЛИС это такая микруха с кучей ног, которой можно скомандовать пропускать сигналы с одной любой ноги на любую другую и ещё и переключать их? Отличное определение!
>Как электрические связи прокидывать программно? Если про то как создавать конфигурацию - руками никак. Только спецсофт от производителя ПЛИС типа того же квартуса, блевады и подобного в котором на том же Verilog или VHDL описываешь что хочешь. Если про то как переключать в уже сконфигуренной ПЛИС - открой для себя мультиплексор и демультиплексор и триггерящиеся триггера.
>>426770 >От чего зависит точность определения фазы? От качества аналоговой части (смесителя, АЦП) в первую очередь и от точности вычислений в фильтре (разрядности арифметики). Частота среза ФНЧ выбирается по принципу "насколько быстро/медленно происходят интересующие нас изменения фазы, а где интересующие нас изменения заканчиваются, и начинаются шумовые флуктуации". Апертура идеального фильтра бесконечна, для реальности подходит принцип "чем больше, тем лучше", на практике выбирается либо такой размер, что погрешности фильтра оказываются либо ниже интересующей нас точности, либо сравнимы с другим погрешностями (АЦП, округления арифметики).
>>426805 Капитан, у меня абсолютная частота среза фильтрации определяется исходным сигналом, который изменяется по времени. Вопрос в том будет ли увеличиваться точность измерения при усреднении сигнала находящегося в более высокочастотной области. По моему разумению - да. Тогда должно быть выгоднее собирать фазовый детектор на рабочей частоте сигнала (в цифре или аналоге не важно), чем после переноса спектра вниз.
>>426785 >Я правильно понимаю, что ПЛИС это такая микруха с кучей ног, которой можно скомандовать пропускать сигналы с одной любой ноги на любую другую и ещё и переключать их? >Как электрические связи прокидывать программно? Посмотри начало здесь https://youtu.be/FSRaHsGdTYo
>>426854 >Тогда должно быть выгоднее собирать фазовый детектор на рабочей частоте сигнала (в цифре или аналоге не важно), чем после переноса спектра вниз. Фазовый детектор — это тупо перемножитель двух сигналов, принимаемого и опорного, плюс ФНЧ. В цифре или аналоге — неважно, суть выполняемой операции одна и та же, её один хуй надо сделать перед любыми дальнейшими манипуляциями. В аналоге это гораздо дешевле, потому что быстрые АЦП с хорошими характеристиками стоят дорого. А дальше начинай в цифре фильтровать медленно меняющуюся измеренную фазу, сильнее профильтруешь — больше флуктуаций отсечёшь — точнее получишь усреднённое значение.
>>426908 Не понял вопроса. На вход ФД подаются два сигнала, на выходе ФД сигнал пропорциональный разности фаз входных сигналов. Все, точка. Не понимаешь, читай и считай, разбирайся, как оно работает.
>>426908 АРУ нет? Тогда нужны два перемножителя, опорный+квадратурное дополнение (I, Q). Есть готовые решения в одном корпусе и даже сразу вместе с АЦП.
Господа плисовцы, есть ли способ в интеловских фпга засунуть hardware configuration (sof) и software (два mif файла, в sof-е лежит два софт процессорных ядра(не ниос) и на каждое есть свой ROM, в него и нужно мифы прошить) в один файл или каким-то другим образом прошить их одним действием? если недостаточно вводных могу дополнить
>>427631 Тебе там правильно подсказали. У альтеры есть встроенные ромки, в которые можно зашить mif/hex и даже организовать к ним доступ через инсистем.
>>427670 Ну так это значит у ромки стоит галка в настройках ip-ядра. Нельзя залезть в эти настройки и пропихнуть мифку/хекс туда или тебе вообще в проект лезть нельзя?
>>427683 Та уже разобрался, не стал изворачиваться и просто сделал зашивку через тсл. Там основной прикол в том, что мифки могут меняться в зависимости от тестов и изначально я хотел какую-то неведомую хуйню. Всем спасибо!
>>423357 >Опять же, тут не корка твоя виновата, а твой майндсет неудачника. Ты сам себе придумал эти правила жизни, по которым ты бесперспективная чмоня, поэтому любое твое действие в этом контексте превращается в превозмогание, таким образом ты тешишь свое эго, вот и все. Вылазь из этого чехла, иначе так всю жизнь и проебешь. Все так. Все свое детство мать кормила супами, макаронами, а на завтрак делала бутерброд из белого хлеба, маргарина и обильно посыпала его сахаром. В школе я не ел, т.к. у меня не было денег на питание. Родители отдали в ближайшую муниципальную школу и не особо заботились о том, какие учителя, а главное ученики там учатся. В итоге, я попал в школу, где процентов 90 были дети из неблагополучных семей, а некоторые старшеклассники уже успели отсидеть по малолетке за разбой и сопротивление, тогда еще, милиции. В школу постоянно приезжали мутные типы на тонированных жигулях или разбитых бмв и запрягали старшеклассников, чтобы они терроризировали школьников и вымогали у них деньги на "грев". Классы были переполнены. 30-35 человек в классе - обычное дело. Учителя никак не контролировали дисциплину в классе и либо забивали на уроки, либо бубнили себе под нос материал, а потом весело ставили трояки даже самым отбитым. Я однажды пожаловался мамке, что меня бьют и травят в школе, а учиться там и вовсе невозможно. На что она сказал, что "это везде так, нужно потерпеть пока не выпустишься из школы". С самого первого класса у меня начались проблемы с домашними заданиями. Мамка, вместо того, чтобы разобраться в чем причина низкой успеваемости, просто решала домашние задания за меня. А уже в 5-7 классах начала меня избивать, когда я не мог понять какую-нибудь формулу. Заставляла учить математику "как стихи" и била по голове кухонной утварью, да так, что у меня кровь из носа шла, в голове темнело, и болела голова. А так да, ты абсолютно прав - "кто на что учился". Ведь тебе никто не мешал, а даже всячески помогал, закончить школу с хорошими отметками, поступить в приличный ВУЗ и устроиться в хорошую компанию. Не нужно жаловаться на какие-то там мелочи.
>>423322 на первых курсах тоже денег не было, тратил на еду 500р в неделю. Не то чтобы я хочу повторять этот опыт, но если придется выбирать между питаться макаронами всю неделю или сидеть дома и ныть, снова выберу первое
>>429737 Это когда процессор, модем, GPS приёмник и прочая переферия находятся в одном чипе, снаружи только память, в которой программа и соединительные кабеля к переферии. Если проще, то мозг любого сотового - SoC.
>>429744 Почитал тут про SoC: https://ru.wikipedia.org/wiki/Система_на_кристалле#Разработка_систем_на_кристалле >Для того, чтобы удостовериться в правильной работе созданной комбинации блоков, драйверы и программу загружают в эмулятор аппаратной части (микросхему с программируемыми цепями, FPGA). Получается, что любой разработчик FPGA может перекатится в разработчики цифровых микросхем и процессоров(как и наоборот)?
>>429747 SoC имеет строго внешнюю программную память. PSoC может имеет встроенную программную память? >These chips include a CPU core and mixed-signal arrays of configurable integrated analog and digital peripherals. Это МК + FPGA
>>429806 Методичка, при помощи которой следует писать тестбенчи для модулей на HDL. Нацелена на то, чтобы меньше думать, больше действовать по шаблону и вылавливать в результате больше багов. С задачей справляются неплохо.
Никогда не имел дел с плис, но тут появилась наркоманская идея, сделать покадровый dvi сплиттер. 720/768/1080p@60hz со входа на 2/3/4/5/6/10/12/15 выходов с таким же разрешением и частотой. Фишка в дублировании кадров, каждый следующий пишется в буфер следующего выхода. Соответственно получается возможность выводить с одного устройства (малинки) картинку на кучу мониторов пусть и с меньшим фпс. Какую девборду мне посмотреть и вообще какие тут подводные камни?
>>430284 То, что это делается тупо разветвлением сигналов на несколько выходов. Единственная проблема от нескольких мониторов - это едид и разный набор разрешений в нем, и скалить изображение под каждый уже задача достойная плисины, но это не твой случай
>>430285 Ты не понял сути. Задача вывести разные изображения на 15 мониторов используя пк с одним видеовыходом. Первый кадр выводится на первый выход, затем второй кадр на второй выход в то время как на первый выход дублируется первый кадр и так далее. Получаем 15 дисплеев с фактической частотой обновления 4гц. Затем записываем специальный видеофайл с нужной последовательностью кадров и получаем нужную картинку на видеостене.
>>430292 У dvi-s/hdmi1.2 предел 1920x1200@60hz на скорости 5Гбит. Hdmi посвежее поддерживает 4к но мне этого мало (хотя тут существуют готовые решения) Hdmi2.1 с 8к фантастика. Пк с таким количеством выходов тоже собрать не просто. Самая простая видеокарта на 3 монитора 1500р. Плюс майнинговая матплата и ведро рейзеров, которые совершенно не собираются дешеветь несмотря на потерю актуальности. Все это выходит дороговато, когда 20" мониторы отдают по 300р. Впрочем можно и не заморачиватся видеовходом, для начала хватит и простого открытия .bmp с флешки или как вариант эмуляции usb-флешки и открытия файлов с нее.
>>430284 Мне в этой схеме интереснее всего, осилит ли малинка перерисовавать фреймбуфер заново каждый кадр, причём чем-то осмысленным, и не тупить.
>Впрочем можно и не заморачиватся видеовходом Всего-то видеоинтерфейс. DVI так вообще не сложнее VGA.
>для начала хватит и простого открытия .bmp с флешки А это уже usb-интерфейс и процессор с поднятой на нём операционной системой, имеющей поддержку usb и файловых систем.
>>431097 >а эти плис они многоразовые? Ниет. Одноразовое говно. Не слушай тех кто пишут что конфигурация хранится во внешней памяти. Это полнейший бред!! Они ОДНОразовые! Может повезет и найдешь пикрил и сможешь ультрафиолетом стереть конфигурацию и накатить новою. Большинство же изготовлено по методу пережигаемых перемычек, наподобие тех, что используются в 155РЕ3 и ПЗУ типа 556РТ4 и им подобных. Используй лучше GAL и PAL. Они больше доставляют.
>>431128 Вряд ли. Заочно знаком. Вот от чего пригорело - так это каждый ВЫВОД схемы - одна макроячейка. То есть если ее использовать как тупой повторитель, у которого 8 входов и 8 выходов сразу проебется 8 ЛЕ.
>>431428 >Плисаны, почему так происходит Всё работает правильно. >и как с этим жить? Начать вкат не тупо с изучения языка, а прочесть сперва учебник по цифровой схемотехнике.
>>431456 Причем здесь вообще схемотехника, когда вопрос про работу симулятора? Есть временная диаграмма на которой видно, что у сигналов абсолютно одинаковые фронты, есть два одинаковых триггера, которые описывает олвейс-блок. Так почему на выходе совершенно разный результат?
Понятно, что ИРЛ никто не будет выставлять сигнал четко по фронту клока, я просто хочу разобраться как симулятор обрабатывает разные виды присваиваний. Нигде про это не пишут.
Раньше я считал, что если поставить маркер по фронту клока в таблице значений слева будут данные, которые триггер защелкнул и их можно забирать уже на следующем такте, но в моём примере это не так.
>>431494 Челик-то использует блокирующие и неблокирующие присваивания, то есть прочитать он про них где-то как-то прочитал.
Но его экзистенциальный кризис возник из-за того, что он не понимает, нахуя ему дано то и другое, ведь оно его только путает и не несёт никакой видимой пользы.
>>431499 Вид присваивания влияет на очередность этого самого присваивания внутри одного процедурного блока. В моём примере вообще разные initial-блоки и разные регистры. Почему вообще возникает эта разница?
>>431508 Вот >>431454 была единственная адекватная попытка объяснить. Но это всё симптомы а не диагноз. Такое ощущение, что вы здесь сами не понимаете что там происходит.
>>431428 Кажется я наконец разобрался как это работает. В случае неблокирующего присваивания симулятор вставляет Zero Delay. Но какого хуя эта Zero Delay не отображается на временной диаграмме? Могли же на диаграмме где поставлен маркер у signal_b и signal_c отобразить значение 0 в таблице и у меня бы никогда не возникло такой непонятки. Видимо проблема в структуре данных временной диаграмме.
>>431515 >была единственная адекватная попытка объяснить Блокирующие / неблокирующие присвоения обладают своей спецификой, но глобально здесь дело в том, что во время активного фронта тактового сигнала происходит асинхронная смена сигналов a, b, c. Т.е. по фронту clk как бы захватывается фронт асинхронного сигнала, симулятор "не знает" как быть в этом случае и захватывает либо 1 либо 0, как карта ляжет, на самом деле это всё объясняется внутренней логикой работы симулятора и зависит от очерёдности обработки операций, можешь погуглиить про дельта-цикл. Такие ситуации в стандарте не прописаны, а значит каждый симулятор это делает по своему. Если промоделировать в другом симуляторе результат может быть другим. Потому таких конструкций лучше избегать. Надеюсь понятно объяснил.
>>431523 Понятно, то есть нужно всегда выставлять значения сигналов перед фронтом клока, тогда вообще не будет значения какой тип присваивания использован при формировании сигнала.
А почему в тестбенчах большинство разрабов используют блокирующие присваивания?
>>431530 >нужно всегда выставлять значения сигналов перед фронтом клока Не совсем так. Нужно делать это синхронно, т.е. через always @(posedge clk).
>тогда вообще не будет значения какой тип присваивания использован при формировании сигнала Говорю же, с типами присвоений есть свои нюансы. Где-то на ютубе попадался чел, он как раз долго и нудно, но подробно рассказывал о типах присвоения.
>А почему в тестбенчах большинство разрабов используют блокирующие присваивания? Необязательно. Просто блокирующее присвоение в большей степени подходят под регистровые передачи.
>>397766 (OP) Лет восемь валялась горсть EPM3032 от игровых автоматов с залоченным JTAG. Всё рука не поднималась выбросить. И вот недавно решил очередной раз погуглить на тему разлочки. И снова меня привело на zx-pk и оказалось, что тамошний чувак, спустя 10 лет, таки совладал с ними - https://zx-pk.ru/threads/25998-programmator-mikroskhem-programmiruemoj-logiki(cpld)/page13.html Цепкими лапками молниеносно вытравил плату, спаял, подключил бластер и 10.5В, запустил Кряктус и трясущимися руками, предварительно нажав кнопку, жмакнул на Start, и.... ОНО СТЕРЛОСЬ!!!
Вкатываюсь в ПЛИС с нуля, суть такова, несколько ADC/DACов гонять туда сюда с ПеКа (после чтения всяких спек наиболее компромиссным вариантом счёл USB3). Пропускная способность в одну сторону требуется около 13 мбит (трафик в обе стороны примерно одинаковый). Частота кодеков -48к, плюс кратная частота х512 (cs4244 или подобное) Я так понимаю, нужно немного локальной памяти к плису, чтоб аккумулировать там ввод/вывод кодеков, и возможность быстренько их гонять по DMA с пека.
USB 3,0 (CYUSB3014) Artix-7(XC7A35T) макетная плата Параметры: Встроенный чип USB 3,0: Cypress's CYUSB3014; Бортовой осциллятор для чипа USB 3,0: 19,2 МГц; CYUSB3014 ядро: ARM926EJ @ 200 МГц; Внутренняя память CYUSB3014: 512KB S RAM; Встроенная флеш-память SPI для CYUSB3014: W25Q64, 8 Мб; Бортовой 5,0 V-> 3,3 V DC/DC: м/с, MP2315; Бортовой 3,3 V-> 1,2 V, 1,5 V, 1,8 V DC/DC: на полу, NCP1529; Макетная плата обеспечивает 3 режима загрузки, выбор переходников, для управления загрузкой CYUSB3014 от USB или внешней вспышки SPI; Макетная плата использует разъем USB 3,0 Type-B; Бортовой FPGA: XC7A35T-1FTG256C; Бортовой внешний кристалл FPGA, частота: 50 МГц; Встроенный 16 Мб байт для кода настройки пользователя: MT28QL128A SPI Flash; Встроенный 512 Мб микрон DDR3: MT41K256M16TW-107:P; Макетная плата, размер печатной платы: 83,8 мм x 83,8 мм; По умолчанию источник питания для доски: 1A @ 5V DC, DC заголовок Тип: DC-050, 5,5 мм x 2,1 мм;
Вопрос опытному анону, хватит ли этой платы, или надо искать что-то получше? Осилю ли я программування (полный нуб в плисах, но вообще соображаю), и за какое время? Нужен ли яйцелограф (если да, то какой)? Важна ли длина проводки к кодекам, можно наговнякать в макетку как обычно, или могут возникнуть нюансы?
Котаны, а подскажите - как делается на Verilog обыкновенный OE (Output Enable, active low), мне нужно подключить Altera MAX10 к шине FSMC, а там есть OE выход, когда там неактивный уровень - выходы DATA на MAX10 должны быть в HIGH-Z.
>>433452 Зависит от поддержки конкретной версией синтезатора, может получиться, может нет (тем более, речь о какой-то древности). Напиши, синтезируй, посмотри лог ошибок, посмотри схему, появился ли там соответствующий буфер.
>>433470 Стекломойное животное, с таким подходом ты ничему не научишься.
>>433470 >я - погромист Оно и видно. Специально для долбоёбов. В плис используются триггеры с динамическим управлением, т.е. по активному фронту триггер запоминает сигнал со входа Д и выдаёт его на выход Ку, а это значит, что выход триггера меняется сразу после фронта. И если надо выставлять сигналы вручную, но синхронно надо их выставлять с учётом вышесказанного или незаморачиваться и применять always @(posedge clk)
Алсо нид реквест, как назвается такая ситуация, когда надо синхронизировать клоки, например есть UART-like ресивер, по спецификации его скорость допустимо варьируется +-10%. На момент стоп-бита нужно получить данные в модуле с другой частотой (выше в разы) Мой нубский взгляд на это такой- ресивер должен тригериться по фронту старт-бита, затем с некоторой частотой, близкой к -10% получать 8 бит, после чего значение должно быть доступно в другом модуле.
>>433556 >как назвается такая ситуация Да так и называется синхронизация тактовых домнов.
>ужно получить данные в модуле с другой частотой (выше в разы) Загружаешь 8 бит в сдвиговый регистр, на каждом сдвиге инкрементируешь счётчик, как счётчик досчитал, выставляешь флаг в свой быстрый модуль. В быстром модуле этот флаг пересинхронизируешь на его частоту, просто пропускаешь сигнал через Д-триггер. И когда на выходе этого Д-триггера появляется 1-ца - значит в сдвиговом регистре уже всё загружено и можно от туда считывать. Остаётся продумать механизм сброса флага, но это попробуй сам.
Нужно сделать FIFO, через один параллельный интерфейс данные в него поступают, через другой параллельный интерфейс данные из него считывают с другой тактовой частотой. Как правильно это сделать?
1) Синхронная логика с одним клоком, который в раз 10 выше самого быстрого клока на параллельном интерфейсе и конечный автомат внутри always (posedge clk) 2) Завести 2 клока с обоих интерфейсов и по фронтам крутить в логику внутри always
>>433595 >Нужно сделать FIFO >Как правильно это сделать? Взять готовый блок от производителя плисы.
Если этот вариант не подходит, то надо взять простую двухпортовую память и написать логику для записи в домене клока входных данных, а логику для чтения -- в домене клока выходных данных, с передачей флагов и указателей между доменами. Для передачи указателей можно использовать код грея.
>>433330 Походу не ошибся с платой, збс контроллер CYUSB3014, охуеть вообще. Так-то даже fpga понадобится на полшишечки для мультиплексинга разве что, основное можно в виде программы настрогать.
>>433596 >Если этот вариант не подходит Это очевидная домашка по схемотехнике. Кому ещё надо FIFO писать? Я в прошлом треде на точно такой же вопрос уже даже отвечал — >>394543 →
>>433596 Ого! Код Грея для того, чтобы при асинхронном доступе к указателям головы/хвоста фифо не было ошибки более, чем на 1 разряд? А как полностью избежать рассинхронизации в этом месте?
>>433603 >Вопрос по прежнему без ответа. Какой из двух вариантов правильнее и почему? Оба говно потому что аксиома Эскобара первый не будет надёжно работать при неудачном совпадении фаз Луны клоков, а второй не описывает приблизительно ничего.
>>433607 >Код Грея для того, чтобы при асинхронном доступе к указателям головы/хвоста фифо не было ошибки более, чем на 1 разряд? Код Грея для того, чтобы передаваемое из другого домена значение указателя было либо правильное, либо предыдущее. И не возникало ситуации, когда надо поменять несколько битов, часть успела поменяться, часть нет, в итоге указатель указывает хуй знает куда.
Подскажите, где можно найти максимальнт доступное объяснение алгоритма cordic с математической точки зрения и с точки зрения ПЛИС? Пытаюсь разобраться, как с его помощью находить модуль комплексного числа.
Скажите, вообще законно делать некоторые буфера небольшого размера (около килобайта) в виде шин? Является ли это бестпрактис? Можете сразу обоссать если вопрос тупой
Как подсунуть микроблейзу логику под видом памяти? У меня только один вариант напрашивается, вставить между модулем памяти и микроблейзом прокси, в котором напейсаить "иф старший бит адреса = 1 то возвращаем память из FPGA иначе передаем дальше"
>>433767 я хз вообще, пока опыта нет, просто читаю всякие документы. Интерконнекту тоже какой-то последовательный интерфейс нужен, под который надо подстраиваться, как я понел.
>>433768 Интерконнект это как usb hub если в двух словах. Подстраиваться так или иначе придется, если только не брать готовое. В ise был генератор регистров на axi4- lite. Я его использовал для этих целей.
>>433766 создаёшь axi lite peripheral визардом. Он тебя спросит сколько регистров заданной разрядности (32 бита) ты хочешь создать. Эти регистры будут сделаны на триггерах плис, их можно читать и писать микроблейзом как любую axi-периферию, к ним можно дописывать другую логику.
я типо малюю схему типо щщоччик с переполнением на 62, а оно само применяет к схеме всякое кардано, дизъйюнктивно нормальная форма, чтоб только или-не, и отэто самое прошивает?
>>433809 Есть разные стили, твой один из. Можно вставлять блоки в текстовом редакторе. Можно и в графическом в последние годы. Есть и арифметика с логикой как в программировании.
Чтобы именно счёт до 62 сделать, нужно будет счётчик 6-битный объявить и сбрасывать по сигналу сравнения с константой. То есть просто не выйдет, надо вручную.
Обычно сначала объявляешь регистры, потом комбинаторную логику (то есть арифметику и логику и или не над этими регистрами), потом какие сигналы в какой регистр защелкиваются на следующем такте. Отдельно объявляются входные и выходные сигналы.
Все, модуль готов. Дальше его либо в другие модули вставлять, либо к физическим пинам на ПЛИС назначать.
Можно и на питоне это все делать (litex на гитхабе), очень рекомендую. Там по сути метапрограммирование с экспортом в верилог.
>>433809 главное отличие от того, что ты описал — функции реализуются не через "или-не", а через таблицы логических функций (LUT). Они программируемые, таблица с двумя входами и одним выходом может быть функцией "или-не", а может быть любой другой функцией двух логических переменных. А ещё они могут быть на большее число входов, для экономии связей.
Ещё там есть триггеры, и они делаются не из кучи "или-не", а сразу в кремнии. Каждый такт триггер отправляет значение на входы LUT, на выходе другой триггер получает посчитанное значение и сохраняет его до следующего такта.
Есть какая-то простая тулза, чтоб блядь просто нахуй в вакууме нарисовать модуль с 1 клоком на входе и посмотреть битстримы на выходе? Чтоб ето не было ISE или Vivado, который пердит кряхтит и компилирует дольше чем я думаю?
>>433823 http://iverilog.icarus.com/ Либо litex который я предгал. Оба могут генерировать файлы с временными диаграммами, которые можно открыть через gtkwave. Для litex нужен питон, для остального Линукс.
>>433823 Что касается синтеза, то все плисы и их форматы файлов наглухо засекречены. Команда реверс инженеров кое-что смогла сделать впрочем, с некоторыми моделями.
Если допустим возникает необходимость высрать инициализационную последовательность бит/байт, чтоб сконфигуровать там чета, то не зашквар писать fsm курильщика, где расписано стопицот тактов, или белые люди уже давно придумали более лучшее решение?
>>433813 Litex с migen то ещё говнище. Они полностью проебали модульность. Все эти бесконечные self.sync =+ и self.comb=+ без которых твоя логика без всяких предупреждений не реализуется.
>>434292 Вот это там правда чуть наоборот клок, но это очевидным образом исправлено. На картинке загогулина константная, просто выверял такты там. Ето мои первые потуги в Verilog'e прост. Всё это как водится реклама, на железе ещё не опробовал.
>>434908 Первой пришла плата с FT600, делаю на ней. Но это оверпрайс яебанею, 80к за штуку, ну или где-то заказывать урезанную версию после разработки прототипа А я сам делаю потому что на фрилансе чет туго делают, дохуя лаве зря потратил и так. А мне нужно будет как минимум 3 девайса изготовить. Так что с FX3 тоже
Аноны, тут кто-нибудь делал КИХ фильтры на быстрой свертке? Может кто-нибудь посоветовать что-нибудь по этой теме для полнейшего идиота? В общих чертах мне более-менее понятно, но разные нюансы вызывают некоторые сложности, например секционирование свертки.
>>434965 Меня все интересует. Но больше интересует конечный результат, причем желательно на компонентах с военной приемкой. И не только для FPGA, может DSP окажется целесообразнее, хотя их я ни разу не трогал. Пока не к спеху, эта работа пока отпала, но весьма вероятно что к такому придется вернуться.
>>434977 Это не то, всего лишь один из нескольких способов. А попробуй еще определить когда целесообразнее применять один способ, а когда другой? И там подобных нюансов полно.
Помогите новичку, вот я добавил в ISE Design Suite IP-ядро быстрого преобразования Фурье, как мне теперь с ним взаимодействовать? То есть как ссылаться на него в основном тексте программы на VHDL? Может есть анончики, которые умеют в ней хорошо работать?
>>435091 Подскажи еще, пожалуйста, в чем можно моделировать вообще весь процесс? Например задать сигнал с шумом, потом пропустить его через схему и посмотреть результат?
>>435096 Там сверху над списком файлов есть переключатель simulation. Я симулировал через встроенный isim. Есть ещё modelSim, это отдельная программа, которая интегрируется с ise. Вроде как мощнее.
Для стимуляции нужно сгенерировать и дописать специальный vhdl или Verilog файл, который называют test bench, в котором будет подставлен тестируемый модуль, сгенерированы нужные сигналы и в котором будут отсутствовать внешние сигналы. Когда переключишь simulation, внизу должен появиться пункт сгенерировать шаблон для симуляции. В файле симуляции другой набор допустимого, там можно много того, что нельзя при синтезе, например вызывать функцию синус. Но сигналы все равно придется писать руками. Советую гуглить примеры и разбираться. Там ещё есть кнопочка с жёлтой лампочкой откуда можешь копипастить примеры в том числе для симуляции.
На рисунках мой старый пример для общей картины. Модуль нужен был чтобы уменьшить частоту шины за счёт удвоения ее длины. Вряд ли это хороший модуль, просто для примера.
Можно симулировать через командную строку в Icarus Verilog и litex, но там и проект должен быть на верилоге или питоне соответственно. Там на выходе файлы временных диаграмм, которые можно смотреть через gtkwave. Я перешёл на это когда в конец надоел глючный ise и долбаный vhdl. Verilog проще и понятнее, а питон тем более. Причем питон никаких ограничений на производительность не накладывает, потому что используется как макроязык, как обёртка для верилога.
>>434969 Все-таки с FX3 плата попроще и там практически лишнего ничего нет, кроме памяти. Ну а пикрил няша качественная, специально взял по максимуму, логических ячей дохуя, можно виртуальный синт запилить там заодно, если делать совсем нехуй будет
>>434969 Алсо сейчас помигал светодиодоме, затактировавшись от FT, так оказалось эта сучка отдыхает, если коннекта нет, часы не идут. Может wakeup задействовать..
О наконец-то от FT600 байты попёрли. Датащиты пишут пидоры. Как-то не очевидно в щите написано кто мастер а кто слейв, поетому я как дебил провтыкал вчера целый день за осцилографом, пытаясь вкурить что же происходит. Но потом глаза поднялись на описание пина со словом INPUT и всё встало на свои места слава аллаху. Судя по всему я не один такой, гуглится пара постов с подобными симптомами при реализации FT600.
Если я не хочу юзать блок-диаграмму, а хочу писать модуль в тексте, инстанциируя в нем другие модули, то ебучая вивада уничтожает некоторые сигналы, типо "нинужны" и в результате нихуя не работает. А если вывести сигнал на пин для дебага, то всё сразу начинает работать. Как заебало это всё, нельзя как-то чтоб я сам решал, что нужно, а что нет?
>>436499 Так у него на скриншоте все видно. ARPING это. Только это ARP, с обычным пингом наверняка будет заметно больше, если конечно он вдруг реализовал ICMP. Но это я так, как диванный теоретик.
>>436499 На винде с полным стэком будет хуй. В ядре линупса и не такое возможно. Один хуй из 100мгц я много не высру в момент, поэтому минимальный пакет будет израсходован впустую
Алсо вивадо - хуй пизда говно гнойного пидора из жопы, с какого-то хуя удалила мне порты из констрейнтов, и молчит сука. Всяки хитровыебаные ошибки так пожалуйста, а то что порт подключен к небу Аллаха - то тишина, всё норм )).
>>436577 Ну это просто контрпродуктивно - что-то там намодохать в пользовательских файлах и ничего не сказать, чтоб юзер потом полдня искал, а что же не так. Интерпрайз солюшен 24/7. Если бы это не был хоббипроджект на бесплатной версии, я бы имел полное право выставить счёт за потерянное время или как минимум пригласить представителя компании на serious talk. >>436593 Потом покажу.
>>436630 >Ну это просто контрпродуктивно - что-то там намодохать в пользовательских файлах и ничего не сказать, чтоб юзер потом полдня искал, а что же не так. Интерпрайз солюшен 24/7. Если бы это не был хоббипроджект на бесплатной версии, я бы имел полное право выставить счёт за потерянное время или как минимум пригласить представителя компании на serious talk.
Ты сам определил в проекте констрейнт факл как таргет, сам где-то мышкой натыкал, а потом сам нажал ctrl+s. Так что оплачивал бы ты зря потраченное время представителя компании.
>>433779 Такого нет в природе. Для ядер только дата шиты + есть обычно example project к каждому ядру. У меня есть слитые архивы курсов xilinx academy, там побольше инфы, но все равно все не то. Только экспериментирование и практика, больше никак.
А если бы ты не был хуй, то мог бы пояснить, что широкие векторы с жесткими констрейнтами приведут к congestion. Я уже за эти две недели прокачался дальше двачных икспердов, походу.
>>437204 Ты о чем? Такое вообще может использоваться описания памяти, чтобы не пихать IP блоки каждый раз. Описываешь однопортовую или двухпортовую память с таким регистром, а синтезатор почти наверняка сделает это на блочной памяти. Если ты хочешь трехпортовую память или что-то еще и получаешь в результате неожиданные результаты - то сам дурак. мимо
>>397766 (OP) аноны я придумал идею для майнера что если на одну плату поместить много много FPGA и написать для них прошивку майнера и получится очень мощный майнер битков как вам идея??
Что-то вивадо ебанулась, выдаёт ворнинг, что [Common 17-55] 'set_property' expects at least one object. на строку set_property IOSTANDARD LVCMOS33 [get_ports TX0}] set_property IOSTANDARD LVCMOS33 [get_ports RX0}]
потом выдает
the following two ports in this bank have conflicting VCCOs: RX0 (LVCMOS18, requiring VCCO=1.800) and CDRESET (LVCMOS33, requiring VCCO=3.300)
потому что в первый раз не наложила констрейнт, уже джва часа ябусь, в чем дело? Однако номер банка присвоился, значит констрейнт с пином наложился. Я уже даже пробовал переназначать эти несчастные RX0 и TX0 на пины, которые юзались раньше - всё тщетно.
>>437413 В Tcl это не синтаксическая ошибка. К разработчикам вивады в этом месте не должно быть претензий, кроме разве того что выбрали стандартный в этой области Tcl.
>>437427 Хуя ты порвался. Я ушел из ПЛИС в веб, но не работаю, если уж тебе так это важно. Спрашивай ещё, расскажу о своей личной жизни, о том на что дрочу и прочее.
А вот ебанутая логика всего зайлинкс софта это не отдельный случай, это система. Оправдать ее можно разве что закрытостью, ориентацией на штучную разработку, чтобы никто не пытался популяризовать.
На вопрос то ответь, о уважаемый знаток низкоуровневого кода? Объясни несчастной безработной веб макаке, почему смайлик не требует предупреждения?
Я так то не ебануый учить очередной недоязык когда есть питон. Но если ты шаришь, молодец.
>>437426 Может быть и стоило выдавать предупреждение. Но это совершенно точно не синтаксическая ошибка. Возможно разработчикам вивады в процедуре get_ports действительно стоило сделать вывод предупреждения, а может стоит самому проверять что возвращает get_ports.
>учить очередной недоязык Не уверен на счет того что Tcl знает анон отвечавший тебе ранее, но в Tcl вообще ничего нет кроме двух видов скобок, кавычек и $ для подстановки значения переменной, поэтому учить там нечего.
>>437476 Контроллеры изучил, ПЛИС изучил а до веба все руки не доходили. ПЛИС забросил, нет ни плат, ни желания что-то делать. Через полгода-год кончатся деньги, может начну шевелиться.
>>437490 >Производитель чипов AMD договорился о крупнейшем приобретении в своей истории — покупке конкурента Xilinx за $35 млрд. Мда, вот тебе и Форбс.
>>437511 Рекомендую циклон iv как минимум, хоть он и в 3 раза дороже.
CPLD очень ограничен по сравнению с FPGA. А циклон ii который был в похожем исполнении у меня за 15$, как оказалось, уже не поддерживается новым софтом.
Их стоит брать, если ничего серьезного нет цели делать. Только обычные регистры, логика, частоты строго до 100 МГц. Например логический анализатор можно сделать, какой-нибудь адаптер для sdram памяти или дисплея, или несколько ШИМ, все что очень простое по сути.
А если хочешь продвинутые блоки вроде синтезатора частот, порты с поддержкой lvds, и при этом не ебаться с софтом, лучше взять старшего.
Вообще места в ПЛИС всегда не хватает, только захочешь что-нибудь посерьёзнее светодиодом помогать, там протокол какой-нибудь типа ethernet, выч блоков несколько, опа и уже 30% на младших моделях занято. А больше 70-80 % все равно заполнить нельзя просто так без извращений типа ручной расстановки, синтез на этапе расстановки пошлет тебя нахуй со словами: извини, брат, сложна:)
Так что сколько ни купишь места, все равно будет мало. Можешь брать дешёвую, но на многое не рассчитывай.
>>437517 >А циклон ii который был в похожем исполнении у меня за 15$, как оказалось, уже не поддерживается новым софтом. Уже как несколько лет и Циклон 4 считается устаревшим. Последняя версия Квартуса, которая его поддерживала, если правильно помню, 16-ая.
>>437517 >места в ПЛИС всегда не хватает У меня подгарает с другого. Почему в ПЛИС не вставляют периферию, как по типу с МК? Понятное дело всякие счётчики и таймеры не нужны, но могли бы хотя бы PHY стандартных протоколов засунуть, езернет там, усб, уарт, цапы/ацп, и всё такое прочее? Как бы сильно жизнь упростилась, не надо было бы с внешней обвязкой ебаться.
>>437519 > Почему в ПЛИС не вставляют периферию, как по типу с МК? Понятное дело всякие счётчики и таймеры не нужны, но могли бы хотя бы PHY стандартных протоколов засунуть, езернет там, усб, уарт, цапы/ацп, и всё такое прочее? Думаю ты сам знаешь ответы, но я перечислю что сам знаю.
На старших есть и phy для usb3.0(super speed)/sata/PCIe, и АЦП какое-то до 1 МГц. Точно знаю что в artix7 есть АЦП, а в kintex и virtex гигабитные передатчики.
Ноги где это поддерживается ничего больше не могут. На xilinx ultrascale серии, которой несколько лет всего, вроде как собирались ставить быстрое АЦП для цос. Стоит бешеных бабок наверное.
Я лично ебался с GTX передатчиками на работе наверное целый год, пытаясь реализовать jesd204b, который у АЦП современных, когда их айпи блок ещё не взломали. Сейчас не знаю, может уже есть кряк и на него.
Для ethernet все равно нужен трансформатор вроде. UART ты наверное для кучи добавил, для него phy не нужен и так.
USB 2.0 (high speed) phy, хз, почему нигде не встроено. Full speed можно и так реализовать ногодрыгом. На гитхабе есть проект, но я его так и не попробовал.
Тогда подумаю что брать. В принципе, ничего архимега сложного пока не собирался пилить - максимум, выплюнуть что-то по VGA или, таки да, запилить генератор ШИМ на несколько каналов.
>>437522 >На старших есть и phy для usb3.0(super speed)/sata/PCIe Может я и ошибаюсь, но все эти высокоскоростные транисиверы поддерживают эти интерфейсы на уровне протоколов, напряжения всё равно нужно согласовывать внешней обвязкой.
И зачем всякие дорогущие АЦП, можно же и по проще вставить.
>Для ethernet все равно нужен трансформатор вроде Да, но на него напряжение подаётся тоже не 3,3.
>UART ты наверное для кучи добавил Имел в виду RS-232/485 и подобные.
>Думаю ты сам знаешь ответы, но я перечислю что сам знаю. У меня есть две версии на этот счёт. 1. Если в дешёвую плис напихать кучу интерфейсов, то мы не сможем реализовать работу со всеми сразу, по причине малого объёма дешёвых плис, хотя есть же Ниос. А значит большая их часть будет простаивать и за них будут зря заплачены деньги. Отсюда следует 2. 2. В дешёвые плис надо вставлять из всего возможного набора только несколько требуемых интерфейсов, а это приводит к резкому росту номенклатуры, что, видимо, для производителя не эффективно с экономической точки зрения.
>>437418 К разработчикам вивады не было бы вопросов если бы она не падала каждые 15 минут, или при прикосновении к окошку с прогрессбаром, или не затирала текущий проект при падении, так-то я был бы повнимательнее к себе, прежде чем искать проблемы в среде разработки...
>>437524 > эти интерфейсы на уровне протоколов, напряжения всё равно нужно согласовывать внешней обвязкой. Нет, на скоростьях выше 200 МГц (условно) никаких напряжений нет, там токовые драйверы. Погугли lvds.
USB 2.0 тоже токовые драйверы имеет, но он двусторонний, поэтому не поддерживается в gtx. Наверное его можно сделать на простом serdes, но не встречал.
Остальные гигабитные интерфейсы примерно одинаковые на низком уровне, поэтому для них универсальные блоки gtx. Из согласования только резисторы видел на плате и конденсаторы.
Там действительно есть целый набор блоков низкого уровня, восстановления клока, 8/10 кодирование, скрамблинг (кодирование без постоянной составляющей), куча опций, просто потому что там гигагерцы частоты, без этого нереально принять данные. На выходе все равно сырые байты, как и на входе.
> И зачем всякие дорогущие АЦП, можно же и по проще вставить. Да просто на работе у меня другие не считались за АЦП вообще, скорее как игрушки. ПЛИС же для цос чаще всего нужна в промышленности.
> >UART ты наверное для кучи добавил > Имел в виду RS-232/485 и подобные. Тут без вариантов, кто ж а ПЛИС 15 В ставить будет, в МК то же самое.
>>437533 Те линии что на 3.0 появились да. Там только кодирование отличается, оно в ПЛИС настраивается. На этих частотах просто нет особого выбора, никакие стартовые биты и клоки как в spi здесь не придут одновременно, и за счёт более высокой частоты не примешь, очевидно.
В ПЛИС есть несколько типов приемопередатчиков. Обычный serdes на частотах 200-600 МГц (обычно до 400), которых достаточно много и их можно на любые линии почти назначить. Получится обычный lvds, если конечно настроить линии правильно.
И гигабитные на частотах выше 1 ГГц, на которых работают все современные протоколы. Gtx, gtp это названия модулей конкретно у xilinx. Они отличаются только скоростями и немного управляющими сигналами . Чтобы покрыть частоты 600-1000 МГц есть режим оверсемплинга то есть когда один бит растягивается на два и более тактов, и так же принимается. Этих передатчиков обычно немного, от одного до десяти, стоят на выделенных линиях, имеют отдельный опорный тактовый сигнал на каждый лэйн, лэйны можно связывать чтобы они работали в группе как в pcie или гигабитном эзернете. Гигабитные интерфейсы не называют lvds, потому что это стандарт другой, но принцип там тот же.
lain это пара приемник и передатчик, по паре проводов на обоих т.е. в сумме 4 провода на лэйн, в usb3.0 ровно один лэйн (помимо старых сигналов usb2.0), в sata в 3 версиях тоже, в PCIe x16 - ровно 16 лэйнов и т.д.
По ссылкам явно не указано usb3, но можешь мне верить.
Подскажите, пытаюсь победить xilinx fft ip core в ISE. Никак не могу понять, как должны выглядеть для него входные данные, если предположим вход 14ти битный. Какая часть этого числа отвечает за целую, какая за дробную? Например если я хочу подать заранее сгенерированный гармонический сигнал в тестбенче, какой формат данных должен быть?
И каким образом интерпретировать результаты? Если у меня длина преобразования 32бит, частота БПФ 250 МГЦ, то на выходе я буду иметь 32 числа, где 1е это постоянная составляющая, а остальные соответствуют шагу частоты 250/32=7,8 МГц?
>>437643 > Какая часть этого числа отвечает за целую, какая за дробную? В настройках же задаётся. Там есть и плавающая запятая.
> И каким образом интерпретировать результаты? Если у меня длина преобразования 32бит 32 отсчёта имеешь в виду?
> частота БПФ 250 МГЦ, то на выходе я буду иметь 32 числа, где 1е это постоянная составляющая, а остальные соответствуют шагу частоты 250/32=7,8 МГц? БПФ это чисто математическая операция, ей безразлично на какой частоте идёт преобразование, важно какая частота отсчётов. Если частота АЦП, которым этот сигнал был захвачен, равна 250 МГц, то будет 250/2, 250/3 .. 250/16 и вторая часть зеркально отраженная. Это если мнимая часть нули.
>>437650 В настройках задаются пикрелейтед. Среди них нет вроде выбора количества разрядов, отвечающих за целую/дробную часть числа. Только тип (плавающая, постоянная).
Да, 32 отсчета на каждое преобразование.
Частота отсчетов как раз 250, с этим понял, спасибо.
>>437650 Просто я на вход подаю вот такие значения: максимальное 8191, минимальное -8192. Тоесть целые, а на выходе получаю совсем не то, что должно быть.
На втором твоём скрине же задаётся число разрядов на входе. Из них получается и выходная точность. Вроде бы там на выходе тот же формат что и на входе. Там же есть масштабирование, если нужно подогнать выход.
>>437656 Я и не могу понять, какие числа должны быть на входе. Число разрядов у меня задается предположим 14. Это может быть 00 0000 0000 0000 0000 - целое число либо 0' 0 0000. 0000 0000 0000 - где 0' знак, 0 000-целая часть, 0000 0000 0000 - дробная. Выбрать никак нельзя, в датащите не нашел, но тем не менее, мы выбираем fixed point data
>>437519 > Последняя версия Квартуса, которая его поддерживала, если правильно помню, 16-ая. Ты про какой именно циклон? Потому что 4E и 4GX поддерживаются вплоть до последней (не считая Pro) 20.1.
>>397766 (OP) МК-холоп, мечтающий хотя бы немного научиться в ПЛИС и понять работу процессора репортинг ин.
С одной стороны, мельком я понимаю(на уровне, достаточном для проганья мкшек) устройство микропроцессора, разные виды памяти(flash, ram), что такое бутлоадер, dma, как работают разные регистры сдвигов или как работает uart.
Но с другой, прогаю я на си, собрать регистр или суматор из простых элементов не смогу, что такое архитектура процессора или набор команд, стек, регистр статуса, cisc, risc, mips я вообще не понимаю, что это и зачем, для меня это просто слова. Т.е., скажем так, я работаю с API и набором функций, которые читаю в даташите/описании либы, а что происходит "под капотом" мк для меня "магия".
Конечно, профи по ПЛИС я не стану(этому надо учиться в вузе на соответствующих специальностях), но смогу делать разные поделки на плисках как хобби + наконец-то начну понимать, как внутри работает проц.
Итак, как вам мой план? 1. Прохожу книгу "Код" Петцольца, и параллельно собираю разные триггеры и сумматоры на листочке/ в симуляторе на пеке из логических элекментов. 2. Прохожу книгу "Цифровая схемотехника и архитектура компьютера" Харрис и Харрис, покупаю ПЛИС и простенький логический анализатор/осцилл, делаю упражнения из книги на verilog/vhdl и проверяю на живой ПЛИС, и рано или поздно разрабатываю на плис простеньки процессор с переферией и набор команд и прерываний для него.
>>438623 Это вопрос самомодифкации кода? Только старшие ПЛИС могут менять сами себя и то только на уровне внутреннего порта программирования.
Видимо он сидел и прошивал все 3000 итераций, сгенерированных на компе.
Ну по сути нейросеть видимо, но я бы взял лучше обычную программу под Винду с самомодифкацией кода или вообще симулятор обычный сделал.
Ничего кардинально интересного реализация в железе здесь не даёт. Даже если он сделал так, что ПЛИС сама меняет каким-то образом свое поведение за счёт дополнительного слоя абстракции, например сделал дохуище мультиплексоров соединённых с памятью (по сути ПЛИС внутри ПЛИС, но уже с возможностью менять себя в реальном времени), то это мало чем отличается от симуляции.
>>433330 репортинг Наконец поднялась жопа дошло дело до ебли собственно с кодеками, однако оказалось не всё так просто кто бы мог подумоть, путём многократного прикидывания хуя к носу удалось установить что I2C я реализовал верно, т.к. кодек реагирует на запись регистров (ето удолось понять по переключению напряжения на его аналоговом выход например), но всё остальное делать отказывается. В частности он отказывается работать в мастер режиме, когда на выходах должны быть сгенерированы 2 частоты сэмплинга. Диагностика осложняется так же тем, что пайка в qfn формате выполнена кустарно и нет никакой гарантии качества, однако на 2х спаяных платах поведение одинаковое. Заказал на всякий случай QFN сокет, если совсем пизда дурная голова ногам покоя не даёт, хуле, но пока у меня осталась только одна гипотеза - кодеку не нравится клок, самонадеянно сгенерированный внутри FPGA добавление ODDR не помогло, на вид у него довольно таки дохуя гармоник, и фронт вялый. Успокой меня анончик, подтверди эти выводы? Завтра попробую подключить внешний кристал.
>>438701 ПЛИС даже самая хуевая может 50 МГц на выходе давать. Для I2c по-любому хватит частоты. Проблема софтовая, подключай ChipScope и смотри сигналы.
Попробуй готовый блок с GitHub какой-нибудь.
Напряжения совпадают? В ПЛИС 3.3 В считается много, может там 2.5 В или 1.8 В и нужно согласовать?
>>438738 >>438735 Алсо посмотрел схему девборда CDB42448, там тоже для кодека отдельный осцилятор стоит, несмотря на наличие FPGA, так что что-то мне подсказывает что дело все-таки в этом.
>>438759 Ты конечно такой загадочный. Хорошо хоть чип назвал.
У тебя там 50 МГц максимум мастер клок. ПЛИС спокойно его сгенерирует.
1. Регистры неправильно записаны? 2. Клок генерируется от PLL? Там у тебя 45% - 55% требования к коэффициенту заполнения. 3. Напряжения не согласованы? Клок просто не доходит.
>>438786 В датащите уровень описан как 70% от 5v, т.е. вероятно не доходит. Хотя I2C доходит. Регистры чекал уже тыщу раз. Регистр, переключающий VQ Ramp (кодек у меня CS4244, если чо) по крайней мере действует, напряжение на ноге меняется. Чтение регистров пока лень делать было. Щя раздобуду USB I2C, потыкаю как следует. Выходит, нужно будет пикрил приделать?
>>438805 Нет, пикрил не подходит для больших частот, потому что подтяжка очень медленная вещь. Чтобы она работала на высоких частотах, нужен маленький резистор (постоянная времени как известно R x C, соответственно частота 1/(RC)) который просто закоротит порт.
Нужен полноценный драйвер, чтобы вверх напряжение тоже успевало вырастать. Самый простой вариант txs0108, на 3.3в он до 100 МГц (по даташиту). Но есть и более профессиональные микросхемы, вот кусок схемы виртекса-6.
>>397766 (OP) Чо правда, что вашими потешными микросхемами можно обрабатывать данные на скоростях в несколько Gb/s? Или они начинают стоить как спутник GPS?
>>438824 3.3 не помогло Тут я всмомнил что моя фпга может и сама выводить сразу 5в, но это тоже не помогло. В клоквизорде стоит опция MMCM. Попробую поменять на PLL. В общем где-то закралась фундаментальная хуета, чую придется ждать сокета, чтоб уже быть уверенным хотя бы в том что микросхема в норме.
>>438905 В общем я от безысходности подключил i2c scan с ардуины, и всё дико нагрелось сгорело нахой ))), теперь и на сигналы от FPGA не реагирует. Осталось ещё пара чипов в запасе.
Господа, как исправить: есть код на верилоге написанный с помощью конструкций "forever begin", но компилироваться оно не хочет. Я так понимаю. нужно перейти на "always". Но как быть с присвоениями значений?
Например, как в этом цикле сделать счетчик, который меняет значение регистра i?
>>438993 Регисторы я только пока не читал, но там всего то 3 флажка. Клок еррор в мастер режиме не может происходить, сериал еррор тащемта тоже. VQ Ramp переключается, аки на I2C есть (правда вялые какие-то хз, в чем дело, может драйвер слишком мощный). Это разве что если в суппорт письма писать... Прочие регистры можно конечно попробовать повтыкать.
>>439090 >Во-первых, у always-блока должно быть тело Не совсем так. begin-end нужны для объединения в один блок, а если statement только один, то ничего такого не нужно. Вот, анон выше правильно написал >>439077
Собрал яйца в гулаг, надрочил I2C с ардуины с пулапами. Микросхема начала генерировать сигнал! Не воспринимались команды судя по всему, из-за того что я не удлинял первый такт I2C клока. Втф из тхис щит, нигде не написано. Тайминги в датащите об этом ничего не говорят. Вобщем, как обычно.
Однако настоящей глыбой является Cirrus Logic - работает даже после пригорания с дымком!
Это единственный документ, который научил меня писать простой понятный быстрый (333 МГц параллельный FFT на virtex 6) код.
Вообще не понимаю, что там можно смотреть >>439090 чуть ли не целые сутки. Основы языка помещаются на листе А4, а все остальное без практики пустой звук. Лучше читать чужой код.
Уходя в сторону, лично я гораздо больше получил опыта изучая и используя проект litexhttps://github.com/enjoy-digital/litex (который на питоне), чем все остальные игры с сигналами. Пока вы сидите и разбираетесь, как объявить сигнал в верилог (или не дай бог vhdl ебал в рот его создателя), там люди сходу объявляют структуры из сигналов, пишут периферию, отлаживаются через uart или ethernet (или PCIe но это я не пробовал).
Проект сам сгенерирует вам констрейны .ucf или вивадовские или квартовские по желанию. Нужно только один раз вбить описание вашей платы. Миграция между платами и между семействами ПЛИС гораздо проще.
На питоне можете хоть синус, хоть порно заливать в прошивку и строить графики, в отличие от верилога где вычислить триг. функцию это задача для сеньёра, а о графиках можно только мечтать.
> Ряяя питон в ПЛИС ты долбоеб В который раз поясню, что питон в этом проекте - макроязык, он не занимает никаких дополнительных ресурсов, он просто генерирует код так как вы ему скажете. Моргание светодиодом будет занимать столько же ячеек, сколько и на Verilog, потому что на выходе будет тот же верилог.
> ряяя у меня весь код на верилоге/vhdl Просто и без задней мысли можно подключить и верилог, и vhdl, и оба сразу, и как следствие любые специальные блоки из вашего конкретного чипа.
Например первое что я сделал это написал обёртку для PLL. Теперь у меня всех платах генерация частот выполняется одинаково в одну строчку. > inst.CRG(100e6,"sys") Вы видели когда-нибудь "100е6" в верилоге? Конечно нет, ведь его хуй синтезируешь. Ты обязательно должен писать 1000000000 в настройках в лучшем случае, к чаще вообще коэффициенты. А в питоне просто округляешь дальше и все.
> дебил возьми божественную виваду и настраивай все мышкой. Вивадо, фигурально выражаясь, это делфи для ПЛИС. Каждый раз лазить в тормозную хуйню чтобы поменять что-то, не для меня.
Вы знаете сколько сигналов в GTX мать его приемопередатчике? Там под 500 строк только установка этого модуля! (Пик 1) А шины как установить, а процессор? Там тоже несколько сотен сигналов, вы заебетесь их назначать по одному. Именно в таких случаях становится просто необходимо часть сигналов присвоить здесь, часть в другом блоке, чтобы не мешать в кучу. Поэтому просто пишешь функцию подключатель шины и соединяешь все сигналы в одну строчку.
Вы же не будете припаивать процессор в свой компьютер по одной ножке в сокет? Вы просто вставите весь проц сразу. Так делайте так же и в ПЛИС. Подключайте шины целиком.
Анончик, расскжаи пожалуйста, где можно почитать подробно о использовании плис? То есть, какие лучше, в чем преиущества, почему нельзя некоторые алгоритмы реализовывать на обычных микроконтроллерах, о переспективнвх направлениях и т.д....
Есть ли вообще темативеские сайты об этом? Если знаете, поделитесь плиз
>>439163 >там люди сходу объявляют структуры из сигналов В vhdl это тоже делается просто
>в отличие от верилога где вычислить триг. функцию это задача для сеньёра Тоже простая задача для vhdl. Можно спокойно делать rom с синусом, да и в принципе с любой функцией: любая комбинация из тригонометрических, логарифмов, экспоненты и других.
>или не дай бог vhdl ебал в рот его создателя Просто ты неосилятор, не могущий в абстракции.
У этой ёбы есть ёба- описание https://dropmefiles.com/IBSWx Этой ёбой можно управлять по ёба-разъёму. 1 пик - это картинка из ёба-описания, на ней он не подписан (внизу по центру четырёхконтактный разъём). Есть описание этого ёба-разъёма, судя по всему там какой-то уарт-подобный протокол https://dropmefiles.com/W9EfH Какие там напряжения на этом ёба-разъёме я пока не понял, но это сейчас и не важно. Мне больше интересно как считается контрольная сумма, выдержка на пике 2. Из того что я понял. Сначала заполняем 16разрядный регистр единицами, затем по исключающему ИЛИ добавляем туда байты сообщения, потом, зачем-то, сдвигаем на один разряд в сторону младших разрядов и если выдвинули 0 то ничего не делаем, а если выдвинули единицу то вот тут я уже не понимаю, какую-то фигню пишут. И как у них в результате всего этого 16разрядное CRC получается тоже непонятно. Анончики, прошу помощи зала.
>>439351 >Ничего особенного с ними не сделаешь. В vhdl можно объявить не только записи, состоящие из сигналов, но и операции с ними. Например для работы с комплексными числами можно определить следующую запись: complex_signed is record re : signed; im : signed: end record;
Для этой записи можно определить операторы "+", "-" и функции abs(), resize(). Тогда работа с комплексными числами значительно упрощается. Пусть объявлены следующие сигналы: signal a : complex_signed(re(7 downto 0), im(7 downto 0)); signal b : complex_signed(re(7 downto 0), im(7 downto 0)); signal c : complex_signed(re(8 downto 0), im(8 downto 0)); Сумма двух комплексных чисел будет выглядеть просто как c <= a + resize(b, 9);
>>439351 >Смотри пикрил. И что я там увижу? Функции преобразования типов? Какая неожиданная новость для языка с сильной типизацией. Чтобы избежать многочисленные преобразования типов, нужно правильно подобрать типы для своей задачи и написать свои. Например небольшие счётчики, особенно если они используются селекторами в мультиплексорах лучше сразу объявлять как integer.
>А на vhdl нужно ебаться с кодом. Нет не нужно. Сильная типизация отсеивает многие ошибки на этапе компиляции.
>Просто ты ничего сам нипесал на своем vhdl, максимум готовое юзал. Очень сильное заявление. Я писал и пишу очень много того что тебе и не снилось, различные FEC и сложный ЦОС. Так что давай оставим меренье пиписьками.
>Уровень аргументации ясен. Здесь уже кто-то поднимал тему Litex и я писал что основная проблема - почти полное отсутствие модульности. Сигналы интерфейса модуля размазаны по всему коду и не понятно какие сигналы необходимо завести в модуль. Работа с клоковыми доменами не очень удобна. В Litex pcie не сделали нормальные констрейнты, чтобы он синтезировался без критических ворнингов.
Всё блет, запустился кодек ебучий. Бтв в режиме double speed & x128 он вообще не работает, в датащите пиздёж, побрутфорсил ардуиной, пришлось поднять клоки. Радует что платы спроектированы верно (это мои первые платы!), не придется перезаказывать. Щя добъю основнюу плату для коммутации и збс.
>>439429 А теперь объяви массив комплексных чисел с настраиваемой длиной массива и самих чисел, через генерики. Ты конечно скажешь, что в 2000 версии добавили возможность передавать генерики в рекорды, но это 1. Костыль, требующий дикой писанины, 2. Работает далёко не везде, потому что везде гарантировано работает только vhdl-93. 93 год карл
А если нужно комплексное умножение разбить на несколько тактов? Заебись тебе поможет написанный с таким трудом код для всех типов?
Вдобавок невозможно сделать одно поле рекорда входом другое выходом. Как следствие макаронный код из разрозненных сигналов.
В питоне я напишу универсальную функцию, которая сможет и синхронно, и комбинаторно вычисляться в зависимости от параметра и мне для этого не нужно будет писать целую библиотеку из модулей. Я просто напишу эту функцию.
И мне не нужно будет каждый промежуточный сигнал прописывать в заголовке, только нужные.
Вот объявление комплексных сигналов. Некрасиво, согласен. Но всяко проще чем рекорды где-то в других компонентах и библиотеках.
А это вычисление умножения за 4 такта с расчетом что система подставит аппаратные умножители. 3-й такт просто задержка. Решетка - комментарии. Функция (самописная) sync добавляет регистр указанной длины, назначает ему указанный сигнал или выражение и возвращает новый сигнал. comb делает то же самое без регистра.
> Сигналы интерфейса модуля размазаны по всему коду Это не баг а фича. Любой модуль может получить любой сигнал из другого модуля без изменения entity, которого нет. > и не понятно какие сигналы необходимо завести в модуль. Для этого существуют комментарии. > Работа с клоковыми доменами не очень удобна. Ох нихуя себе, а в vhdl есть работа с клоковыми доменами?
> В Litex pcie не сделали нормальные констрейнты, чтобы он синтезировался без критических ворнингов. А в vhdl уже все это сделано?
>>439460 Как ты себе это представляешь? Сначала компилируем Яву, потом из Явы делаем верилог? Зачем?
>>439468 > Сначала компилируем Вот тебе далось на что своё время тратит исполняемая программа, сомневаюсь даже что это время сильно возрастет. С твоей точки зрения это просто вызов из командной строки. >зачем На жабе уберлегко программировать, декомпозировать, оптимизировать и т.п.. если прокачан скил ООП бгг. Но одебилевшие дауны любители "скриптования" например используют в джава билдах гредл яхуею с таких вообще, пиздос, в языке с манагед памятью делать второй язык, почти такой же блед, под который только нет нихуя нормальных сред для автозаполнения и хуй че поймешь как писать, с красными глазами на эту ебанину смотреть только, и всё только потому, что стоит в голове какая -то галочка про скрипты, зачем так жить, типизация и компилякр резко снижает количество ошибок до нуля. Можно отточить качество без ограничений. Скорость развитие проекта будет моё почтение.
>>439599 Так у тебя всего одна ошибка и 4 ворнинга. Твой модуль "шаги" не определён. Такое обычно бывает когда имя модуля верхнего уровня в Верилоге(, а может и в ВХДЛ тоже,) несовподает с названием файла в котором он сдержится. Имена одинаковые сделай.
>>439461 Так настраивай эти свои клоки быстрее, чего ты ждёшь, Болдуин? > в датащите пиздёж Такого быть не может. Разве что есть errata со списком обнаруженных ошибок "особенностей" микросхемы, прилагаемая к даташиту/референс мануалу, но для ПЛИС errat-ы не делают, как мне кажется.
>>439703 >настраивай эти свои клоки быстрее Зачем ты мне предлагаешь сделать то, что я уже сделал и о чем написал в посте, на который ты отвечаешь? Ты ебанутый? >Такого быть не может Ты скозал? В любом датащите есть ошибки, и всем пох. В датащите FT600 клок нарисован вверхногами, только колупание чужих и референсных исходников помогло понять реальное положение фазы клока. В датащите CS4244 - неработающий режим double speed x128, некорректное описаное I2C. По дороге нашел проект на другой кодек cirrus, cs43.. че-то там, там разные разработчики жаловались на то что надо подрочить резервный бит в регистре, и только тогда достигается работоспособность, притом что саппорт производителя категорически отрицает такую возможность. Итого как минимум 1 ошибка на продукт. Да что далеко ходить, неоднократно был свидетелем некорректной работы ГОСТ сертифаед 24/7 оракл интерпрайза например, полностью ломающего транзакционность и корректность обновления данных, или напрмер тупой баг когда агрегаты с кейсом можо сортировать по возрастанию, а по убыванию возникает интернал еррор - и это продукт с историей, репутацией и сертификатоме. Мир полон нелепого говна и говноделов. Так что пока ты юноша верующий в швитых производителей - не пиши.
>>441061 Какой бекдор? Там обычный аппаратный AES (+ SHA еще что-то наверное), который обязан работать идентично любому другому AES, хоть программному, хоть аппаратному. Или ты про бекдоры, требующие физический доступ к устройству?
>>441012 Может быть я что-то не понимаю, но мегафункции это обычные модули. А разве можно засовывать модули в функции?
>>397766 (OP) >3 пик Молодежь пошла ленивая. Ты сначала лаборантом/техником отработай поучись у мужиков уму разуму. Через три - четыре года получишь должность инженера 3 категории. Через еще пять лет имеешь право на повышение категории. К сорока годам станешь ведущим. Вот тогда и будешь себе требовать зарплату 80 тысяч как у опытных мужиков. Мужики опытные по 12 часов работают как говориться от забора и до упора. И не ленятся. А молодежи нужно зарплату чтобы минимум была 40 тысяч. Мы в советские времена не за зарплату работали. А знали что надо. Бывало закончишь наладку схемы в 9 часов вечера и ложились спать в кабинете у осциллографа с ЭВМ, а утром в семь часов уже опять вставать на работу.
>>441426 >Через три - четыре года получишь должность инженера 3 категории. А как же должности техников 1-3 категорий и младший инженер? мимо техник-инженер-ведущий
>>433409 Работал в 2013г в aldec, мы уже тогда пилили поддержку system verilog для линтинга. Судя по тому, что алдек плелся в хвосте инноваций, то ксайлинксы и альтеры должны работать с ним. Но это мое вангование
Как брутальные плисоводы пишут автоматы? Я понимаю, что простые автоматы на 3-5 состояний можно написать и так, но если состояний штук 15? Рисуется классический граф с кружочками и стрелочками и по нему уже пишется код? А если у нас входных сигналов штук 20 и соответствующее количество переходов, то даже граф будет весьма запутанным. А если у нас выходных сигналов тоже много, то код будет на сотни строк. Как быть?
>>441792 >А если у нас входных сигналов штук 20 и соответствующее количество переходов, то даже граф будет весьма запутанным. В смысле, из каждого состояния есть 20 вариантов переходов? Обычно есть варианта-три четыре, типа "остаться здесь", "перейти на следующее состояние", "перейти на обработку ошибки/начать сначала".
>>441807 Ну хз как переделать. Софтпроцессор поднимать? - излишество. Да и если таких автоматов в проекте штук 5, то что, 5 Ниосов поднимать?
>>441831 > смысле, из каждого состояния есть 20 вариантов переходов? Не, не 20 конечно, переходов 5-7 в среднем, но всё равно автомат до шиша большой и сложный получается, когда таких состояний штук 15.
>>441841 Есть у тебя в протоколе 20 типов сообщений с разными индукторо идентификаторами, но 1-2 црц. Как будешь поступать? Сократить кол-во сообщений не вариант.
>>441846 >Вот здесь не понято. Часть состояний можно инкапсулировать в более мелкий автомат. Получится один главный fsm, оркестрирующий более мелкими, которые выделены в отдельный модуль. Ну и 20 входных сигналов, если там не буфер, тоже не ок вообще-то
Хочу заказать изготовление чипа на пластине на каком-нибудь TSMC или аналоге. Посоветуйте литературу или другое чтиво, где можно узнать в деталях, как это происходит. Особенно интересно, как делается тестирование на дефекты, когда еще пластина не разрезана на отдельные чипы. Это мне нужно отдельно изготовить тестовую плату и отправить им? Или надо им отправить дизайн тестовой платы вместе с дизайном чипа?
Алсо, поясните за ПО, которое генерит transistor-level схему под целевую технологию и техпроцесс. Это доступно рандомному мимокрокодилу или там лицензия стоит под 10к долларов?
>>442117 >Хочу заказать изготовление чипа на пластине на каком-нибудь TSMC или аналоге. Ты же в курсе, что енти чуваки меньше чем за несколько миллиардов долларей даже не взглянут в твою сторону? А с несколькими миллиардами поставят тебя в конец многокилометровой очереди которую не переживут даже твои внуки
>>442117 Ищи комьюнити, где народ скидывается и заказывает свои кристаллы на одной пластине, у них же и спросишь требования. Но я слышал, с русскими больше не хотят сотрудничать
>>442118 >Ты же в курсе, что енти чуваки меньше чем за несколько миллиардов долларей даже не взглянут в твою сторону? Сомневаюсь. Во-первых никто не делает серийное производство без выпуска тестового чипа, соответственно существует MPW, во-вторых им вообще похуй, производство автоматизировано, в оборудование надо только пластину подать, а в управляющий компьютер отправить шаблон схемы. Через 3 месяца на выходе появится напечатанная пластина, которую и отгрузят заказчику в специальном боксе. Нарезка пластин - это один из этапов packaging, делается на отдельных фабриках.
>>442119 >Но я слышал, с русскими больше не хотят сотрудничать Коммьюнити или TSMC? А почему?
Анон, есть ли айпикор эзернета, чтоб можно было подключить rxd, txd, клоки и всякие дата рели и валид и получать себе спокойно данные и отправлять их, не ебя себе мозг акси шинами и прочими gmii управлением? Это, наверное что-то типа pcs-pma корки плюс интерфейс хотелось бы. Подразумеваем, что на плате распаян контроллер сети или какой-то сфп свисток будет подоткнут.
>>442117 > Алсо, поясните за ПО, которое генерит transistor-level схему под целевую технологию и техпроцесс. Это доступно рандомному мимокрокодилу или там лицензия стоит под 10к долларов? >
http://opencircuitdesign.com/qflow/ >This small 32-bit processor was designed for embedded mixed-signal applications and has a 100MHz internal clock. The RISC-V processor core has over 20,000 gates, synthesized by yosys, placed and routed by graywolf and qrouter, and validated by vesta static timing analysis. It was a first-time silicon success triumph for open-source EDA tools.
>>442117 Где то на electronix была тема про дизайн-центр, глянь там. Обратись в какой-нибудь местный универ/дизайн-центр, в общем случае без нескольких миллионов/десятков миллионов рублей там делать нечего. Тестируют пластины на зондовой станции. Пример ПО - cadence virtuoso, для техпроцесса надо получить pdk фабрики, заключив с ними соглашение. Asic нужен, если у тебя идут неебацца крупные серии сотнями тысяч/миллионами штук, для малых тиражей определенно лучше ПЛИС/ПАИС+дискретка.
>>442227 Спасибо да ответ. А что такое ПАИС и дискретка? А то гуглится оче плохо
>если у тебя идут неебацца крупные серии сотнями тысяч/миллионами штук чипов или пластин?
>Тестируют пластины на зондовой станции На этапе packaging? Как происходит взаимодействие с фабрикой? Буду очень признателен, если ты напишешь в деталях весь производственный процесс выпуска ASIC от разработки до упаковки.
Привет аноны, помогите разобраться. Я так понимая в ПЛИС xilinx virtex5 есть аппаратный последовательный интерфейс. Как мне до него добраться? Где почитать про то, как через него данные выводить?
>>443118 https://www.xilinx.com/support/documentation/user_guides/ug198.pdf Странный вопрос. Если оно тебе действительно было бы нужно, то ты бы самостоятельно открыл документацию (по этой ссылке). А так выглядит будто студенту дали такое задание. Вот разобраться в этой документации это уже куда сложнее чем загуглить документацию.
>>443141 Так и есть, студенту дали задание. Спасибо за ссылку, видел этот документ, но как понял он работает только с 20-ти битными данными, поэтому почти сразу отмел его, так и не поняв для чего он. В этом моя ошибка
>>443142 тогда съеби отсюда студень ебучий... нафиг вы все лезете и демпингуете и без того маленькие зп у плисовиков?? и помагать ему еще за это, лол мимо профи
>>443244 >Учи английский и все будет заебись. даун у инжереров, решает все образование, в первую очередь смотрят на диплом а только потом на скиллы и портфолио если закончил топвуз дс или вуз в европе то тогда будешь работать на какой-нибудь интел, а если замкадскую парашу то ничего кроме зассатого гос-предприятия и не светит >с зассатого гос предприятия. да ты угадал я с зассатого госпредприятия и работаю за 40к, но это не моя вина что я родился в мухосрани и родители забили болт на мое образование, а английский мне зачем? все равно зп не поднимят за знание английского, а на качестве работы это не влияет переводить я и гугл транслейтом могу >И отдемпингуй этого мудазвона по самые уши :) да кого он будет демпинговать, такие тупые зумерки у нас даже собес не пройдут, потому что ничего не умеют а хотят по 25к получать, а западному барину они тем более не сдались пускай лучше сразу в макдак идет
Вопрос проходящего мимо: можно ли на дешевых девкитах, продающихся на Али в районе 10 баксов, типа Циклона 6, сделать свое личное АЦП+ЦАП в одном флаконе?
Хочу запилить компрессор звука, примитивный, но шобы в реалтайме, без использования буферов вообще. Или наоборот, шумодав, где важно компенсировать шум в текущий момент времени, а не когда там сработает прерывание о заполненном буфере.
>>443272 Я не вникал в ваши срачи, но читать твой пост крайне неприятно, так как ты показываешь не только отсутствие английского языка, но и русского.
>>443272 >а английский мне зачем? ... переводить я и гугл транслейтом могу Чтобы доки свободно читать и понимать без гуглтранслейта, так тупо быстрее. >все равно зп не поднимят за знание английского, а на качестве работы это не влияет Ну так подтяни скиллы и перейди на другую.
>>443280 >типа Циклона 6 Ты имел в виду или Циклон 4/5 или Спартан 6. >Хочу запилить компрессор звука, примитивный, но шобы в реалтайме Должно хватить.
>>443272 > а английский мне зачем? все равно зп не поднимят за знание английского Проиграл с уебка, с английским ты сможешь заключить контракт и работать по ВЭД с зарубежными дядьми сразу за деньги. >гугл транслейтом могу гугл транслейт слабо может в пассивный залог и деепричастный оборот, который в техдокументации используется очень мощно. Это надо осознавать и уметь читать бегло.
>>443272 Мда, зашел написать что погарячился, но передумал Родители виноваты в том что ты жрешь дерьмо, ну да... Можешь гнить в шараге сколько тебе хочеться, но не ставь себя пример молодым специалистам, пожалуйста.
П.С. Всегда с радостью помогу молодым специалистам. Делаю это тут часто.
>>443272 >если закончил топвуз дс или вуз в европе то тогда будешь работать на какой-нибудь интел, а если замкадскую парашу то ничего кроме зассатого гос-предприятия и не светит Братан, это не так. Закончил обычный вуз в Харькове, у нас преподы выполняли подряды интела на верификацию, а выпускники вполне себе работают во всяких интелах и амуде. Плюс справедливости ради, в вузе ты помимо схемотехники должен был изучать архитектуру эвм и программирование. Так что нет никаких причин гнить за 20к в нии, можно просто пойти работать джавомакакой и получать 100к на старте (в дс). А через пять лет выйти на 300к. Тебе шашечки или покушать?
>>442204 Почему именно в моделсиме? Разве это не к VHDL/Verilog самим по себе на уровне стандартов относится? И по моему воспринимать часто это проще воспринимать как очередность событий, а не какие-то задержки.
>>443356 Спорить с тобой не могу ибо сам в тем плаваю, но насколько понимаю термин "дельтацикл" относится именно к моделированию. Там какая-то тема про то, что моделирование параллельных процессов на ПК невозможно в силу последовательной работы процессора, а потому используется последовательный просчёт состояний элементов за нулевое время в симуляции и разбивается оно на вот эти дельтациклы. Вот хотелось бы поподробнее, желательно с примерами.
>>443364 Конечно само понятие "дельтацикла" это из симуляторов. Однако симуляторы не должны делать в этом плане ничего выходящего за рамки стандартов VHDL или Verilog. Поэтому наличие или отсутствие дельта-циклов это внутреннее дело моделсима.
>>443368 >внутреннее дело моделсима Но представление об этом деле лучше иметь всё же. Так результаты работы симулятора становятся более понятны и предсказуемы.
>>443280 >Я не вникал в ваши срачи, но читать твой пост крайне неприятно, так как ты показываешь не только отсутствие английского языка, но и русского. а на каком языке я по твойму пишу на немецком или на французском ? ебать даун
>>443336 >молодой специалист >зумер студентик без опыта работы и портфолио который ходит за советами на двач пффф))))) помогай студентишкам сколько влезет, раз делать нечего
>>443370 >результаты работы симулятора Определяются стандартами языков, а вовсе не дельта-циклами. А если у тебя undefined behavior, то бессмысленно в этом контексте рассуждать о дельта-циклах.
>>443302 >Проиграл с уебка, с английским ты сможешь заключить контракт и работать по ВЭД с зарубежными дядьми сразу за деньги. >>443287 >все равно зп не поднимят за знание английского, а на качестве работы это не влияет >Ну так подтяни скиллы и перейди на другую. Хотите сказать, что 3-й пик из шапки этого треда - это фотошоп?
>>443637 Может раскроешь свою мысль? Про делта-циклы расскажешь что-нибудь? И зачем нужно о них думать, когда в стандартах верилога о них не упоминается. А так ты просто мерзко выебнулся и все. Очень некрасиво.
>>443637 >>>443401 >Аааааа, говорящее говно из ниица дает мне советы. >>443667 >>>443659 >Я говорю, что нечего комплексовать FPGA разработчикам перед веб. Как эту мысль сообщить по другому я не знаю.
>>443467 >параллельные процессы >метастабильность Ну почему же, web-ingeners это такие же технари, как и любые другие. Имеют прямое отношение к вычислительной технике, знакомы со стеком TCP/IP, многие ардуинами и малинками балуются как хобби. Уверен, что за одну лекцию объяснить суть этих понятий веб-разработчику можно.
>>443667 > комплексовать FPGA разработчикам перед веб Есть смысл комплексовать только по уровню зарплат, ведь у веб-разработчиков (в пределах одной страны, разумеется) зарплаты намного больше. При том, что по трудозатратам разработка FPGA намного сложнее: надо сидеть с осциллографом, паяльником и генератором сигналов, и прогать железяку непосредственно на рабочем месте, когда веб-макака может сидеть на мальдивах с ноутом на пляже и работать удаленно.
>>443680 >это такие же технари, как и любые другие Ой ли? Среди этих пруд пруди кто не смог в высшее образование.
>за одну лекцию объяснить суть этих понятий веб-разработчику можно Только перед этим нужно лекций пять объяснять что такое логические элементы, триггеры, гонки сигналов, принципы синхронного проектирования и хотя бы основы работы транзисторов.
>>443685 >логические элементы, триггеры >основы работы транзисторов. Это же базовый computer science, который должен знать каждый уважающий себя прогер. В вузе(да что там в вузе, даже в техникуме) образовательные программы программистов начинаются именно с этого и потом уровень абстракции плавно увеличивают до языков высокого уровня.
>>443686 >Это же базовый computer science, который должен знать каждый уважающий себя прогер Лол, блядь, тут недавно (в этом разделе) сразу несколько обезьян доказывали, что им не нужно знать, как компы работают, они хотят быстро научиться, какие кнопки нажимать, чтоб было заебись
>>443467 > а уж про метастабильность Хосспаде, что о ней можно не понять по первой попавшейся статье в википедии и картинке с шариком на холме между двумя лунками? Концепция явно попроще какого-нибудь шаблона абстрактной фабрики, при всём уважении.
>>443686 >начинаются именно с этого Но на это все веб-макаки забивают болт.
>>443687 А ещё нужно освоить тулзы, в коих разобраться не так-то просто.
>>443698 Надо не просто понять шарик на холме, нужно понять как эту проблему решать. Все форумы завайпаны вопросом "а как перейти в другой клоковый домен?" хотя, по сути, задача стандартная при понимании принципов работы.
>>443709 >Все форумы завайпаны вопросом "а как перейти в другой клоковый домен?" хотя, по сути, задача стандартная при понимании принципов работы. Это просто студенты-ньюфаги, ну чё ты. И борются они не столько с метастабильностью, сколько со своим незнанием инструментов. Всё давно есть в готовом виде и помещено в шаблоны кода/IP, даже про шарик знать не требуется.
Здарова плисаны. Кто нибудь работал с Actel/Gowin? Как у них дела с качеством IDE и емкостью ПЛИС по сравнению с младшими линейками интола? Стоит ли перекатываться или ну его нахуй?
>>444016 С говин работал, собственно название отражает всю суть. Иде очень кривая, но зато не перегружена как вивада/квартус. Покупал несколько tang nano со встроенным программатором, пердолинг тот ещё.
>>444009 >ПЛИСо-господа это элита технарей-инженеров. да нихуя не элита. Обычные технари, сложность во всех инженерных направлениях плюс-минус одинаковая. Серьезный civil engineer напрягает мозг ничуть не меньше, чем серьезный hw-engineer или фулстак гребец.
>>444102 Не знаю как у вас, но у нас плисоведу приходится шарить хотя бы немного во всем, абстрагироваться не получится. Ну либо я просто не похуист и стараюсь смотреть наперед и не ломать систему.
>>444102 Дело не в том что кто-то напрягает мозг больше или меньше, экономисты с юристами тоже свои мозги напрягают. Дело в том что порог вхождения в ПЛИС более высок, это на питоне каждая макака может начать кодить после трёх дней изучения, здесь не так.
>>444183 >это на питоне каждая макака может начать кодить после трёх дней изучения Сомневаюсь, что за три дня можно осилить что-то вроде Django в должной мере. И это только веб-макакинг, при том что питон используется не только в этой области.
>>444201 Самая сложная работа у плисовиков, разрабов микросхем и тех, кто занимается машин лернинг и нейросетками. Вот там рили рокет сайнс. Все остальные инжеренрые специальности это детский сад по сравнению с этим.
>>444289 охуительные истории. Передам знакомому материаловеду, что его специальность - детский сад по сравнению с богоподобными плисовикАми. Нам(программистам) эти плисовики кофе носили, когда я работал над программным продуктом для верификации. И че теперь, плисовики хуже программистов? Лол нет, просто конкретно те спецы - маньки, способные только на написание тестовых кейсов на vhdl/verilog. Или перформанс инженер из оракла, который над jvm пыхтит, он - лалка по сравнению с средним плисовиком?
Сравниваешь красное со вкусным, короче. Объем знаний и сложность во всех специальностях (не только технических) примерно одинаковая. Факт того, что большинство учебных программ бакалавра/магистра/phd длятся одно и то же время, как бэ намекает.
>>444294 Блядь, с кем я сижу в одном треде? Надо разделять инструмент и задачу которую решают этим инструментом. Задачи, в любой области, могут быть сколь угодно сложными. Речь идёт конкретно за инструмент - овладеть ПЛИСами сложнее чем всем остальным, за малым исключением.
>>444300 >Речь идёт конкретно за инструмент - овладеть ПЛИСами сложнее чем всем остальным, за малым исключением. Нихуя, абсолютно рядовая специальность. Хватит уже насасывать себе ЧСВ, просто открой учебный план по этой специальности и убедись, что из ~40 курсов по специальности к непосредственно проектированию плис относится до 5. Все остальное - математика, алгоритмы и низко/высокоуровневое программирование.
>>444305 >к непосредственно проектированию плис относится до 5 В этом и проблема, шараги и 1/10 не дают того что нужно для того чтобы хотя бы начать работать плисоводом.
>>444328 >В этом и проблема, шараги и 1/10 не дают того что нужно для того чтобы хотя бы начать работать плисоводом. ага, тайное знание ситхов, передается из рук в руки. Давай так, ты открываешь учебную программу микроэлектронщиков любого топового вуза РФ или мира и говоришь, чего там мало, чего надо добавить и сколько. А то истории одна охуительнее другой.
>>444334 Если ты учился по этой специальности как я, то ты можешь по памяти рассказать, какие курсы для плис там преподают. А если не учился, то ты любитель и тебе бы вообще поднимать эти темы. Вот, например, учебный план на физкеке. Ну и чего тут не хватает?
>>444336 короче хуй знает, как там в физкеке учат микроэлектронщиков, я не нашел хоть сколько-либо приближенной к микроэлектронике программы. Вот тебе программа из светоча науки - MIT. Как видишь, те самые 5 курсов по electrical engineering.
>>444335 >Если ты учился по этой специальности как я, то ты можешь по памяти рассказать, какие курсы для плис там преподают. А если не учился Я учился в мухосране миллионике по специальности "вычислительные машины, системы, комплексы и сети". Из всех предметов, что хоть как-то можно связать с ПЛИС были теория автоматов (там где графы с кружочками и стрелочками), цифровая схемотехника (там где триггеры, регистры, счётчики, лог. элементы с прочими мультиплексорами) и архитектура процессоров (на примере 8088, кек). Лабораторных работ с использованием ПЛИС не было от слова совсем, это не говоря про изучение Квартуса/Айса, Авалона/Акси, Ниоса/Микроблейза, Сигналтапа/Чипскопа и даже, о ужас, Верилога/ВХДЛя? всё это я осваивал непосредственно работая на месте. Но я шарагу и не виню, не её это задача учить всему этому, у шараги задача дать теоретическую подготовку. Так вот моя мысль состоит в том, чтобы освоить всё это, а документация на всё это на буржуйском языке, что добавляет сложности, нужен интеллект и упорство выше среднего по больнице.
>>444343 Я хуй знает что ты принёс и откуда, но не одной аббревиатуры FPGA тут не видно.
>>444348 Лол. Тоже учился на 230101 (Вычислительные машины, комплексы, системы и сети). Довольно точно описал. Верилог не тыкали. Только на цифровых автоматах в древнющем xilinx ise делали лабы - рисовали схемы и защищали их работу в симуляторе. В железе не делали. Изучали на модели 580ВМ80А. Знающие могут сдеанонить институт по имени преподов по схемоте - Антик и Жемчужникова.
>>444300 Тут все зависит от уровня - писать простенькие блоки на verilog и моделировать их может любой студент после 3-5 курсов, въехать в цифру и программирование по сравнению с аналоговыми и смешанными системами вообще довольно просто. За рубежом где-то писали, что на обучение цифрового дизайнера asic нужно 2-3 года, аналогового - 5-7 лет, по опыту плюс-минус так и есть. Я бы отнес к исключениям как минимум разработку аналоговых схем/блоков ИС, мощную силовую электронику, радиосвязь и СВЧ, туда въехать сложнее.
>>443300 >Можно запросто. Если нужен АЦП/ЦАП можно сразу кодек CS заюзать. Мне нужен в РЕАЛТАЙМЕ, а не когда оно там что-то домеряет, заполнит буфер и отдаст мне.
>>444294 >Или перформанс инженер из оракла, который над jvm пыхтит, он - лалка по сравнению с средним плисовиком? Заебись, аргументируя за сложность программинга, скинул мне jvm, которая пишется под камни, разработанные плисовиками/asic разрабами. Разъебал сам себя. Молодец!
Тот же ПЛИСовик эти процессоры, под которые прогер пишет среду jvm, РАЗРАБОТАЛ, понимаешь? А прогер его всего лишь ИСПОЛЬЗУЕТ. Осознаешь разность масштабов?
>>444640 >ключ может стоить, как квартира в замкадье Объзмеился с тебя. А ты представь что будет когда asic-инженер объебётся и ошибку не заметит, а чипов уже наклепают партию размером во многие тысячи единиц, затратив миллионы баксов. Что там квартира, до конца жизни ты, твои дети и внуки в анальном рабстве будут.
>>444705 >Тот же ПЛИСовик эти процессоры, под которые прогер пишет среду jvm, РАЗРАБОТАЛ, понимаешь? А прогер его всего лишь ИСПОЛЬЗУЕТ. Осознаешь разность масштабов? Оба они по этой логике сосут у мужика с лопатой, который копает песок, из которого потому будут вытягивать монокристалл кремния. Ведь они всего лишь чё-то там делают с кремнием из песка, который этот мужик ВЫКОПАЛ!
>>444720 Ты тупой или тралишь? Ты написал 2кк вместо 2000000. Если применяешь подобные сокращения, то применяй так чтобы окружающие кринж не ловили, в /ra/ всё таки сидишь.
>>444700 Плисовики всего-лишь компонуют между собой транзисторы, как обычные водопроводчики, которые потом вытравляются на кристаллическом кремнии. И по сравнению с технологом, который изготавливает пластины с помощью аж 3 химических реакций, плисовики - так, васяны-птушники. А технолог в свою очередь пресмыкается перед богоподобным водителем экскаватора, который песок для пластин подвозит. Мастер аналогий, это ты?
>>444709 >когда asic-инженер объебётся и ошибку не заметит, а чипов уже наклепают партию Маня не слышала про тестирование на проверку безотказной работы? Любое устройство перед выпуском проходит тестирование в десятки тысяч часов во всех режимах работы, и там уж ошибка точно всплывет.
>>444698 Вот маленький IGBT-модуль, 1,5 килограмм веса, за 100к рублей. https://www.chipdip.ru/product0/9000670385 В сложном электрооборудовании их может быть с десяток, а на электростанциях и подстанциях наверняка силовые ключи намного мощнее и дороже.
>>444813 >за 100к Во первых - это ЧиД с ебанутыми ценами. У нормальных продаванов по 900 евро от 12 штук. Во вторых - 100к очень далеко от двух миллионов. То что их там десятки, нихуя не значит. Показывай конденсаторы и ключи ценой с квартиру в замкадье или пиздобол!
>>444796 Ты даже не знаешь чем плисовики занимаются. "Компонуют между собой транзисторы" у него, у школотрона сраного, вообще пиздец. Это тебе твоя училка - тётя Срака по информатике в твоей недошколке рассказала?
>>444807 >Маня не слышала Маня, иди почитай про то как даже сама Интел обёбывалась и была вынуждена отзывать назад свои процессоры, с возвратом денег естественно.
>>444810 Сранный гуманитарий решил блеснуть скудным умишкой и поверхностными знаниями перед технарями, но был обоссан. Ожидаемо.
>>444815 Я не он, но тут тебе никто и ничем не обязан.
Возможно такие ключи есть, скажем, в поездах на магнитной подушке или много-осевых погружных платформах. Но никто не побежит курочить поезд или платформу и убивать людей, только ради того, чтобы предоставить тебе пруфы. Смекаешь?
>>444720 2Е6 >>444813 Дело не столько в стоимости ключей, сколько в стоимости ремонта кучи промышленных потребителей и тушения потенциального пожара. В случае с транспортом/инфраструктурой вообще можно устроить гуро с несколькими сотнями человек. >>444807 У кучи широко распространенных чипов есть большие эрраты, нередко баги находят уже конечные пользователи при отладке. Time to market - наше все.
>>444820 >Ты даже не знаешь чем плисовики занимаются. "Компонуют между собой транзисторы" у него, у школотрона сраного, вообще пиздец. Это тебе твоя училка - тётя Срака по информатике в твоей недошколке рассказала? диагноз по юзерпику от мастера аналогий. Программисты "всего-то" пишут код, используя средства процессора, ну так и плисовик всего-то соединяет логические элементы между собой. Ну потом еще кнопочку нажимает и ему фоточку в транзисторном исполнении умная программка хуячит. Все по твоей логике, максималист мамкин
>>444845 Скачай лучше квартус, лабы для студентов по Verilog/VHDL и посмотри, как там все работает. Или на ютуб зайди. Конечно, там можно напрямую соединять примитивы логики и триггеров, но это неэффективно.
>>444926 Нахуя ты мне это пишешь? То был ответ местному интеллектуалу, у которого программисты jvm всего-то используют инструкции, которые СПРОЕКТИРОВАЛИ! плисовики.
О, это тут высокочастотники сидят? Подключать 2 керамических конденсатора последовательно можно если они по напряжению рабочему маловаты? Никаких приколов от такого лайфхака на высоких частотах работы не будет?
>>445057 Да нахуй мне ровно половина? Частично сбить напряжения, чтобы перегруза явного не было Я же не 6 вольт кондёры в выдающую 12 вольт схему собрался ставить.
>>444968 Лучше один на нужное напряжение. На ВЧ есть резонанс емкости с паразитной индуктивностью, на частотах выше него импеданс кондера начинает расти, как у индуктивности. У последовательно соединенных ESR и ESL будут в 2 раза больше, соответственно пульсации увеличатся, а максимальная рабочая частота уменьшится. Глянь kemet ksim, чтобы примерно прикинуть для конкретных конденсаторов. >>445461 Зависит от задачи. Плис лучше подходит для параллельных вычислений, DSP для последовательных.
>>397766 (OP) Как называется специальность, после которой можно работать ПЛИСовиком, ASIC разрабом? "Вычислительные машины, комплексы, системы и сети", я правильно понял?
>>445680 "Конструирование и технология электронных средств", но на самом деле похуй, по специальности тебя будут учить КР580, а математика база, которой ты потом будешь пользоваться осваивая актуальные знания по профессии у всех технарей одинаковая.
>>445691 Хорошо, а теперь расскажи, как студенты справятся с заданием написать программу допустим выдачи пилы на ЦАП, потом вручную перевести в машинный код и руками ввести эти коды на стенде? Это при том что до этого они не трогали руками ассемблер.
>>445694 Ты пишешь какую-то ерунду. Если цель лабораторной работы это показать на примере какого-то процессора что там внутри машинные команды, то зачем изощряться? Этот 8080 можно осилить за один вечер при подготовке к лабораторной работе, а потом забыть. Порассуждай еще тут об актуальности. Студентам еще кучу предметов учить, что им там MIPS или 8080, сколько из тех кто пойдет работать по специальности будет потом касаться MIPS?
>>445680 >"Вычислительные машины, комплексы, системы и сети" Про принципы синхронного проектирования схем нам именно на этой специальности преподавали. На сколько знаю, на других специальностях такого не рассказывают.
>>445712 Если ты о всяких триггерах, регистрах и счтечиках, т.е. основах на которых все строится, то на радиотехническом факультете на всех специальностях это изучали. Был еще курс о том как строятся всякие ЦОС штуки, такие как БПФ и быстрые свертки, но не на всех специальностях и препод был не то что совсем маразматик, но...
>>445714 >триггерах, регистрах и счтечиках, т.е. основах на которых все строится Да, но не только о них самих, а ещё про то что нельзя комб схемы ставить на тактовых входах, нельзя обратные связи в кобмб. схемах делать и всё такое прочее. А ещё про автоматы хорошо рассказывали, те что Мили, Мура, как из графа автомата схему получить и тд.
>>445719 >а ещё про то что нельзя комб схемы ставить на тактовых входах, нельзя обратные связи в кобмб. схемах делать и всё такое прочее. Нам не то что рассказывали, а заставляли прямо на лабораторных работах перед допуском к практической части для начала схемы синтезировать, а потом задержки руками считать и в комбинационных устройствах и в последовательностных. А если ошибся, то свободен и ждем на пересдаче. >и всё такое прочее. Про асинхронные счетчики например? Было дело, тоже считали для них задержки. >как из графа автомата схему получить и тд. Принцип тот же что и при синтезе любого последовательностного устройства, нашел чем удивить.
Но это все ерунда, ничего сложного по сравнению с другими курсами.
>>445690 Если будущих ASIC разрабов и разрабов процессоров - то PDP-11, у него самая простая и лучшая архитектура и набор компанд. Если специалистов, которые будут разрабатывать устройства на основе МК - то 8051, потому что научившись в этот мк потом без проблем можешь выучить любой другой мк.
>>445722 >асинхронные счетчики Препод, помню, нас за такое чуть ли не матом крыл.
>Принцип тот же что и при синтезе любого последовательностного устройства Ну я бы не сказал что прям тот же, автоматы строятся не совсем так как регулярные регистровые устройства.
>ничего сложного по сравнению с другими курсами Я не про сложность, а про сам факт наличия. Со мной на работке один поцик работает, он заканчивал ту же шарагу что и я, только радистом, так вот он про такие вещи даже не слышал. Допускаю, что может у них и была пара лекций на эту тему, но он лютый раздолбай - мог и прошляпить. У нас же это были одни из основных предметов на 3-5 курсах.
>>445778 Либо препод дурак, либо ты ничего не понял. Такое нельзя делать в FPGA, это безусловно верно. Простейший ассинхронный счетчик это два Т-триггера друг за другом для деления частоты. Или ты скажешь что тактовую частоту еще делить нельзя триггерами?
>>445783 Если поделишь частоту одним Т-триггером и подашь эту частоту на счетный вход любого счетчика, то что получится в результате, если не асинхронный счетчик? Если речь про FPGA, то это уже совсем другое дело, там своя сеть для тактового сигнала и все такое.
>>445788 >Если поделишь частоту одним Т-триггером и подашь эту частоту на счетный вход любого счетчика, то что получится в результате, если не асинхронный счетчик? Получится счётчик считающий импульсы на своём входе.
Если ты имеешь в виду, что использовать асинхронный счётчик, как на пике, для деления тактовой частоты и не для чего больше? - то конечно можно, но так мы получи деление только 2^n. А если использовать нормальный синхронный счётчик, то можно получить деление на любое целое число, да ещё и скважность менять.
>>445820 Ты спрашивал: >асинхронные счётчики можно делать, или всё таки нельзя? Ответ - можно. У тебя асинхронный счетчик получится сам собой, если в генераторе тактовой частоты по выходу стоит делитель частоты. >Если ты имеешь в виду, что использовать асинхронный счётчик, как на пике, для деления тактовой частоты и не для чего больше? Я имел в виду, что если использовать любой счетчик для деления тактовой частоты, и использовать получившийся сигнал для тактирования любого последовательностного устройства (например синхронного счетчика) то у тебя автоматически получится асинхронное устройство. А во многих генераторах тактовых частот по выходу стоит делитель. Я не предлагаю использовать асинхронные счетчики, я всего лишь пишу что вот оно, существует и проявляется в окружающей нас технике как минимум таким образом. Поэтому либо препод у тебя дурак, либо ты ничего не понял.
>то конечно можно, но так мы получи деление только 2^n. В этом ты не прав. Такая схема лишь частный случай. Раньше асинхронные счетчики использовали для уменьшения количества элементов, когда делали все на рассыпухе, конечно сейчас это по большей части история, но работало же. >да ещё и скважность менять. Генератор тактовой частоты, который выдает что-то сильно отличное от меандра - это будет чем-то слишком специфическим.
>>445680 У меня это была соседняя "Информатика и вычислительная техника", кафедра вычислительной техники, перешел туда с вычислительных машин после 2 курса. Поспрашивай лучше у студентов или посмотри на сайте ВУЗа/позвони туда. Специалистов по интегральным схемам готовят МИЭТ в ДС и Политех в ДС2.
>>445841 >Ты спрашивал: >>асинхронные счётчики можно делать, или всё таки нельзя? Это был вопрос на уточнение. Было похоже что ты сам запутался.
>У тебя асинхронный счетчик получится сам собой, если в генераторе тактовой частоты по выходу стоит делитель частоты. Я про то что делитель частоты можно построить на счётчиках двух типов, асинхронном как на пике >>445820 и синхронном как на этом пике. А первого, перед вторым преимуществ нет, а значит не нужен.
>то у тебя автоматически получится асинхронное устройство Это не так. Синхронное устройство предполагает, что все его элементы тактируются одной частотой, т.е. все они (элементы) работают синхронно. А откуда эта частота поступает неважно, главное чтобы удовлетворяла требованиям. Генератор частоты не является частью устройства которое он тактирует.
>>то конечно можно, но так мы получи деление только 2^n. >В этом ты не прав. Прошу привести схему асинхронного счётчика которая может поделить частоту, скажем, на 5.
>Раньше асинхронные счетчики использовали для уменьшения количества элементов, когда делали все на рассыпухе Ты бы ещё времена реле и ламп вспомнил.
Как не крути, а выходит что у асинхронного счётчика перед синхронным нет никакого преимущества, так что...
>Поэтому либо препод у тебя дурак, либо ты ничего не понял. ...Препод - толковый мужик. Похоже что ты втираешь какую-то дичь.
>>445995 >А первого, перед вторым преимуществ нет Перед тем как что-то утверждать, сравни задержки в этих схемах. Какая схема сможет работать на большей частоте? >Прошу привести схему асинхронного счётчика которая может поделить частоту, скажем, на 5. Для примера рассмотри схему https://www.ti.com/lit/ds/symlink/sn54ls193-sp.pdf А именно на 5 конечно не будет.
Остальной твой тупняк даже комментировать не буду.
>>446035 >Какая схема сможет работать на большей частоте? Ну ок, нашёл одно преимущество. Но и у синхронного счётчика, знаешь ли, цепь переноса можно сделать не последовательной, а параллельной.
>Для примера рассмотри схему Тут вообще двоично-десятичный счёт. И посмотри сколько там элементов на пути прохождения сигнала - 3. Так что этот быстрее работать не будет. Что касается конкретно твоего примера, я вообще не понимаю зачем его делать асинхронным. Синхронный бы работал не хуже. Частота, скажешь? Так там всего 32 МГц, для современной элементной базы это тьфу. Видимо по старым шаблонам с 80-х годов как штамповали так и штампуют.
>Остальной твой тупняк даже комментировать не буду. Давай сделаем вид, что ты не обосрался, а у тебя просто шоколадка растаяла.
>>447493 >Поясните по хардкору, какая область применения у ПЛИС? ЦОС Прототипирование асиков Обработка больших потоков информации, коммутоторы Ethernet Любое другое применение, где у стандартных решения не подходят: например не хватает производительности или слишком высокое энергопотребление, мало линий ввода-вывода
>>397766 (OP) Что делать, если хочешь использовать в своих коммерческих проектах софт-процессоры, но при этом не готов раскошелится на дорогостоящие IP-блоки?
>>447692 Ну, что бы сделал, например, я, если бы хотел продавать чьи-то коммерческие разработки для своей прибыли, но не хотел платить закупочную цену? Пошёл бы и украл, это же очевидно.
>>447692 >софт-процессоры Разве за microblaze (к примеру) берут дополнительные деньги? Оно в бесплатном вивадо вебпак доступно. У Intel в целом вроде бы аналогично, а у Lattice кажется все опенсурсное.
>>447846 О какой периферии? Всякие контроллеры прерываний и ПДП, которые идут отдельными блочками, можно считать частью процессора, только опциональной, денег за них не требуют. Подключение внешней памяти (всякие (LP)DDR3/4 и прочее) - тоже есть. Мелочь вроде FIFO, портов, SPI, I2C и прочего - тоже дают в вебпаке. А что еще остается из того, что можно отнести непосредственно к софт-процессору?
>>447958 Экземпляры, которые не способны выражать свои мысли строго и без формальных ошибок, испытывают большие трудности при взаимодействии с другими участниками производства и при оформлении документации.
Хотя, если вспомнить, как на пост-совке относятся к оформлению документации, то, возможно, тебя и взяли в какую-то парашу.
>>447963 Ты сейчас ответил двум разным анонам. И разумеется я не предполагал что это ты написал >>447692 вопрос про софт-процессоры. Но появляешься ты в этом треде судя по всему достаточно регулярно. И если все так, то почему не ответил тому анону?
>>447964 >Но появляешься ты в этом треде судя по всему достаточно регулярно. И если все так, то почему не ответил тому анону Потому что я не такой частый гость здесь. Но вангования выглядят забавно.
Анон, скажи, как подключить к МК типа стмки ЦАП, который сможет чето типа 10 МГц хуярить? Верно я понимаю, что частота сигнала (пусть будет разрядность 14 бит) будет зависеть от возможностей spi stm? Какие существуют типовые способы подключения? Использовать ПЛИС?
>>448017 Зачем это может понадобиться на относительно дохлых софт-процессорах? Если вдруг потребовалось такое, то скорее будет уместен SoC типа цинка.
>HDMI, DVI, DisplayPort Но у Xilinx есть AXI VDMA, а дальше уже не проблема. >MIPI А это чем не устраивает https://www.xilinx.com/products/intellectual-property/ef-di-mipi-csi-rx.html ? >USB С этим действительно есть определенные сложности. Но в самом простеньком цинке оно уже есть. >SATA Этого действительно нет.
>>448123 >а дальше уже не проблема Хуй знает. Мне на список параметров и портов мультигигабитного трансивера даже смотреть страшно, не то что обёртку для него писать.
>>448131 >даже смотреть страшно Мне тоже. Однако скорее всего можно найти что-то готовое. Например Digilent дает для HDMI что-то (полу)готовое. Но я не пробовал, потому что не требовалось пока. К тому же можно взять внешний трансивер, тем более что все равно снаружи придется ставить буфер. Еще на работе в соседнем отделе один человек (который вряд ли такой крутой специалист, если за такую зарплату там работает) что-то такое сделал на трансиверах пятого циклона. Только идея пихать HDMI в дохлый софт-процессор мне кажется сомнительной. Конечно я могу ошибаться, но с высоты своего дивана я так вижу.
Работаю в квартусе пока на уровне хэлоуворлда. Собсно у меня есть пара ламерских вопросов: - В квартусе есть два режима: код на вхдл и принципиальная схема. Я, как настоящий олд, знающий, как собрать и проапгрейдить ЮТ-88, привык именно к схемам, плюс вхдл декларативный язык, а я привык к императивным. Как преобразовать вхдл-код в схему и обратно? Я нашел как сделать из вхдл кода компонент (symbol), но что у него внутри - не видно. - В теории из компонентов я могу собирать на более высоком уровне схемы, но т.к. компонент - это отдельный файл, как его редактировать? - Задумал сделать махарайку с миди-входом, сама разводка с оптопарой у меня осталась от аналогичных опытов с пердулиной. С FPGA непонятно, куда заводить сигнал и как его принимать в коде. На фото там есть ряд RX и RT в две линейки по бокам и куча всего. Частоту, на которой работает миди, я могу организовать на счетчиках, но как засинкать частоты разных девайсов?
>>448616 >Частоту, на которой работает миди, я могу организовать на счетчиках Только использовать ее в качестве тактовой частоты не стоит. FPGA - это даже близко не набор рассыпухи, которую можно соединять как угодно. Как минимум по этому вопросу тебе нужно знать что для тактовых сигналов в FPGA есть отдельные линии, которые имеют свои ограничения. Изучи хотя бы в первом приближении внутренности FPGA. >но как засинкать частоты разных девайсов? Скорее всего это не требуется, пусть все работает на большей частоте, а твои низкочастотные сигналы, которые ты собираешься использовать в качестве тактовых, лучше использовать в качестве стробирующих.
>плюс вхдл декларативный язык, а я привык к императивным. Это не совсем так, даже скорее всего совсем не так. >Как преобразовать вхдл-код в схему и обратно? Не стоит заниматься глупостями. >С FPGA непонятно, куда заводить сигнал и как его принимать в коде. Открой схему, даташиты почитай. Помигай для начала светодиодами на плате.
>>448630 Спасибо, посмотрю. Редактировать там нельзя?
>>448636 >Только использовать ее в качестве тактовой частоты не стоит. Это не совсем тактовая, но да, мне нужно просто с определенной частотой мониторить RX на появление стартового бита, отличая его от шума.
>для тактовых сигналов в FPGA есть отдельные линии В плате уже есть генераторы тактовой частоты и можно пользоваться любым из доступных, в зависимости от нужд и схемы.
>пусть все работает на большей частоте Там же типа UART, и мне надо таки понимать, когда приходит стартовый и конечный биты, для этого у меня должна быть частота больше или равная частоте сигнала, это понятно. Но тут мне надо точно понимать, что у меня между старт и стоп битом ровно восемь с данными.
>Не стоит заниматься глупостями. Почему? Принципиалки я хоть сейчас рисуй, а тут язык еще, спеку учить.
>Открой схему, даташиты почитай. Помигай для начала светодиодами на плате. Да эт все пройденный этап. К махарайке не то чтобы подробные даташиты и схемы идут. Но вроде разобрался, можно пхать куда хочешь в те две шины.
>>448616 >вхдл ВХДЛ - днище, учи Верилог. >привык именно к схемам На схемном вводе далеко не уедешь, один сраный автомат заколупаешься делать. Поэтому ещё раз, учи Верилог. >Как преобразовать вхдл-код в схему и обратно? https://youtu.be/Jt87cbQThSc?t=10560 с таймкодом
>>448671 >Там же типа UART, и мне надо таки понимать, когда приходит стартовый и конечный биты, для этого у меня должна быть частота больше или равная частоте сигнала, это понятно. Но тут мне надо точно понимать, что у меня между старт и стоп битом ровно восемь с данными. UART на схемном вводе - специально для тебя. Начиная с 29 лекции и далее: https://www.youtube.com/playlist?list=PL4UMfOeGYsvZs-gvs0dC8oO3HXrmGC1bm
>>448679 >На схемном вводе далеко не уедешь Как по мне на схематике гораздо удобнее ваять проекты, естественно не на базовых логических элементах, а превращая свой код в символы. Сразу отпадает необходимость вести схему связей в каком-нибудь визио/компасе. И разбираться в чужом проекте так гораздо легче.
>>448698 Тут поддержу. Верхний уровень делать из блоков, соединённых по интерфейсам — очень удобно, пиздец как удобно (вроде block design в vivado). Описание типа structure в HDL — это просто какая-то моча говна из бесконечных объявлений wire, накопипащенных по названиям портов соединяемых модулей, читать которые невозможно. А вот где надо описать работу на уровне регистров и гейтов через behavioral — там только HDL без вариантов.
>>448698 >>448710 Отчасти соглашусь, но бывает тоже муторно каждый раз пересоздавать символ для модуля если в нём изменились порты. Да и в сложном топлевеле обилие соединений также не способствует лёгкому восприятию схемы. >Сразу отпадает необходимость вести схему связей в каком-нибудь визио/компасе. И разбираться в чужом проекте так гораздо легче. Ну здесь частично спасает РТЛвьювер. Последние версии Квартуса научились снсоно его рисовать.
>>448722 >Странно, что они мне не попадались раньше. Хз, первые выскакивают по запросу "verilog" и "quartus". >в чем же неоспоримые преимущества того или иного? За Верилог скажу, что если знаешь С/С++ то перейти на Верилог будет проще, ибо синтаксис очень похож, точнее там гибрид С и Паскаля. Как по мне зря, лучше бы полностью с Сишника передрали. По этой причине в последствии SystemVerilog будет проще освоить, а тенденция идёт к тому что именно он и победит. А о каких абстракциях говорит этот >>448703 месье, называющий приверженцев противоположного мнения долбоёбами, мне не ведомо.
>>448802 >Ну здесь частично спасает РТЛвьювер. Последние версии Квартуса научились снсоно его рисовать. Он даже не предназначен для этого. Это инструмент, чтобы искать, какого хера сигнал соптимизировался в константу вместо того, что ты от него ожидал. Изучать функциональную структуру проекта по выходящим с разных сторон блока простыням цепей, в которые синтезировались интерфейсы — это несерьёзно.
>>448807 >Он даже не предназначен для этого. Я этого и не утверждал. >выходящим с разных сторон блока простыням цепей С лева входы, с права выходы, всё как обычно. >простыням цепей В РТЛвьювере есть группировка по шинам, если ты не знал, так что цепей там будет не больше чем в схемном файле. Хотя в схемном файле необязательно провод тянуть через всю схему, есть соединение по имени. Но если таких соединений много, то чем это лучше >какой-то мочи говна из бесконечных объявлений wire, накопипащенных по названиям портов соединяемых модулей ? Правда в схемном файле Квартуса цепи можно объединять в каналы и подключать действительно со всех сторон, но это несильно помогает. В общем моя мысль такая, что блок-схема топлевела - хорошо, но без неё вполне можно обойтись.
Кто-нибудь может внятно объяснить чем отличается reg от integer в тестбенчах, тобишь в несинтезируемых описаниях? И то и другое переменная. Да, reg имеет произвольную разрядность, integer - всегда 32. Но и всё что ли?
>>449424 Чтобы клок включился за полтакта до своего положительного фронта, иначе может возникнуть ситуация, что
1) сначала клок поднимется, потом он включится 2) от этого первый фронт включенного клока на выходе съедет немного назад 3) период между соседними фронтами клока уменьшится 4) тактируемая схема один период будет вынуждена сработать на более высокой частоте, чем та, на которую она была рассчитана, логические состояния где-то изменятся неправильно, данные распидорасит, придётся всё ресетить
Словил забавную проблему на cyclone 5e - грелась как печка и жрала 6 Вт, сначала думал, что неисправна. Потом проверил msel - там была половина питания (хотел протестить разные режимы, поставил резисторы в обе стороны, забыл убрать ненужные), исправил, все заработало.
>>397766 (OP) Сап, плисоводы. Посоветуйте плз откуда вкатываться в microblaze? Сам я вроде не совсем нуб, родом с алтеры, на алтере делал пару проектов. Одна из первых функций которую хочу реализовать - обновление прошивки во флешке. На алтере я делал это на верилоге конечными автоматами, но теперь на Xilinx повторять подобный подвиг уже не хочу, и нужен софт-проц.
Picoblaze вроде освоил, программное шевеление ножками spi получил 2,5МГц при клоке проца 50МГц. Приделывать аппаратную периферию к слабому picoblaze смысла не вижу, отсюда вот и вопрос.
В пикоблейз я пыттался начать с книжки Зотова, но это пиздец полный. Во время чтения зотова я случайно наткнулся на гайд самого Кена Чапмана из комплекта KCPSM6, и это был как глоток свежего водуха после душного зотова. Нет ли каких-то нормальных гайдов по микроблейзу?
Пикрил - скриншот страницы той самой книги Зотова. Вместо того чтобы сказать "Выберите Device Size, Package и Грейд" - эта стена текста. Мои мозги плавятся от этой книги, спасите помогите
>>450210 >Чем мгтфные сопли усаживал? Не понимать вопрос. Обычная термоусадка же. Почему в термоусадке, а не в стандартных пластиковых гнездах?? Уже не вспомню почему так делал. Если вопрос чем грел - то феном, очевидно же. Это херню со светодиодами надо переделать.
>>450230 >Обычная термоусадка Я подумал там как у родешварцевских сопель для логического анализатора внутри сердцевина и они в бх вставляются/вынимаются.
>>450302 И въехал и нет... Чем оно отличается от обычных цанговых панелек для микросхем в DIP корпусах (исключая тот факт что даже кувалдой не вбить обычный вывод разъема в цангу для вывода микросхемы)? Они просто больше размером? Или я дебил или у меня цанги почти одноразовые были. Первый раз туго идет + почти не вытащить и после нескольких втыканий-вытыканий похожи на обычные панельки где контакты из загнутой жести или подобного.
Может подскажешь чем вменяемым можно цепляться на выводы SOIC-а и поменьше с шагом выводов 0.8, 0.65, 0.5мм?
>>450306 >Чем оно отличается от обычных цанговых панелек для микросхем в DIP корпусах Тут оно скорее как замена dupont (пик1). Т.е. рассчитано на кучу перетыканий, но гораздо прочнее.
>цепляться на выводы SOIC-а и поменьше с шагом выводов 0.8, 0.65, 0.5мм Ну в идеале прищепка, но можно использовать крючки, они охуенны, даже китайские (пик2-3), но лучше родиковские конечно.
>>397766 (OP) Сап, плисаны. Поясните, пожалуйста, за set_max_delay констрейн у хилых. Это влияет на place and route? На что это вообще влияет? Интересует в частности вот какой случай. На работе многие пихают его, когда тайминг на каком-то внутреннем участке между двумя флип-флопами с общим клоком не сходится. Хотя у хилых нигде нет такого варианта применения. Из сбивчивых объяснений одного индуса на работе я так и не понял, почему так можно делать и что это помогает достичь. Может кто-нибудь просветить, пожалуйста?
>>450979 >Хотя у хилых нигде нет такого варианта применения. Естественно, это тупо отключение проверки тайминга по стандартным правилам, замена требования по максимальной допустимой задержке сигнала на взятое от балды менее строгое.
Это может работать или не работать в зависимости от того, насколько сигнал критичен. Если это какая-нибудь кнопка. то похуй, но вообще-то для таких случаев используется set_false_path. Если это разряд на шине, то можно знатно наебать самого себя при отладке.
>>451000 Спасибо, сам тоже почекал кучу всего сегодня на эту тему. У нас оказывается это практически common practice, а потом удивляются, почему в лабе нихуя не работает при билде с как бы хорошими таймингами. Пиздец, никому нельзя доверять, особенно индусам. Теперь все только самостоятельно проверять.
Аноны, у меня начался курс плис по учёбе. Делаем лабы в Xilinx Foundation, который запускается только на виртуалке винды 2002, что скажете об этом софте?
>>451006 Анончик, вы там сейчас буквально идёте по пути легендарного Боинга и его популярного 737МАХ. Не знаю, кто это такое придумал наверняка, как обычно, эффективный менеджмент, проигнорировав мнение R&D, но хорошего из этого ничего не получится. Вангую, индусы там не просто закидывают листьями и ветошью небольшие violations в пределах наносекунды, а у них там за такт ебашутся на LUTах сразу все вычисления без малейших попыток в конвейер.
>>451060 Эта среда старше студентов, которым предстоит её изучать. На аналогичного возраста операционке.
Не то что бы с её помощью нельзя было научиться основам цифрового дизайна, но ты же сам спросил за среду. Если доведётся поработать в актуальных Vitis/Vivado — будешь смотреть на них как на новые ворота кабину истребителя.
>>451058 Там правда за такт ебашится несколько сложений, умножений многоразрядных чисел, но это в асике, который мы верифицируем на плисине. Проблема в том, что никто не дает трогать асиковский rtl и индусы прикрывают фейлы по таймингам вот такими констрейнами, а потом челы в лабе смотрят на результаты и охуевают. Так и живем.
>>451070 >Там правда за такт ебашится несколько сложений, умножений многоразрядных чисел, но это в асике Даже асик не поможет от такого, лол. Если, конечно, не запускать его на 1MHz.
Теоретически есть возможность нормально делать вычисления, идущие дольше одного такта, без разложения на конвейер, для этого на регистры вместе с clk должны приходить сигналы clken. Если они идут, скажем, один раз в 10 тактов, то вычислительная логика после появления новых данных имеет возможность устаканиваться следующие 10 периодов clk, и в течение этого времени регистр на выходе не будет пытаться защёлкнуть результат. Такое делается при помощи set_multicycle_path.
Разумеется, количество операций в секунду падает до частоты clken, а честный конвейер может их молотить на скорости clk. Индусам про это не рассказывай — не сможешь потом отличить, где они мухлюют, а где реально делают multicycle_path.
А как на процессорах некоторые вычислительные инструкции исполняются за 1-2 такта? Я когда-то рисовал процессор условного микроконтроллера и у меня вышло так, что каждая инструкция исполняется 3 или 4 такта. В первый такт идёт запись в регистр инструкции с ОЗУ (к ОЗУ от процессора шина read/write + data на запись N бит + дата на чтение N бит + адрес) и тут же происходят вычисления в АЛУ, открывая нужные регистры исходя из инструкции и тут же записывая результат в промежуточные невидимые регистры. Во второй такт из этих регистров идёт запись в РОН. В третий такт там что-то с load register и store register инструкциями связано, уже не понимаю свои каракули, у меня тут тупо шины и провода между модулями проведены.
Я просто думаю, неужели в реальных процессорах какие-то фокусы с нижним и верхним фронтом, чтобы удвоить тактовость, ещё и разные длины дорожек сделать, чтобы из одного места один сигнал успел уйти, до того как придёт другой?
>>451099 Не путай пропускную способность и задержку. процессор может принять одну инструкцию за такт, но выполняет её за кол-во ступеней конвейера тактов.
>>451099 Анон выше написал в целом правильно. Однако можно взять двухпортовую память, тем более что блочная память в FPGA вся двухпортовая, за исключением каких-нибудь флексов, которые не стоит принимать во внимание. Если с двухпортовой памятью один порт выделить под считывание следующей инструкции, а другой под данные, то ситуация улучшается. Получается что-то вроде гарвардской архитектуры. Или можно взять раздельные памятюшки под код и данные. Если после этого ограничиться инструкциями попроще, т.е. чтобы каждая инструкция делала поменьше всего, то легко сделать по инструкции за такт почти что без конвейера. Вот пример такого процессора https://excamera.com/files/j1.pdf
Почему это не работает? Где я ошибся? Ньюфаг for (i = 0; i <= N; i = i + 1) begin case (i) 0:temp [7:0] <= number[7:0]; 1:temp [7:0] <= number[8:1]; ... endcase
>>451539 Как оно должно было работать по твоей задумке? Если рассматривать синтезируемое подмножество, то можешь считать что весь код в блоке always выполняется (почти) мгновенно. И это в симуляторе код выполняется, а синтезируется оно в константу. Еще присваивания у тебя неблокирующие, возможно что ты с этим тоже путаешься, но и с блокирующими ничего бы не изменилось. Если ты хочешь чтобы в temp по очереди с какой-то задержкой что-то откуда-то писалось, то сделай счетчик и так далее. always@(posedge clk) begin i <= (i + 1) % N; case (i) 0:temp [7:0] <= number[7:0]; 1:temp [7:0] <= number[8:1]; ... endcase end И оно будет у тебя переключать по фронту clk.
>>450243 Спасибо за дельый совет. Разглядел туториал по microblaze от avnet, там всё предельно понятно и работает. В том туториале показано что при создании проекта софтовой части микроблейза можно выбрать example test peritherial Но вот теперь я добавляю xps_spi, а где брать к нему драйвер? Хотя бы хедер с описанием регистров устройства, неужели надо самому рисовать по даташиту xps_spi? И ещё вопрос: шину какую надо брать, PLB или AXI? Какая шина занимает меньше ресурсов? Или на что приходится смотреть при выборе той или другой шины?
>>451987 Дрова есть в BSP, который генерируется SDK на основе hw description, экспортированного из Vivado. В BSP же есть example designs под microblaze (они генерируются в разделе для соответствующего IP-кора).
то после асинхронного сброса он обнулится. А нужно чтобы он был равен стартовому значению, т.е. пяти. Можно, конечно, в сбросе написать и
if(Reset) REG <= 4'd5;
но как эта пятёрка будет сформирована? Скорее всего она будет сформирована путём проставления инверсий на выходах триггеров регистра. А ведь это приведёт к искажению результата задвигаемого значения. Если бы это был первый Сыклон так там, по мимо асинхронного сброса, была ещё и асинхронная установка и такой проблемы бы не возникало. У триггеров нынешних плисин есть только асинхронный сброс и как быть в этом случае не совсем понятно.
>>452236 >судьба такая Вообще непонятно зачем убрали асинхронную установку в триггерах. Я, конечно, всё понимаю - минимизация, экономия, вот это всё, но всё же. > FDPE-регистры Это что за зверь.
Arms Sales:Termination of (a) sales to Russia under the Arms Export Control Act of any defense articles, or defense services, and (b) licenses or other approvals for the export to Russia of any item on the United States Munitions List, except in support of commercial space cooperation following a six-month transition period, and government space cooperation.
Exports of National Security-Sensitive Goods and Technology:Prohibition on the export to Russia of any goods or technology on that part of the control list established under Section 2404(c)(1) of the Appendix to Title 50.
>>453885 >Им и сейчас вроде как нельзя на военку торговать, но все равно пропихивают под видом гражданки. Что значит "под видом"? Сейчас им можно торговать с гражданкой и нельзя с рядом предприятий под санкциями типа Алмаз-Антея. А теперь в РФ в принципе нельзя будет оставлять продукцию, имеющую значение для обороны и национальной безопасности.
>>453890 >рядом предприятий под санкциями типа Алмаз-Антея И они все равно покупают виртексы и ултраскейл+, просто дороже. Вангую всегда найдут способ. А уж про софт на сайте зайлинкс каждый раз спрашивают сферу деятельности и страну без пруфов, соответственно ставить все кроме рашки.
>>453892 Даже в советское время умудрялись покупать то что нам не продавали, через вторые и третьи руки. А вообще у них капитализм, санкции санкциями, но денег то всем хочется, как говорится: ничего личного, только бизнес. Ну а сейчас, как бы там ни было, братушки-китаюшки не дадут пропасть.
>>453944 Я думаю, ты понимаешь, что мы в данный момент не в пораше, и речь не о том, найдётся ли взвод чепиг с канистрой новичка и чайником полония, которые проберутся к врагу и скачают там вивадо для нужд оборонки, тем самым показав, какие пиндосы тупые, только и могут, что программировать вивады у себя в силиконовой долине, а про смекалочку даже не слышали.
Речь о том, что для кучи контор риск сидеть без официальной вивады, корок и предсказуемости поставок плисин может оказаться неприемлемым, и анону-плисовику придётся идти торговать шаурмой.
>>453874 Поищи у китайцев и иранцев, я оттуда последние патчи к САПРам Cadence тягаю, если на наших и забугорных торрентах нет. Как правило, всегда находится кто-то, время от времени сливающий последние версии. >>453944 Пару лет назад ЧиД не смог поставить санкционку - просто обратились к другому поставщику, привезли без проблем. Имхо эффект от санкций преувеличен.
>>454010 Лол, ещё после первых санкций предлагали прожигаемую космическую пзушку за 1.5 лимона. чем закончилась история не знаю, я больше там не работаю
Плисаны выручайте. Нужно на одну шину 64 девайса. В сумме на все девайся приходится 448 управляющих регистра. Работает все это говно на 16 МГц. Каким образом мне организовать шину доступа к регистрам, так, чтобы всё развелось?
>>453993 >для кучи контор риск сидеть без официальной вивады А кому это создавало трудности. Мы в околооборонной конторе всю жизнь сидим на левых САПРах и никого это не напрягает.
>и предсказуемости поставок плисин Это тоже всегда было. Жили как-то раньше и дальше проживём.
>>454082 Хз че там у тебя, 1) заведи тупо 448 регистров и раздай по проекту, каждый должен писаться из одного места (или с арбитражем заебешься) 2) используй Avalon-mm или AXILite
>>451049 Узнаю наши ВУЗы. 5 лет назад делал часть лаб в квартусе 9.1, но он вполне нормальный. >>455697 Как они по сравнению с современным кряктусом? Не забагованы?
>>455698 >Как они по сравнению с современным кряктусом? >Не забагованы Даже после 9 кактуса вивада 2020.1 как говно багованное ощущается. Хз как люди на ней годами работают.
>>455698 делал лабы в квартуе в прошлом семестре. 4К не поддерживает совсем буквы не читаемые и при этом часть кнопок пропадает так что еще как забагованный
>>455713 >4К не поддерживает совсем буквы не читаемые Надо в свойствах запуска просто ставить масштабирование, как и в любой другой старой проге на вин10.
>>455732 Какая вкусняшка. Правда не мое. ПоФАПал. У меня правда немного бомбит что что у флексов, что у макс 7000 всего два оффициальных тактовых входа. На самом деле эта некрофилия полезна для тормозов - проект синтезируется намного быстрее чем под тот же циклон или стратикс и моментом заливается. Хороший такой плюс для неумеющих в моделсим. Уже стер полсвоей шишки на эту ФАП фантазию. Где бы выкопать? Что это за ёбань? Где бы схемку на нее глянуть? Как не ёбнуться когда сам начнешь писать под нее конфигурацию? флексоеб
>>455806 >Как не ёбнуться когда сам начнешь писать под нее конфигурацию? Начни с чего-то уровня пикрелейтед и подобных девайсов, где лепили кучу простых стареньких PLD вместо одного МК или ПЛИСины. Принцип тот же.
>>457080 в нормальной. в моём "высшем учебном заведении" на всю группу была одна отладочная платка на основе атмеги 8. Садился самый умный и проверял на ней свой говнокод, а остальные смотрели. Ещё ругали за постоянное перепрограммирование, ибо это уменьшает ресурс, лол. Про ПЛИС вообще никто не говорил ничего и лаб естественно небыло, ибо препода знающего ПЛИС и умеющего с ней работать просто нет. и это специальность, напрямую связанная со схемотехникой! Сейчас, на сколько я понял, там даже этого нет, а все дипломы уровня - измерить температуру в помещении и если она выше N градусов - включить вентилятор. Естественно на ардуино, лол.
>>457797 Это норма. У нас то же на курсе "Цифровая схемотехника" в разных инкарнациях ничего не было, только симулятор Xilinx ISE на лабах. Определенно интересный симулятор внутри был - можно было в "реальном" времени задавать сигналы и смотреть на них реакцию, а не так что подсовываешь готовый waveform и смотришь на результат симуляции. Генерировать руками клок это было больно.
>>457824 А у нас даже плисочных симуляторов не было. Цифровые схемы моделировали либо в мультисиме, который вечно тормозил и лагал, либо в каком-то самодельном убогом симуляторе, видимо это была чья-то курсовая или даже дипломная работа. Зато препод пояснял по хардкору за синхронное проектирование, кек.
>>457797 >в нормальной. А где это у нас такие нормальные? Платы эти не дешёвые, сомневаюсь что даже в МГУ такое практикуют - раздавать на дом каждому по отладке. Скорее всего это и было снято в непосредственно в шараге.
>>457797 Тут все зависит от преподов. У нас на одном предмете был десяток старых терасиков на циклонах 3, на группу как раз хватало. Другой препод развел, заказал и собрал пару десятков кастомных дешевых плат на вторых/третьих циклонах и наделал к ним периферийных плат с энкодерами/драйверами/АЦП/ЦАП/etc. В итоге за сравнительно небольшие деньги обеспечили железом несколько предметов. Вообще новый терасик - это лютый оверпрайс, взять ту же de2-115 за 50к+ и китайский аналог a-e115fb за 10к.
>>457860 Для неё тоже много ума не нужно. Нужно только немного ушибленности, чтобы пытаться в неё на плисах, которые архитектурно для этого не предназначены.
>>457962 Это не совсем так. По крайней мере задачи синхронизации клоковых доменов встречаются весьма часто, можешь посмотреть количество результатов по запросу в гугле. Таким образом во многих более-менее сложных конфигурациях будет заметный кусочек асинхронщины.
>>457860 Да я не про ум, а про то что схемотехнику нам преподавали фактически в базисе рассыпухи, где асинхронщина вполне себе нормально живёт, но препод тем не менее всё равно топил за синхронное проектирование.
Есть тестбенч: initial begin: sin reg [15:0]Word[7:0] = {16'hA57E, 16'h8000, 16'hA57E, 16'h0000, 16'h5A82, 16'h7FFF, 16'h5A82, 16'h0000}; for(integer i = 0; i <= 7; i++) begin for(integer j = 15; j >= 0; j--) begin DI = Word[i[2:0]][j]; @(posedge C); DI = 0; end end end
Для того чтобы в МоделСиме вывести на диаграммы переменную Word пишу add wave -hex sin/Word
Но как вывести переменную i? Пробовал написать так: for(integer i = 0; i <= 7; i++) begin: i_ Т.е. блоку присвоить имя i_ и вывести на диаграмму командой add wave -hex sin/i_/i Но не получается.
Где затарить ПЛИС недорого?
Аноним05/04/21 Пнд 17:28:00№4585531544
Нужно закупить 15-20 ПЛИСов для занятий со школотой. Сам юзаю Diligent ARTIX-7, но для детей нужно попроще, в районе 6-7к на штуку. Где купить сабжа в РФ, чтобы с чеком и доставкой в ДС? Перерыл половину магазов, 20к+ минимум по цене. Цистерну чая тем, кто не останется равнодушным.
>>458558 Себе возьму, но для цели не подойдёт. Они заказываются в Китае, что не кайф, тяжело провернуть офф закупку. Есть альтернативы, которые можно найти в России?
>>458559 Мне кажется, что за эту цену можно уже самую простенькую терасик смотреть. Лично брал через эфо, правда 4 года назад. Если официально через юр лицо покупать, то мб и академическую цену можно выбить.
>>458675 Да как бы содержимое бенча тут вообще ни при чём. Скорее всего, переменную нельзя добавить на дашбоард потому что он предназначен смотреть сигналы, а не переменные. Мне, по крайней мере, ни разу не приходило в голову им переменные смотреть. ХДЛ-код это же описанная железка, только к физически существующим объектам можно прицепить осциллограф, а физически сущестуют в железке только wire и reg.
>>458675 Так я ж не виноват что макака тег для выделения кода не может прикрутить. Вон уже кто-то добрый поправил.
>>458683 ХДЛ-код он только тогда ХДЛ-код когда в прошивку компилируется. А когда запускается на симуляцию то по сути скриптовый язык, немного специфический, но в принципе ничего необычного. Вот как говорит этот >>458738 господин я делал, так работает. Но почему я не могу вывести переменную объявленную в шапке цикла мне категорически непонято. По сути она должна быть видна в этом блоке и достаточно только дать ему имя. Но её не видно. А если, как ты говоришь, переменные не выводить, то как же свой говнобенч отлаживать?
>>458752 Проще смириться с особенностями моделсима. Предполагаю что причина подобного поведения в области (времени) существования переменных, объявляемых подобным образом. Если Word существует можно сказать что непрерывно, то с i, j это не так. Сейчас то они вроде как существуют непрерывно, но если вставить перед циклом @(posedge C);, то уже все. Можно предположить что Wave может выводить только сигналы с (гарантированной) непрерывной областью существования.
Есть кодировка 4b/5b, с ней проблем не возникает, а есть кодировка 8b/10b, вопрос состоит в том, есть ли алгоритм вычисления, или только табличный метод?
>>459665 Официальная флэшка легко меняется на сторонние, надо просто сверить коды операций и тайминги по даташиту + разрешить ее в настройках. Проверял замену epcq128 на en25qh128 и n25q128a13e. Посмотри еще циклон 5 и 4, они дешевле и достать проще.
>>459896 >Посмотри еще циклон 5 и 4, они дешевле и достать проще Вот как раз с ними и сравнивал и даже без учёта флешки циклоны получились в 5+ раз дороже младших максов, под проект реально хватит 10м02. Но будет занимать 80% плисины.
>>459897 >Но будет занимать 80% плисины. Это залет, Господин. У фиттера может начаться попаболь при попытке вписаться в нужные тайминги и ограничения. Без синтеза реального проекта это очень и очень плохая затея.
>>459897 Если у тебя основной критерий это стоимость, то может быть посмотришь на Lattice? Если я не ошибаюсь, то у них вроде аналогичные по количеству LUT есть подешевле, только умножителей меньше, а блочной памяти наоборот больше. Но это я так, теоретически, сам я их не касался.
>>459931 Несколько факторов помимо дешевизны. Например полное отсутствие желания возиться с легаси и реворкать проект под другого вендора. В идеале просто поменяю плисину, поменяю пины, примитивы, если будут отличия и все.
>>459897 Если проект готовый, перекомпилируй под 10М04/02 да посмотри, куда влезет, это не займет много времени. Сначала без пинов, потом с пинами. Я только PLL заново добавлял, остальное само перекинулось. Лучше брать с запасом, фиттер может начать хуевничать и на низких частотах.
>>459943 Вот кстати и вылезла проблема младшего макса - он не умеет инициировать памяти. Есть конечно костыль через юфм, но мне лень ебаться с этим, лучше с запасом поставить предпоследний снизу макс. На нем все нормально скомпилилось, но пару ядер пришлось заменить.
Можно ли в России работать ПЛИС-программистом, получая через DHL всё нужное и работая удалённо в глобальной команде? Просто почитаешь про другие профессии — депрессия накатывает, как плохо люди живут. Хочу грести деньги на разработке.
"Я отношусь к среднему классу", — с гордостью говорит человек на Западе, а потом выходит из ветклиники, в которой работает, садится за руль автомобиля и возвращается в свою виллу. На балконе виллы — благоухающие цветы и обеденный столик со стульями. "Я отношусь к среднему классу", — с гордостью говорит врач в России, а потом подходит к подъезду, возле двери которого толпится круг из десятка курильщиков, протискивается между ними, заходит в свой подъезд и нажимает на копчёную, обугленную кнопку, которая изначально была белоснежной, чтобы лифт (картинки 26 и 27) его поднял на 8-й этаж "виллы". На балконе "виллы" — лестница-стремянка, матрац, удочка и старый холодильник.
>>460085 Да это мамкин рэволюционэр ходит вбрасывать свою жежешку. Предыдущая попытка была здесь >>458773 Пыню никто не любит кроме пыневиков, но это не повод не покормить говном шизика, считающего себя дохуя пропагандистом-манипулятором.
Ищи вакансии. Удаленка в разработке аппаратуры - вещь редкая из-за специфики профессии. Зарубежный вариант очень маловероятен - помимо отправки отладочной платы с сомнительными гарантиями нужно будет потом отлаживать твою прошивку на реальном устройстве, в том числе в составе системы, а позже иногда оперативно вносить корректировки и проверять их там же. Отладка запросто может занять пару недель с прототипом, питальником, осциллографом/анализатором и паяльной станцией/девочками с местного монтажного участка наперевес. Проще взять местных васянов или понаехавших китайцев. Вполне реален вариант с частичной удаленкой по договоренности в городе проживания. Если ты с Украины/Казахстана/etc, можно перекатиться к нам, взять квартиру в нормальном районе/хороший загородный дом и ведро, к 35-40 все выплатить. Прошаренные люди с опытом и кучей связей типа дихальта разрабатывают свои устройства и удаленно работают на кучу заказчиков, но таких очень мало.
>>461107 Ну, например, несколько лет назад тут один анон показывал свой самодельный SDR трансивер. А сколько еще не показывало? Вычислительная мощь вообще-то никогда не будет лишней для любителей. Например, можно сделать такую ЦОС вместе с помехоустойчивым кодированием, с которыми и современные суперкомпьютеры не справятся, но зато будет немного помехоустойчивее чем то, что используется сейчас. Причем ничего сверхсложного, что-то на уровне того чтобы взять фильтр с очень большим порядком (причем максимально тупо, без быстрой свертки) и сделать декодер Витерби для полиномов очень большой степени.
>>461114 А есть где почитать про это в популярной форме? Я умею в линейную алгебру и ЦОС, но грызть сухо-академично не готов, если мне это не сдавать и не делать по работе. С другой стороны, всё это должно быть очень просто-интуитивно на уровне реализаций, если ты не академик, вычисляющий, сколько нулей после запятой осталось до предела Шеннона.
>>461107 Знаю ПЛИСочника, который не любит контроллеры и примерно так же про них выражается. Купленная просрочка ПЛИС с какого-то завода за копейки оптом - и вопрос на года, или всю жизнь, закрыт.
Плюс контроллеров заключался в большей распространённости, большей вариации в количестве выводов и начинке, в конце концов под МК проще самому платку сделать, особенно если задачки скудные.
Сейчас, когда можно легко за недорого плату заказать - плис не проблема, если ты умеешь с ними работать, конечно.
>>458773 Да. В нашем миллионнике FPGA-инженегры получают около 150-200к, при общем дефиците специалистов. Предприятия занимаются переманиванием таких специалистов друг у друга. При этом обычный схемотехник может получать 30-60к, зависит от уровня и саморекламы. Вообще, для микроэлектроанона, умеющего работать с ПЛИС и МК хорошее время настаёт: после 90-х разработка восстанавливается, а специалистов мало, вышка рождает больше инженеров которые могут бумажки перекладывать, чем инженеров которые могут что-то разработать, конкуренции нет в общем то.
>>461198 >В нашем миллионнике FPGA-инженегры получают около 150-200к, при общем дефиците специалистов. Предприятия занимаются переманиванием таких специалистов друг у друга. При этом обычный схемотехник может получать 30-60к Можешь, пожалуйста, пруфануть ссылками на вакансии?
>>458557 Оффтоп, конечно, но вот я хочу сделать девборду для ВЕ92У. Понимаешь, эти МК у меня есть, преобразователи напряжения тоже есть, даже кварцы смд есть, озу, пзу, прочий обвес, а вот платку заделать времени нет, ну совсем нет. И если бы нашёлся анон, который трассировал платку да заказал её изготовление, я бы обменял на такую платку определённый комплект элементов включая МК (в металлокерамике).
>>461199 >Можешь, пожалуйста, пруфануть ссылками на вакансии? а нету вакансии, столько получают проверенные ФПГАшники. Вакансии висят на гораздо меньшие суммы. И не спрашивай про логику этого, у нас СТАНДАРТНЫЙ отдел кадров, который нифига никого найти не может. Пришедший с улицы (с другого города, так как в этом паспортные данные всех ФПГАшников всем предприятиям известны) приблизится к такому же после подтверждения квалификации, считай после закрытия соответствующей задачи, а до этого будет получать полтос.
>>461200 Я не он, но желания у тебя странные, прямо как плата у того анона. Можно просто, быстро и не дорого купить отладку у https://ldm-systems.ru/ только в пластике. Но зачем для какой-то отладки металлокерамика? Тем более что 1986ВЕ9х не особо интересные, по сравнению с 1986ВЕ1Т. >пзу Зачем? >времени нет, ну совсем нет. Но при этом будет время на то чтобы играть с этой платой?
>>461202 >Я не он, но желания у тебя странные Я нищий, который вкатывается в электронику и которому знакомый дед с завода подогнал кучу радиоэлементов и даже б/у измериловку. И зачем мне тратить деньги на что-то готовое, когда есть всё для того что бы собрать что-то похожее по цене платы.
>>461202 >Но при этом будет время на то чтобы играть с этой платой? В конце мая я поменяю место работы и время появится.
>>461205 Ну как знаешь. Только миландровские микроконтроллеры ничем существенным не выделяются на фоне других микроконтроллеров. С тем же успехом ты мог раньше взять плату с STM32F103C8T6 на алиэкспрессе, хотя теперь то понятное дело их там не осталось. Кстати, а как ты собрался формовать эти микроконтроллеры? А J-Link для их программирования у тебя найдется или будешь через бутлоадер прошивать?
>>461228 > Только миландровские микроконтроллеры ничем существенным не выделяются на фоне других микроконтроллеров. всякие свистоперделки типа ацп, цап, уарт, таймеров и прочего там есть и ладно, для изучения хватит.
>Кстати, а как ты собрался формовать эти микроконтроллеры? тип корпуса хороший, контакты идут снизу, формовка не нужна
>А J-Link для их программирования у тебя найдется или будешь через бутлоадер прошивать? уже нашёлся, китайская пародия, но говорят работает нормально
>>461266 >тип корпуса хороший, контакты идут снизу, формовка не нужна Может быть, особенно если на пузе нет ничего металлического. Но вообще подобные корпуса обычно все равно формуют и клеют на плату через прокладку. У меня на работе должны быть компоненты в пикаде и наверное в оркаде, но скорее всего под формованные корпуса.
>>461266 Вот, открыл пикад, достал микроконтроллер и пририсовал JTAGA. Что тебе еще нужно кроме питания? Футпринт похоже рассчитан под формовку, поскольку между краями контактных площадок 26,6 мм (смотри второй скриншот), когда на чертеже указано 26,43 max. Можно и без формовки припаять, считаю что будет почти нормально.
Суп, радиоаноны! Решил попробовать вкатиться, уже взял платку, а теперь думаю, не полное ли говно взял? Стоило это по скидке около 15-16 евро с USB-blaster и двухстрочным экраном в комплекте.
>>462732 >SDL HDL ты хотел сказать? Verilog. SystemVerilog это развитие Верилога, и предназначен в большей степени для тестирования схем. Поэтому начинай с чего попроще.
>>397766 (OP) Стоит ли вкатываться в Verilog из С и Embedded в России чтобы в необозримом будущем завести трактор? А пока, смогу ли я рассчитывать на ЗП 200 и выше (в принципе столько и получаю как Сишник), далее быть архитектором, или до архитектора дольше грести в этой теме, чем даже в С? Или времена захвата своего места под солнцем в теме проектирования микросхем прошли и пробиться сложно? Суть такова - есть желание ебаться с микросхемам на низких уровнях, но и кушать дораха тоже хочется. Или в Linux Kernel, DSP и Video процессинге легче придти к успеху (что мне тоже нравится, но не настолько)? В общем на таком распутье...
>>465889 Как человек перекативший из электроники в программирование, не советую. Это два разных мира, и если у второго есть деньги и найти работу на 200к довольно не сложно с норм опытом работы и знаниями, то первый очень тухлый и с минимумом вакансий. 200к это только с цифровым анализом, только у военных с подпиской о невыезде, и хрен ещё ты попадешь на это место, будучи левым хером с улицы
>>465924 У Яндекса есть яндекс.контест, где они устраивают всякие соревнования. Регайся, тренируйся писать код сразу, не переписывая все, и можешь спокойно идти на собес к ним. Потом 5 лет работы по ночам, и 200к твои
>>466611 > А где взял? А там нету, тот магазинчик на алиэкспрессе, где можно было за смешные деньги купить плату с шестым Виртексом, давно закрылся, разве что иногда остатки всплывают.
>>466658 А что скажешь про Arduino MKR Vidor 4000? С одной стороны я понимаю, что отладкой это назвать нельзя, с другой, там же по сути можно будет на какие то тестовые воздействия запрограммировать мк, который на плате стоит.
Сап анончики. Всё давно хочу вкатиться в плис, на руках есть борда от antminer t9+ на ней камушек XC7Z010 с 28к PLC да, я ахуевший, в левом нижнем углу вижу JTAG, думаю купить под это дело программатор https://aliexpress.ru/item/32691266814.html
Какие могут быть подводные с такой жирной плиской/платой? Сразу исключаем то, что я могу спалить плату нахуй, благо этих плат как грязи нет, я не майнер пидарас, просто повезло оказаться под крылом одного хорошего человека, который за бабосы обслуживает майнерскую требуху
>>466751 >подводные в том, что у тебя нет схемы, и ты не знаешь, какой пин куда выведен Это да, но распиновку ответных разъёмов хэш плат найти не сложно >Как ты будешь подключать периферию? Никто же не запрещает написать тестовую прошивку, которая по порядку выдаст на пины по высокому уровню или на бредни шиза походит?
Да и можно сдуть камень > перекатить шары только хз где трафарет искать, если там не "дефолтное" расположение шаров.. и посадить на свою плату
>>466771 А мне то по началу казалось что схема есть в открытом доступе. Ну тогда присоединяюсь к анону выше: выкини. >Это да, но распиновку ответных разъёмов хэш плат найти не сложно Это почти ничего не даст. >Никто же не запрещает написать тестовую прошивку, которая по порядку выдаст на пины по высокому уровню или на бредни шиза походит? 99.9% что в этом случае соединишь выход с выходом со всеми вытекающими последствиями. Ну может как-то не спалишь в процессе. >посадить на свою плату Интересно где тебе сделают такую плату и чтобы в сумме обошлось не дороже нормальной простенькой отладки с тем же цинком?
>>466785 >Интересно где тебе сделают такую плату и чтобы в сумме обошлось не дороже нормальной простенькой отладки с тем же цинком? Ну если под этот же цинк плату разработать и заказывать у китайцев, то ~2-3к ₽, а если учитывать что плата для разработки на этом же камне на ебей стоит 200$, то вполне сносная экономия выходит. Но по отношению к затраченному времени будет лучше плюнуть и просто отладочную плату на плиске попроще взять, тут я не отрицаю, но меня спортивный интерес подогревает
>>466789 >у китайцев, то ~2-3к ₽ Где ты такие цены видел? Или ты рассчитываешь развести в двух слоях и с шириной/зазорами по 0.15 мм? Что-то я не уверен что даже питание получится развести, а даже если получится, то толку то.
>>466796 >уметь в bga как-то странно Зачем? Делать свои платы под такие корпуса слишком дорого и при возможности намного дешевле обойтись TQFP корпусом и двухслойной платой. Это только тем кто ремонтом занимается такие умения необходимы.
>>466611 На Али брал, но у того продавана ("FPGA Board Store") уже нету вообще ничего, и точно такого же комплекта в поиске нету. Изначально искал так: "fpga cyclone iv usb blaster". >>466658 Может совсем левак какой-то был, меня немного смущает, что в Квартусе есть чипы EP4CE10E22C8 и EP4CE10E22C8L, а моего EP4CE10E22C8N нет.
>>466960 Перспективы, как и во всём, ненулевые, но опять же, значительно меньшие, чем для кодера. Единственный минус — кодера проще держать на удалёнке в его родном Мордоре.
>>466973 А есть вариант упороться в проектирование кристаллов? Если точнее, есть ли какая то связь между эйчдиэльщиками и проектироващиками кристаллов?
>>467062 Если ты не смог свалить с айти, где тракторы уже клепают на конвейере, то вряд ли у тебя хватит мозгов свалить с микроэлектроникой, где требования к людям куда выше, сорри
Начал учиться по Харрисам, есть задание: написать тестбенч, у них в примерах разбирается пикрил код. У меня не работает конструкция "if (testvectors[vectornum] === 4’bx) begin", зато работает " if (testvectors[vectornum] === ’x) begin" Вопрос, почему так? Пробовал выводить значения testvectors[vectornum], все с ними норм, после того, как вектора в файле заканчиваются выводит xxxxx, но симуляция не заканчивается.
>>467697 Да я ж говорю, как полечить я понял. Интересует, почему оно не работает как в книжке? У них используется ModelSim Altera edition, а я юзаю ModelSim Intel FPGA Starter edition, может там компилятор по другому работает?
>>467882 На vhdl у меня осталось впечатление, что -93 версия работает четко и однозначно, как топор, но нужно много костылей чтобы сделать что-то сложное (я сломал голову пытаясь сделать массив векторов с настраиваемой через генерики длиной и векторов и массива). Версия 2000 работает везде хуй пойми как, но содержит ряд упрощений для разработчика.
Самое смешное, что я этим занимался в 2015 году, блять. За 15 лет не смогли допилить компилятор (синтезатор, транслятор, похуй).
Короче, проверь может версии языка у себя, не знаю что там у тебя за язык, но вдруг проблемы схожие.
>>467882 Привыкай, хуле. У меня при переходе от одной версии вивадо к другой код тестбенчей ломается. Это та самая причина, по которой на странице загрузок у вендора лежит не только последняя версия среды и, скажем, парочка "стабильных", а все выпущенные релизы. И мигрировать проекты в другую версию вызывает больше ебли, чем держать у себя несколько версий среды (если ты не столкнулся с каким-то мощным багом, который невозможно обойти, и который был точно исправлен в новой версии).
Правильно ли я понимаю, что нужная отрыто-бесплатная архитектура FPGA-чипа, чтобы заинтересовать какой-нибудь Lattice в выпуске физических версий оного? Вот есть сообщество RISC-V, пилят вычислительные блоки просто потому что могут, но неужели никто из них не заинтересован в запиле опенсорсного FPGA?
>>470249 Ядро ПЛИС - таблицы истинности и триггеры запилить легко (любая sram является таблицей истинности). А вот периферию, интерконнект и чтобы все работало хотя бы на 100 МГц - это задача схемотехников. Открывай не открывай, все равно там (как я себе представляю) серьезные дяди сидят и за большие деньги рассчитывают физику твердого тела, схемотехнику, всякие СВЧ микрополоски от которых мне в универе кошмары снились.
Есть книга о том, как на FPGA реализовывать математические алгоритмы типа корректирующих кодов и эллиптических кривых? FPGA же обсираются на сложной арифметике? Как представлять эту арифметику в виде вентилей?
>>470821 Конечно, если это возможно, обычно целесообразнее взять готовое ядро, особенно если что-то сложное. >типа корректирующих кодов и эллиптических кривых Если что, то умножение в поле Галуа делается через небольшие таблицы логарифмов, в результате оно не так много места займет.
>FPGA же обсираются на сложной арифметике? По моему не особо, хотя с кодами у меня небольшой опыт, только Витерби с Ридом-Соломоном, причем уже довольно давно и я успел подзабыть все это. В целом все как обычно, комбинационную логику длинную лепить нет смысла, нужно по возможности делать конвейеры.
Привет аноны Пару лет назад видел пресс релиз у ST, про какой-то SoC, с процессором и программируемой логикой (типо SRAM-FPGA), но найти его не получается. Может быть помнит кто-то, как железка называлась, или как её искать?
>>471904 Нет конечно, есть специальные САПР, которые все генерируют по коду на verilog/vhdl и обеспечивают весь маршрут от разработки и моделирования до топологии и разварки. Например, cadence virtuoso. Про нее есть статьи/учебники на русском.
>>471923 Интересно, а как это все в 70х годах делали. Если наша цивилизация рухнет, сможем ли мы когда нибудь восстановить электронику хотя бы до уровня 90х-2000х?
>>471925 >Интересно, а как это все в 70х годах делали. Точно также как и платы рисовали - ручками. В те года микросхемы были не такие уж и сложные. В 70-е уже существовали какие-то инструменты автоматизации так-то.
>>471925 Там на Ютубе уже в гаражах свои микросхемы делают 20 мкм техпроцесс, собирают свои компьютеры на макетах и программируют. Да даже в нашей гребаной Беларуси есть Интеграл с какой-то логикой и жк. Как-нибудь соберутся и восстановят. Там судя по всему процесс аналогичный травлению печатных плат, но в масштабах нанометров.
>>471948 А спроектировать с нуля? Тот же HDD это еботня еще та. Ну да, по сути компьютер можно собрать из микросхем типа Xerox Alto. Представь писать заново компиляторы/gui и так далее.
>>471949 Ты изучи вопрос, и твоя паника сразу упадет. HDD можно сделать легко после кассет с данными. Кассеты даже васян освоит - ленту тяни да читай данные. А имея данные можно любой софт написать. А у hdd всего-навсего другой способ считывания.
Компиляторы как нехуй делать создаются. Изучи регулярные выражения и вопрос станет прозрачным.
>>471982 Выглядишь как брат-близнец того >>471842 (OP) шизика. Ты случайно не он? В качестве наглядного примера из наиболее распространенного это куча игрушек для спектрума, которые были написаны естественно на ассемблере. Хотя это может и не совсем то что ты хочешь, но тем не менее. Или есть более современная игрушка - KolibriOS. Куда уж низкоуровневее. Но выше один анон написал что компиляторы - не проблема. А какие компиляторы? Ассемблер? Так это вообще ни о чем по сложности, тут не о чем говорить даже. Какой-нибудь простейший бейсик, лисп или форт могут быть даже проще ассемблера. Значит речь шла про компилятор сишечки или около того, который будет несколько сложнее. А на Си и вовсе куча всего написано. Если не касаться винды, то из современного и достаточно популярного есть GTK3 и GTK4, как пример. Но вообще вся постановка вопроса это полнейший бред.
>>472091 Жаль, что 99.9% современных it петушков даже понятия не имеют, как все устроено внутри подробно. Научили обезьянок тыкать компиляторы и все им придумали. Тру компьютерщики были в 50-80х годах. Современные это скорее продвинутые юзеры, чем программисты
>>472090 Я не программист чтобы мочь такое и вообще не претендую. Могу сделать какой-нибудь процессор на FPGA, т.е. сам напишу весь код на верилоге, собственно в каком-то из предыдущих тредов я этот код приводил. Графику тоже сделаю, если оно тебя так особо волнует. Более того, по работе "графикой" немного занимаюсь как бы, только со своей спецификой. Написать программу для GUI? Это в зависимости от того что ты под этим понимаешь. Если вроде менюшек в досовских играх, то такое совсем не сложно, можно вообще и без компиляторов обойтись, написать на ассемблере на бумажке и руками по табличке перевести в машинные коды. Если ты вдруг подумал что я могу только написать год на верилоге, а на более низкий уровень мне никак не спуститься, то это вовсе не так. Любой кто делает что-то осмысленное на FPGA должен понимать как оно устроено внутри. Поэтому я также смогу нарисовать схему допустим на 74-ой серии микросхем, а уже разрисовать внутренности этих микросхем на отдельных транзисторах тем болеее не сложно. Однако объяснить тебе как оно устроено внутри? Точно не буду, максимум отправлю читать учебники. Если с восприятием текста проблемы, то можешь посмотреть видосики, тут как-то бегал один анон, пиарил свои видосики (так себе, слишком много воды).
А ты знаешь, как работает gui? Точнее как адрес находит? Допустим, приложение с точки зрения файловой системы это таблица с адресами и командами. Ладно. Ярлык на рабочем столе это сорт указателя. Он содержит координату адрес ярлыка с указателем на программу нужную Мышь/сенсорный экран отсылает координаты клика. Если они совпадают я координатами ярлыка, то запускается приложение. Получается процессор делает условный переход. Значит где то должна быть таблица адресов всех ярлыков.
Так же? Я просто криво выразился, но суть ты понял
>>472172 >Я просто криво выразился Нет, не криво, просто поток шизы. Попробуй выбросить весь этот бред из головы и заново прочитать учебник. И еще в учебниках часто есть задания для самопроверки или чего-то около того, так вот эти задания лучше выполнять, так намного лучше доходит, особенно если соображалка средненькая. Наверняка бы ты не спрашивал свой тупняк, если бы читал внимательнее и пробовал бы делать простейшие упражнения на каком-нибудь бейсике для детей (или что сейчас там предлагают вместо бейсика).
>приложение с точки зрения файловой системы это таблица с адресами и командами. Нет. Какая еще точка зрения у файловой системы? Если ты про винду, то экзешники хранятся в файловой системе точно так же как и любые другие файлы, никаких особенностей нет. А внутри у экзешников конечно свой формат https://ru.wikipedia.org/wiki/Portable_Executable , но к файловой системе это не имеет отношения. Тем более что можно обойтись без файловой системы, для чего-то простого конечно. Короче, у тебя все в голове перепуталось, шиза полная. >Получается процессор делает условный переход. Забавные у тебя рассуждения. Как бы для того чтобы запустить программу, операционная система (ты же про тот случай когда оно используется?) должна прочитать всякие данные типа объема требуемой памяти для разных секций программы, из PE-файла (т.е. экзешника), ну или ELF, если у нас не винда или еще чего-либо. Потом оно должно проверить всякое разное, выделить память в ОЗУ, скопировать туда содержимое нужных секций, потом сделать еще кучу действий, о которых я не знаю (я же не претендую). После чего оно должно добавить в https://ru.wikipedia.org/wiki/Диспетчер_операционной_системы соответствующие данные, а потом уже оно периодически будет выделять процессорное время для запущенной программы. Ну и где тут твой условный переход? Да тут немеренно будет условных переходов, только очевидно не так как ты думаешь.
Не уверен правильно ли тебя понял, но все это может быть сделано по разному. Оно вероятно и сделано по разному в разных операционных системах (и в разных DE).
То что мы видим на экране, это тупо отображение видеопамяти для гоя юзера, ладно.
Когда ты кликаешь на ярлык нужной тебе программы, каким образом адрес ярлыка запускает нужное приложение? Мне подробно нужно. Я прекрасно знаю, как устроена логика компьютера, архитектуры, логические порты/регистры/счетчики и так далее, все что на уровне железа. Мне хочется узнать именно как ОС и графический интерфейс работают, только подробнее, чем это написано в вики. Если ты мне найдешь код GUI от xerox alto, его операции BITBLT подробно, ты буду благодарен.
Если ты не понимаешь, то еще раз - мышка отсылает координату указателя + прерывает цпу. Идем дальше. Ярлык так же имеет координату свою. Мне этот момент и интересен. Получается, цпу сравнивает адреса ярлыков и адрес указателя мыши. Если они совпадают, цпу подает флаг и происходит условный переход (зависит от архитектура конкретной машины) по указанному адресу, где находится первый адрес для запуска программы (сама программа содержится в множествах ячеек памяти) Если тебе интересно, как работает цпу в потробностях, то вот, почитай https://diary.ru/~blakkot/p163874886_ustrojstvo-i-princip-dejstviya-processora.htm
Лучшее не находил. Проблема всех вузиков, что либо рассказывают очень подробно об устройстве, на уровне ТТЛ транзисторов, либо очень поверхностно, мол ЦПУ копирует данные ко ко пок пок затем умножает и так далее.
> Мне подробно нужно. там происходит ебейшее количество операций, подробности целиком и полностью зависят от конкретной реализации гуя.
>мышка отсылает координату указателя + прерывает цпу какая именно блетб мышка? usb, например, опросами работает, никаких прерываний.
чуть подробнее, но все равно очень в общем - обработчик событий гуя так или иначе получает инфу от драйвера мыши, что-де произошло событие клика, координата такая-то. Этот обработчик уже занимается всей херней по поводу того, чо дальше делать.
>>472244 Я тебя немного разочарую. Между >мышка отсылает координату указателя + прерывает цпу. и >цпу сравнивает адреса ярлыков и адрес указателя мыши. Если они совпадают, цпу подает флаг и происходит условный переход существует очень много промежуточных действий. Происходит примерно так: Операционная система (ОС) получает координаты мыши, каким образом это отдельный вопрос. Далее ОС, а точнее её алгоритмы, которые, кстати говоря, все исполняются на процессоре, сравнивает координаты мыши с координатами ярлыков на рабочем столе, координаты ярлыков, скорее всего, хранятся где-то в реестре. Если совпали - начинается процедура загрузки программы с винчестера в ОЗУ, это тоже большая и сложная процедура. Программа в ОЗУ тоже хранится не абы как, там свои правила, дескрипторы, страницы и прочее. После того как программа, или её часть, загружена в ОЗУ она ставится в очередь на исполнение, ведь компуктер - многозадачное устройство, это значит что он может выполнять несколько программ одновременно. Но процессор один (многоядерность и многопоточность - отдельная тема), а потому все запущенные программы исполняются по очереди, сначала немножко одна, потом немножко другая, потом третья, потом по кругу. ОС может управлять очерёдностью исполнения. В общем как-то так. Если тебе надо прям подробно, то упарывай исходники какого-нибудь линукса. мимодругойанон
>>472249 >Этот обработчик уже занимается всей херней по поводу того, чо дальше делать.
дополню: у тебя может сложиться впечатление, что этот самый обработчик будет запускать твое "нужное приложение". Хера с два, он так или иначе передаст это событие соответствующему приложению - в твоем случае тому, которое в текущий момент отображает оный ярлык.
>>472250 ЮДалее ОС, а точнее её алгоритмы, которые, кстати говоря, все исполняются на процессоре, сравнивает координаты мыши с координатами ярлыков на рабочем столе
строго говоря, ОС как таковая этой херней не занимается. Рабочий стол с ярлыками - обычная юзерспейсная приложуха.
>>472244 >Проблема всех вузиков, что либо рассказывают очень подробно об устройстве, на уровне ТТЛ транзисторов, либо очень поверхностно, мол ЦПУ копирует данные ко ко пок пок затем умножает и так далее. У тебя проблема в том что читаешь жопой. >Я прекрасно знаю Не верю. >Еще бы узнать, как УУ работает,особенно на микрокоде А теперь говоришь что не знаешь. УУ может быть обыкновенным комбинационным устройством. Если процессор не может за один такт выполнить команду, то можно например дополнить УУ счетчиком. Вообще все цифровые устройства это кучка триггеров (т.е. память), подсоединенные к комбинационному устройству. >Прекрасная пикча, ни один вузик так не пояснял, примитивно, и сразу все понятно. Это какой-то гипотетический процессор, даже у 8080 внутри все не так.
Вобщем этого уже достаточно для того чтобы поставить диагноз: смотришь в книгу, видишь фигу, только все очень запущено. Так что объяснять что-либо тебе бесполезно.
>>472255 Дополню. УУ может почти полностью отсутствовать. Можно брать все эти управляющие сигналы прямо из кода команды (который загружен в регистр команд с >>472245 картинки)? Вот прямо каждый битик из "регистра команд" - отдельный управляющий сигнал. >>472244 >Я прекрасно знаю Так что если ты это не сообразил, то значит и не знал ничего.
>>472249 >>472250 >>472251 Во, вот сейчас дельно пояснил, спасибо анон. Тогда получается, что ОС сравнивает координаты всех ярлыков с адресом указателя? Например, у меня на рабочем столе 50 ярлыков. Получается, ОС будет сравнивать координаты всех 50 ярлыков с адресом мыши, пока не будет совпадения? Хотя учитывая частоту процессоров, то это оче быстро и займет микросекунды, если не нано. Кстати, я еще разбирался с BITBLT инструкциями, это те которые отвечают за перемещение блоков пикселей. Если я правильно понял, то они действует только в двух направлениях. Смотри, пусть у нас есть видеопамять и экран. Координаты начинаются с левого верхнего угла слева направо, пусть в десятичном для удобства 0 1 2 3 4 и так далее. Самая последняя координата 1024 будет в правом нижнем углу. Просто взял от балды. Представь, у тебя открыто окно, которое начинается с координаты 100. И ты такой решил его переместить мышкой вниз, до координаты 800. Тут запускается инструкция BItBLT, которая начинает инкрементировать сдвиг окна от 100 до 800. Т.е. для юзера создается эффект что окно моментально туда сверху вниз перешло, но в реале оно сдвигается постепенно. Просто опять таки из за высокой частоты это за миллисекунды происходит и незаметно глазом. Ну я так понял
Ожидаю на Result увидеть ff, т.к. strong сильнее weak. По факту МоделСим показывает состояние Х. Или МоделСим не моделирует мощность, или я в лыжи обутый.
>>472262 >огда получается, что ОС сравнивает координаты всех ярлыков с адресом указателя?
еще раз: ОС похер. Она передала событие приложению, дальше - его проблемы.
как именно приложение поймет, что за херня у него под мышиным указателем и что делать с событием нажатия на эту херню - целиком и полностью зависит от реализации.
Слушай, а в чем главное отличие i/o port и i/o memory mappped. Первый это напрямую данные со входа идут в цпу по отдельной шине, а во втором данные идут через DMA в зарезервированное место в ОЗУ, и уже потом ЦПУ читает их. Вот это я реально плохо понял, признаюсь.
>>472263 Вроде бы корректно будет так: wire A = 1'b1; wire B = 1'b0; wire result; assign (strong1, strong0) result = A; assign (strong1, weak0) result = B; initial #1 $display("Result: %v", result); И результат будет St1.
Потому что у такого: wire (weak1, strong0) A = 1'b1; wire result; assign result = A; initial #1 $display("Result: %v", result); Будет результат St1, а не We1, как казалось бы можно было ожидать, если не прочитав стандарт (попробуй еще осилить его...) начинать тыкать.
>>472264 Ну молодец. Я постарался и объяснил тебе про устройство управления, а ты меня посылаешь. Те аноны про "ярлыки" только общие слова, да и то частью спорно. И так очевидно что проверка должна быть на вхождение в определенный диапазон значений координат, для каждого "тыкабельного мышью" элемента интерфейса. Причем ярлыки ничем таким существенным не отличаются от остальных элементов графического интерфейса. Это настолько очевидно, что можно и не писать об этом.
>>472277 >Слушай, а в чем главное отличие i/o port и i/o memory mappped. Хоть ты меня и послал, но я все же отвечу. Не знаю откуда ты взял, но под "i/o port" имеется в виду то как это сделано у 8080 и некоторых других. То есть имеется отдельное адресное пространство (отдельное от адресных пространств данных и программ), на котором "висят" устройства. Запись и чтение в это адресное пространство осуществляются отдельными инструкциями. Схемотехнически это может быть отдельной шиной например. Процессор по такой инструкции выдает адрес для устройств на эту отдельную шину, а устройство почуявшее свой адрес выдает на шину свои данные, либо наоборот забирает данные которые выдал процессор.
>i/o memory mappped Это должно быть имеется в виду когда доступ к устройствам осуществляется через общее (с данными) адресное пространство. Схемотехнически это еще проще - вместо какой-нибудь ячейки памяти приделываем устройство.
>Первый это напрямую данные со входа идут в цпу по отдельной шине Что-то вроде того, только не совсем. Тут первична не отдельная шина, а отдельное адресное пространство. Шина у самого процессора может быть одна, только будет мультиплексироваться как-нибудь (особенно во всяком старье мультиплексируется все подряд). >а во втором данные идут через DMA в зарезервированное место в ОЗУ, и уже потом ЦПУ читает их. А это не так.
И конечно же ты ничего не поймешь из моих объяснений, а если поймешь, то все не неправильно.
Ой пацаны а чем отличается CPU и GPU. Вроде и то и другое реализовано на логике, зачем два ядра в процессоре. Можно же просто ПЛИС поставить и запрограммировать.
Ну вы и тупые даже я знаю в совершенстве архитектуру персонального программного обеспечения (смотрел гайвера) и то могу подробно об этом рассказать.
Ладно признаю, вы такие молодцы, всё рассказали. Спасибо! Хотите хуй?
Можете ещё помочь я тут загулил какую-то хуйню про плис. А сколько у таких профессионалов помещается хуев во рту?
>>472293 >Можете ещё помочь я тут загулил какую-то хуйню про плис. А сколько у таких профессионалов помещается хуев во рту? Смотря какое семейство и степень матёрости.
>>472277 >assign (strong1, strong0) result = A; >assign (strong1, weak0) result = B;
Работает, но не так как нужно. Вот такой вариант assign (weak1, weak0) result = A; assign (strong1, strong0) result = B; даёт х-результат, если В == 'dz Мне, собственно надо промоделировать пик. Микросхема В умеет переводить свой выход в z-состояние, в это время сигнал должен проходить с микросхемы А. А когда на выходе В есть уровень, то он должен перебивать уровень от А.
>>472278 >адресное пространство >i/o port Вот тут уточнить - это зарезервированный участок памяти оперативной или все таки используется регистр с адресом контроллера устройства i/o?
_адресное_ _пространство_. Для ALU не существует никакой "памяти оперативной", это просто набор адресов, откуда оно будет выгребать данные и куда потом складывать. Вся разница между port и memory-mapped в том, попадают ли адреса периферии и RAM в одно пространство (читай как "набор возможных адресов") или нет.
>>472329 Да это я понял Мне технически понять - отдельное адресное пространство как реализуется? Резервируется часть ОЗУ только для входа и выхода девайсов их адресов, или каждый девайс имеет свой адрес в регистре и отдельную шину?
А по поводу >Потому что у такого: >wire (weak1, strong0) A = 1'b1; >wire result; >assign result = A; >initial #1 $display("Result: %v", result); >Будет результат St1, а не We1, как казалось бы можно было ожидать с одной стороны как бы понятно, у wire-а есть своя мощность по умолчанию, она равна strong. Но с дрогой стороны, почему тогда wire result; assign (strong1, strong0) result = A; assign (strong1, weak0) result = B; работает? Ведь у result точно также есть своя мощность по умолчанию, и как минимум assign (strong1, strong0) result = A; должен создавать конфликт.
>>397766 (OP) Анонче, а не скажешь открытые проекты и схемы где я могу их скочать и заказать платы чтобы запилить хлебную доску для PCI или PCI-e, чтобы поизучать этот протоколы. А то как-то дороговато выходит - купить готовую за 20-40К с ПЛИСиной Циклон-2 на борту не более чем за 3К.
>>477830 > Но ни гарантии, нихуя , При всём богатстве выбора другой альтернативы нет(ц) Потому как если у тебя нет денег на покупку готовой платы, то изготовление того же Simple PCIe FMC carrier тебе тем более не по карману.
> сам про эти платы что думаешь? А именно эти то нахуя брать (тем более, что вторая это не разу не PCI-E, а просто PCI)?
P.P.S. Ну и к платам попроще (материнка с периферией, плюс две мезонинных платы с четвёртым циклоном) китаец дал ссылку на файлообменник с принципиальными схемами и примерами. Другой вопрос, что машинный перевод с шоаррского^W китайского такой машинный.
>>477836 >А именно эти то нахуя брать (тем более, что вторая это не разу не PCI-E, а просто PCI)? Потому что я подумал, может начать с PCI, в нем доки побольше, типа старее же. >При всём богатстве выбора другой альтернативы нет(ц) Так брать из твоих 4х которые ты предложил? Мои 2 старьё? Какую все таки лучше было б? >Потому как если у тебя нет денег на покупку готовой платы 20К то найду, но если можно и сэкономить, почему б нет, с другой стороны - изготавливая ее и отлаживая я так наебусь, что потом будет не до PCI
>>477817 А почему не ардуино видор 4000? И примеры и писиай, да, это не отладка, но с учетом имеющегося на борту мк, отлаживаться должно быть более чем удобно
>>478240 Фаза между входом и выходом pll. Source synchronous требует чтобы на физических выходах, на ногах клок совпал по фазе с данными. Zero delay buffer видимо формирует такую фразу, чтобы компенсировать задержку имеющегося буффера.
>>479140 Имеется в виду не зависимость от данных, а от задержки их защелкивания в выходные регистры. Защелкиваются они каждый такт, даже когда данные проходят одинаковые. Это тот же самый случай, что и с буффером, только вместо буффера нога.
>>397766 (OP) Разработчики VHDL - все? В симулинке есть функция генерации кода VHDL для FPGA и ASIC, в которой даже человек, не умещий в плис, может собрать мышкой схему из графических блоков и сгенерировать прошивку для плис. https://www.mathworks.com/products/hdl-coder.html
>>485423 По моему эту фигню стоит рассматривать всего лишь как набор IP-ядер и графическую рисовалку для их соединения. К тому же оно не вчера появилось. А еще точно так же можно мышкой соединять IP-ядра во всяких квартусах и вивадах.
>>485426 Вроде бы тут есть нечто большее: можно писать код на языке матлаб, засовывать его в симулинковский блок, а потом генерировать HDL. Эта фича похожа на HLS, только не для калечного диалекта крестов, а для managed-языка высокого уровня.
>>397766 (OP) месяц назад собеседовался в беспилотники яндекса на позицию fpga разраба, тестовое сделал, но отлетел на первом собесе. спрашивайте свои ответы
>>485429 >можно писать код на языке матлаб, засовывать его в симулинковский блок, а потом генерировать HDL LiteX есть, на питоне, без накладных. Полный контроль над выхлопом и любые абстракции из коробки. Но как следствие - нужно понимать систему на всех уровнях. Я вот писал установщик PLL чтобы в одну строчку объявлять тактовый домен. Там как известно всегда сотни параметров нужно задать, или возить мышкой в визарде. А тут просто поменял частоту в одном месте, и все само вычислится при сборке.
И так можно любой модуль, даже ебаный GTX ставить. Один раз написал обёртку под задачу - и можно параметры менять или вычислять на ходу. Все наглядно и понятно.
>>486156 > Сколько лет опыт? 6 лет во встраиваемке в целом, опыт с фпга 3 года > Че за тестовое было? распознавание голосовых команд с помощью цос и отправка их по http > Че на собесе спрашивали, че ответил, че не смог? не сказал бы что завалили, просто я сам терминальный додстер, который плохо знает теорию и вообще не является полноценным фпга разрабом
спросили про клоковые домены, метастабильность, асинхронный сброс, кодировку грея, про еще какую-то хуйню. еще писали код на sv, просили написать мультиплексор, но только с помощью &, ~ и assign. еще попросили написать умножитель 4х4 без использования символа *
в ответном письме послали нахуй вежливо поблагодарили за отклик и уделенное время и приложили список того, что стоило бы поботать
бтв, как мне сказали, максимальное количество собеседований -- 4. тут я чтото прихуел, так как думал, что такого большого количества фпга разрабов не может быть в мск, что аж 4 тура нужно для отбора
>>486208 >распознавание голосовых команд с помощью цос и отправка их по http Возможно я ошибаюсь, но при чем тут FPGA? Это задача для процессора. От FPGA для такого потребуется только правильно натыкать NIOS/Microblaze. Распознавание и вовсе на AVR делают. Разве не так?
>>486251 >Может у них реалтайм распознавание сразу 9000 фрагментов. Если только так. Да и то возникает вопрос почему это нужно делать именно на FPGA, а не обычном сервере, может даже на GPU. Да и в целом выглядит не так просто. Не знаю на счет распознавания, не касался, но http без процессора делать слишком муторно и если не требуется особо высокой производительности явно не целесообразно. И на мой взгляд, хотя я не претендую на звание программиста, для тестового задания как-то слишком серьезно, если не на процессоре разумеется.
>>486429 Тут скорее всего дело в том что, помимо распознавания, там есть ещё много чего другого, и проще поставить одну жирную плисину, чем десяток процессоров.
>>486433 Ну вот выше и было предложено воткнуть в FPGA софт-процессор. В более-менее минимальной конфигурации софт-процессор займет ну 1000...1500 LE может быть. Попробуй сделай хотя бы в таком же объеме без процессора. Или вовсе можно применить какой-нибудь сок по типу цинка или циклона 5 сразу с армом внутри.
>>486445 Ну опять таки, если хард проц - то он один, а задач может быть много. Если софт проц, то их придётся несколько сувать, и ладно бы если так, но ведь скорость тоже может быть важна.
>>486447 >Ну опять таки, если хард проц - то он один, а задач может быть много. Да там хоть целый линукс может быть при необходимости. Оно не то что http, там кучу разных серверов можно крутить. >то их придётся несколько сувать Зачем? И даже если несколько, ну попробуй сделать эту задачу с меньшими затратами ресурсов не сделав в том или ином виде процессор. Покажи хотя бы как сделать "http" без софт-процессора, затратив при этом меньше ресурсов чем требует софт-процессор. >скорость тоже может быть важна. Ага, уже AVR справляется кое-как, а тут-то посущественней будет.
Зачем на пустом месте выдумывать лишнее? Чтобы были основания засунуть намного более жирную и дорогую FPGA? И чтобы оно еще потребляло побольше?
>>486452 >Оно не то что http Речь не только о http, но и о распознавании голоса, а ещё скорее всего, и о распознавании жестов и образов. Ни один хард и уж тем более софт проц для встроенных применений не вытянет всё сразу за разумное время, на то она и плис чтобы там распараллеливать задачи.
>>485423 > > В симулинке есть функция генерации кода VHDL для FPGA и ASIC, в которой даже человек, не умещий в плис, может собрать мышкой схему из графических блоков и сгенерировать прошивку для плис.
>>486452 Может хватит просто сцепить несколько готовых заголовков http с контентом. Ну content-length может и конечный автомат вставить в поток. Или просто зафиксировать длину пакета для начала. Я так себе сделал на питоне сервер на сокетах, чтобы не тянуть лишних зависимостей, и все браузеры съедают молча. Там Content-Type, content-length и заголовок. Три строчки.
>>486586 Только тут придется для начала делать отправку ethernet фреймов через MII/RMII, потом TCP и уже после этого http, а еще может захотеться DHCP. Не то чтобы это было совсем сложно, но попробуй сделать так, чтобы заняло меньше ресурсов чем на готовом софт-процессоре. И с распознаванием то же самое, на готовом софт-процессоре оно элементарно займет меньше ресурсов. Если не строить догадки об одновременном распознавании тысяч фрагментов, нет никаких причин делать иначе. Даже с видео, ну сделай отдельно вычислитель свертки или чего там еще требуется, а процессором им управляй.
>>486626 Ну в принципе да, Ethernet не настолько быстрая штука, чтобы процессор не справлялся. Tcp/ip я бы взял готовый, уже делал так раньше. rmii или что там было не помню, но тоже или опенсорсный брал, или бесплатный от вендора. Так что я бы сказал что это легко, если не в первый раз разбираешься. В первый раз мутновато.
>>486630 Делали на встроенном triple speed ethernet + простой конвертер mii to rmii из интернета. В 5CE4 влезло с запасом, для сетевого стека на nios понадобилась внешняя 32 м оперативка. Есть в примерах для de2-115 и других плат.
>>486694 >для сетевого стека на nios понадобилась внешняя 32 м оперативка. Многовато, там по идее десятков килобайт хватит. Похоже слишком у них объемистые HAL и прочие. Как-то использовал с микроблейзом код для AD9364 от самих AD. И тоже пришлось использовать внешнюю память, хотя было бы чего... Хорошо хоть дальше макета дело не пошло. Там еще, если я правильно помню, из коробки вместо newlib была жирная glibc.
>>397766 (OP) https://habr.com/ru/post/595933/ Школьники уже проектируют. Пиздец. Россия в какую то северную корею в этом плане превращается - то 9летняя мгушница, то 15летние синьоры, теперь вот это. Притом что детей то рождается с хуев нос и в семье алкашей большинство - но пропаганда какой то пиздец показывает, сплошные джимми нейтроны. >>486208 Каков пиздец. Яндексовские попытки в настоящее айти а не копипаст гугла каждый раз отдают мухоморной шизоидностью Список то сам дашь? >>438619 >этому надо учиться в вузах Прогиб не засчитан, начинал вообще с пайки телефонов в сц.
>>426658 Вот ты блядь - 19 годиков? Прям сисадмин а не эникей лол?
Подскажите плис Есть плата на Xilinx Spartan-6 с камерой (под задачи машинного зрения) CMV4000 Насколько сложно скопировать ее (видимо слить прошивку) и делать такие +/- же? Есть бюджет под это в пару миллионов рублей
>>489432 Слить прошивку скорее всего почти нереально, если конечно разрабы не дураки. Реверсить плату придется имея на руках хотя бы одну запасную. Топологию придется все равно разводить с нуля, а это помимо по один из самых длительных этапов.
>>489441 Зависит от текущих ресурсов. Если у вас там пачка рукастых схемотехников-топологов с опытом и везение (вдруг прошивка не зашифрована) - то тогда можно и отреверсить. А если имеется штат для разработки такой платы и по к ней, то так конечно быстрее. Тем более что тут кроме сфп (?) и лвдсов вроде ничего сложного. Основная сложность небось на обработке внутри плис.
>>489478 > Слить прошивку то, как раз, - одна из самых простых операций. В коммерческих йобах как раз первым делом защищают от считывания и хотя бы жтаг не распаивают.
>>489506 >Как? Что сделал бы я - прямо в верилоге написал конченый автомат, который считывает серийный номер ПЛИС или ещё чего-нибудь на плате и выводит сообщение "идите нахуй" в уарт. Без понятия есть ли в ПЛИС уникальный номер и можно ли его считать.
>>489479 >А то! Но чуваку повезло, там только 75+ камни в списке. Это только камни, где ключ хранится в SRAM+батареечка.
В остальный шестых спартанцах он прошивается во внутренний регистр FUSE_KEY (нечитаемый, естественно, стандартными средствами, укладывающимися в бюджет 2кк дерева). Битстрим точно так же шифруется.
>>489593 А, хотя нет, я проебался, FUSE_KEY есть только на тех же моделях, где поддерживается хранение ключа в SRAM. Позор Хилым, совсем не заботятся о том, как зарабатывать на хлеб простым разработчикам. AMD приде - порядок наведе!
>>489594 > AMD приде - порядок наведе! Сначала второй раз убьют форум, потом введут онлайн верификацию подлинности плис по подключению красненького платформ кабеля к плис и интернету и заживём!
Небольшой вопрос: На Верилоге насран КИХ на RAM, где память сделана внешними блоками и вычисление выходного отсчёта выглядит как: accumulator <= accumulator + ram * rom;
Умный (неиронично) компилятор Квартуса суёт умножение в аппаратные перемножители. Как ему сказать, чтобы он делал перемножитель на LE?
>>490147 Поскольку один хуй никто не ответил, то расскажу, как это делается у Хилых, а ты, может, по аналогии найдешь похожий метод у Интела.
Цепям, регистрам, модулям и т.д. можно задвать атрибуты, на которые будет смотреть синтезатор. У Хилых, чтобы принудительно заставить синтезатор отказаться от использования DSP, нужно задать атрибут ( use_dsp48 = "no" )
>>492308 Да, Хилых = SelectIO Wizard + LogiCORE CIC Compiler + AXI4-Stream FIFO + Microblaze + Uartlite Конкретная плисина зависит от того, сколько SRAM тебе в ней надо под данные, остальное особых ресурсов не требует. Если хранить их долго не нужно (просто скидывать в уарт по мере готовности), то подойдёт минимальная плисина, для которой поддерживается CIC Compiler (Spartan 6 какой-нибудь самый дешёвый).
>>492345 >Спасибо тебе, анон! В отличие от того анона я бы посоветовал не использовать процессор. Запись и считывание из памяти это всего лишь пара счетчиков. Полноценный UART тебе похоже не нужен, хватит только на передачу, что совсем просто. Руками такое быстрее написать, чем разобраться с этими IP ядрами. Дециматор, если лень писать руками, можно нагенерить в матлабе через fdatool/filterDesigner.
>Нужно хранить не более 1 млн семплов, однократно проведя оцифровку. Это дофига. Это 13,44 МБит. Теперь смотри скриншот. Поэтому целесообразно использовать внешнюю память. Либо сразу передавать на комп, например через Cypress.
Насколько реально в домашних условиях из devboard с aliexpress собрать цифровую начинку для ADC 8 bit 1 Gs/s с выходом, либо: 1. 16 пар LVDS, interleave, 500 MSPS 2. 4 пары LVDS, 2 Gs/s
Интересно, продаются ли вообще под такие задачи готовые девборды с ПЛИС на али? Плату для АЦП придется делать самому.
>>494601 Самое простое >add wave знак_умножения Добавит все подряд.
Другой очень простой вариант, если предыдущее не подходит https://wiki.tcl-lang.org/page/catch >catch {add wave A} >catch {add wave B} Можно проверить сработало ли add wave подобным образом: >if [catch {add wave A}] {echo {vse propalo}} Вобщем, если задаешься подобными вопросами, то должно быть стоит прочитать учебник по Tcl.
Если и это не подходит, то можно изучить "ModelSim Command Reference Manual", только возможно проще будет сделать поиск объектов (этих А и Б), чем получить директивы препроцессора.
>>494601 И еще, если А и Б не исключать этими директивами, то вряд ли это замедлит работу моделсима и тем более это не повлияет на результат синтеза. Я бы не накручивал кучу ifdef вокруг этой фигни. Также, по моему, там где это возможно лучше обойтись параметрами, без препроцессора. Потому что такое сложнее проследить - откуда, что и где берется.
>>494672 >add wave знак_умножения Всё подряд добавлять не вариант, сигналов много, не все они нужны, плюс есть настройка отображения сигналов, порядок вывода и группировка. Да и
>catch {add wave A} Ага, спасибо, работает. Но это надо для каждого сигнала прописывать, сразу несколько не укажешь, то есть не получается так catch { add wave A add wave В}
В общем нашёл вот такую команду, пропускает добавление всех сигналов которых нет onerror {resume}
>можно изучить "ModelSim Command Reference Manual" Мануал смотрел, но на эту тему ничего не нашёл, может в глаза долблюсь, а может англюсик плохо знаю. А было бы неплохо если можно было бы передать директиву в tcl.
>>494824 >сразу несколько не укажешь, то есть не получается так Ну почему же? Вполне можно циклом >foreach w {A B C и_так_далее} {catch {add wave $w}} Можно написать чуть лучше, например {A B C и_так_далее} предварительно сохранить в отдельную переменную. Или можно все это оформить в отдельную процедуру. >proc add_waves_list {wl} {foreach w $wl {catch {add wave $w}}} >add_waves_list {A B C и_так_далее}
Какого лешего 1'd1 + 1'dZ даёт неопределённое значение? Почему в бинарных операциях Z-состояние ведёт себя логичным и естественным образом, а в арифметических такая хрень? В чём тут сакральный смысл?
>>497662 >Почему в бинарных операциях Z-состояние ведёт себя логичным и естественным образом, а в арифметических такая хрень? По-моему, оно себя повело логично и естественно. Z мда, теперь будет триггерить каждый раз это, по сути, обрезанный провод, торчащий вникуда и ловящий любые наводки. В бинарных операциях "логичным и естественным" тоже будет X, кстати, если речь не о |1'b1 или &1'b0
Впрочем, похуй на это всё, т.к. FPGA внутри себя всё равно не умеют в Z.
>>497692 > кстати, если речь не о |1'b1 или &1'b0 Об этом и говорю.
>обрезанный провод, торчащий вникуда Ну т.е. на результат сложения он влиять не должен. Хотя, если сложение представить в виде сумматора, то на один вход подано значение а на другой высокий импеданс, как сумматор на него отреагирует неизвестно. Пожалуй ты прав.
>Впрочем, похуй на это всё, т.к. FPGA внутри себя всё равно не умеют в Z. Я пытаюсь промоделировать процессы на плате, а на ней та ещё вакханалия. Там есть два аналоговых сигнала сходящихся в одну точку, да так что они суммируются между собой, один из них может отключаться через специальный двухсторонний мультиплексор. Решил проблему как-то так assign Result = Sig1 + (Sig2==='bZ)? 'd0 : Sig2;
>>498097 Аналоговый сигнал не бывает 'd0, это цифровой сигнал по определению. Ты хернёй какой-то страдаешь, найди нормальный инструмент для моделирования аналоговых цепей
>>498166 >нёй какой-то страдаешь, найди нормальный Я в курсе. Но почему бы таким образом и не промоделировать процессы на плате? Нормальный инструмент для моделирования аналоговых цепей мне не нужен. Мне нужно смотреть как мой проект взаимодействует со схемотехникой на плате.
И кстати, с чего ты тут бугуртишь? >>497692 >мда, теперь будет триггерить каждый раз
>>498264 Ну что ты так сразу? Мало ли что он там делает. В целом вполне логично и даже необходимо написать тестбенч, который имитирует все необходимые входные сигналы для FPGA. Я, например, для имитации АЦП часто формирую в тестбенче сначала типа аналоговый сигнал в формате с плавающей запятой, а потом складываю с шумом и квантую по уровню.
>>498287 Все равно можно скачать через впн или прокси.
>В 8051 надо вкатываться может начнут производить. Если ты про российское производство, то все-таки 5578ТС024 вероятно производят, в крайнем случае точно смогут делать еще ХС4Т без толерантности к 5 В. 8051 и так делают, а по доступности оно очевидно будет одинаково, что 8051, что ТС024.
>>498291 А у них нету более-менее полностью своего, на TSMC они делают, по крайней мере Gowin. В том числе по этой причине официально отказываются нам их продавать. Да и мелкие эти Gowin. Помимо этого сейчас сильный дефицит всяких микросхем. Основная проблема, по крайней мере для любителя, это не санкции, а кризис. Более-менее доступно в основном старье, такое как третий циклон, с четвертым уже посложнее, а с MAX 10 совсем плохо. Так что советую Intel, тем более что верилог везде один и тот же.
>>498295 > 5578ТС024 Может и производят, но про топовые 64 и 104 нам сказали "надо потерпеть, пишите позже". > Gowin Это совсем не то. У них есть бмти, фудан и цетц. Которые делают клоны седьмой серии на собственной китайской фабрике SMIC (28 нм). Не сказал бы, что дико горят желанием работать с РФ, но и оттуда бывают отказы из-за военки.
>>498300 >Это совсем не то. У них есть бмти, фудан и цетц. Не особо интересовался, ну значит по этой части был не прав. Но первый вопрос был в контексте вката, очевидно на любительском уровне. А где все это сможет купить любитель? На алишечке можно купить Intel, Xilinx, Lattice и платку с вот этим Gowin. Я вот присматривался к китайским GPixel, у них есть весьма неплохие матрицы, но для любительских поделок проще купить сони, только и с ними не все так просто.
>>498264 Хера ты подорвался, а почему бы и нет? Вывел шину в моделсим, настроил аналоговое отображение и сижу смотрю синусы. Чё не так? >Видимо, ты какой-то хуесос из оборонки А ты часом не хохол, дружок, что так рвёшься?
>>498325 Вывести изображение вполне возможно, но кто тебя знает... В целом даже мелкой CPLD хватит для формирования VGA сигнала с полосами. Но я бы не советовал брать говен, по крайней мере программное обеспечение для этой фиговины выглядит пока сыровато. А также, оно продается только в виде этой платы, саму микросхему отдельно на алиэкспрессе не купить.
>>498276 Почитай про плис, посмотри видосики, скачай крякнутый квартус с торрентов или у иранцев/китайцев, потыкайся в нем. Купи простенькую плату с Altera Cyclone на али за 5 к типа такой: https://a.aliexpress.com/_DFkACxV
Официальные каналы поставок закрыты, но в принципе все по прежнему можно достать. Мелкие циклоны 3 и 4 есть на али.
Еще можно попробовать вкатиться в Xilinx (вроде бы есть китайские клоны) или Gowin (китай).
У нас делают для оборонки 5576ХС6Т, 5578ТС024 и еще что-то, стоят в районе 100-200 к. Там тоже квартус + свой трассировщик за бабло для 024. Миландр хочет выкатить свою мелкую ПЛИС Бриллиант с IDE и всей хуйней в следующем году. ДЦ Союз делает дорогую радстойкую мелочь, хз чо у них с ПО. У китайцев есть еще pango, но там нихуя не понятно с регистрацией и ПО.
>>498097 У тебя эти аналоговые сигналы укладываются в логические уровни ПЛИС? Фронты нормальные? Если нет, нужно что-то промежуточное типа триггера Шмитта, компаратора или ацп, можно поймать метастабильность.
>>498305 >Вывел шину в моделсим, настроил аналоговое отображение и сижу смотрю синусы. А толку с этого для аналогового моделирования? Как ты будешь моделировать прохождение твоего синуса через RC-цепь, к примеру? ололо преобразование Лапласа плюс билинейное преобразование, а потом вместо дебагинга платы закопаться в дебагинг модели
>>498342 >Как ты будешь моделировать прохождение твоего синуса через RC-цепь А мне это и не надо. Мне важно знать что синус в принципе дошёл куда нужно. Создал простую модель ЦАП/АЦП, в ней сделал SPI, синус заходит в АЦП и выходит от туда в последовательном виде через SPI. + ещё кой-какая схемотехника на плате.
Посоны, поясните плюсачу-наносеку, как так выходит, что POPCNT выполняется за такт? Там какое-то compressor tree в железе, адекватного объяснения по-программистски про это я не нарыл.
>>498405 Странный вопрос. 1) Чем оно отличается от сумматора, который также "выполняется за один такт"? 2) Существует деление цифровых устройств на комбинационные и последовательностные. Комбинационные это у которых состояние выхода не зависит от предыдущих состояний входа, а только от текущего. Очевидно у комбинационных устройств нет памяти и тактовый сигнал к ним отношения не имеет. Последовательностные устройства наоборот имеют память, например регистр, запоминающий по фронту тактового сигнала что было подано на его вход с комбинационного устройства. Очевидно что popcnt, как и любую булеву функцию (или как погромисты называют, чистую функцию), можно сделать в виде комбинационного устройства.
>>498405 >Там какое-то compressor tree в железе, адекватного объяснения по-программистски про это я не нарыл.
Это дерево сумматоров. Первый уровень сумматоров попарно суммирует единичные биты. Второй уровень попарно суммирует результаты первого, и т.д.. Каждый следующий уровень количество сумматоров падает вдвое, но сами сумматоры усложняются, чтобы уметь складывать всё большие числа. И так пока не остаётся одно значение.
Почему это выполняется за один такт — потому что между уровнями сумматоров нет регистров. Когда изменяются значения на входе каждого сумматора, то он сразу начинает генерировать выходное. Регистром защёлкивается только итогове значение, и в этой схеме главное — чтобы сигнал успевал проходить через все уровни в течение одного такта.
Так, интересно, но непонятно. Мой уровень - знаю виды триггеров, в универе рисовал логические функции в microCAD, по работе приходится местами опускаться до ассемблерных оптимизаций под x86, Agner Fog осилил, мануалы от вендоров - нет, английский свободный. Нужна легкая литература по теме строения современных CPU.
>и в этой схеме главное — чтобы сигнал успевал проходить через все уровни в течение одного такта.
А сколько уровней может проходить сигнал в типичном CPU? 128-битный компьютер невозможен с сохранением текущих частот?
>>498496 >Так, интересно, но непонятно. Хоть про основы булевой алгебры на википедии прочитай. И вовсе не обязательно что popcnt прям везде считается за такт, где-то может в АЛУ вовсю конвейер используется и результат выдает каждый такт, но с задержкой во сколько-то тактов.
>А сколько уровней может проходить сигнал в типичном CPU? Уровней чего? >128-битный компьютер невозможен с сохранением текущих частот? Чтобы компьютер был полным по Тьюрингу, достаточно лишь одной поддерживаемой арифметической операции - NAND и еще какой-нибудь инструкции условного перехода. Очевидно что скорость побитного NAND двух регистров не будет зависеть от их разрядности. Поэтому можно сделать комп и с большими частотами и с разрядностью хоть в тысячи бит, только смысл? А еще, что ты будешь делать с int даже на 128 бит? Более того, у тебя комп местами и так выполняет операции с данными по 512 бит, AVX-512 же.
>>498496 >А сколько уровней может проходить сигнал в типичном CPU? Вопрос смысла не имеет, в каждом случае скорость работы — результат компромисса. Можно расположить дерево сумматоров супероптимальным образом, но в составе CPU это работать не будет, т.к. делается в ущерб оптимальности других блоков.
>128-битный компьютер невозможен с сохранением текущих частот? Возможен. Задача усложнится, но её можно решить дополнительными ресурсами (пространством на кристалле). В конечном итоге это определит цену для пользователя, и рыночек порешает. Компромисс выбирается на всех уровнях.
>>498515 >Задача усложнится Не совсем так, все зависит от набора команд, как я написал чуть выше.
>и рыночек порешает. Тут в другом дело. 64 бита понятно откуда взялись - выросли объемы памяти, только и всего. Смысл от операций с int64_t за одну инструкцию может и наблюдается, но минимальный. А смысл от int128_t в прикладных программах? Совсем минимальный. Есть еще SIMD, но оно и так в наличии, а применяется ограниченно.
Написал универсальный демультиплексор, можно указать количество выходов через wAdr и ширину входа/выходов через wBus, т.е. wAdr=3, wBus=4 это ширина входа/выходов 4 разряда, количество выходов -- 8. На Adr подаём номер выхода на который нужно вывести значение с входа In, на остальных выходах будет 0. module Test #(parameter wAdr=3, wBus=4) (input [wAdr-1:0]Adr, input [wBus-1:0]In, output [2⚹⚹wAdr⚹wBus-1:0]Out); assign Out = In << (Adr⚹wBus); endmodule
Теперь нужно всё тоже самое, только на остальных выходах вместо нулей должно быть 'bZ.
>>498769 Если нужно, то делай. Или это был вопрос? Я вижу два варианта: 1) Сделать с помощью конкатенации assign Out = {{сколько-то{1'bZ}}, wBus, {сколько-то{1'bZ}}} 2) Сделать Out как reg, далее в always Out = {2⚹⚹wAdr⚹wBus-1{1'bZ}; Out[сколько-то:сколько-то] = wBus;
>>498912 Но ты, конечно, ещё бы для дедушкиных часов с кукушкой поддержку системверилога спросил. Её и в актуальных-то тулах запиливают с пятнадцатилетним отставанием от принятия стандарта, а ISE дропнут уже хуй знает сколько. Так что никак, сорян.
>>498937 Если так, то херня из под коня этот ваш ксилинкс, в кактусе 9 и то есть. Уж не знаю на сколько она там полная, но во всяком случае двухмерные массивы компилирует.
>>499389 Может банально кончились, а удалять/перевыставлять не хотят. Или вконец уже ебанулись (WaveShare и раньше дешевизной не отличался, но если в каком-нибудь 2013 году им альтернатив не было, то сейчас то…).
>>499603 >Наёб там фирменный, британский, им. Клайва Синклера: экономия на спичках. Всего-то? Я уж испугался. Думал, там кристаллы не настоящие. А тут всё ппосто в традициях топазасвоиденьги с китайских площадках.
Есть вышка по электронике, есть ли какие-нибудь перспективы в ПЛИСах и цифровом дизайне в целом?
Имеет ли смысл ебать себе мозг огромным количеством разноплановой информации (цифровая схемотехника, HDL-языки, тайминги, всратые инструменты вроде квартуса и моделсима) или лучше учить какой-нибудь питон?
Был небольшой опыт работы с Verilog-ом и с электроникой в целом. Вообще, уже как 3 года РАБотаю, а в деньгах стал получать даже меньше. Есть ли жизнь технарям вне IT?
>>499887 Никаких перспектив. Поставки мало-мальски нетривиальной электроники в рашку ВСЁ (в достаточных для промышленного применения объёмах, ради которых имеет смысл тебя нанимать) и можешь даже не рассчитывать, что они возобновятся после завершения броска пыньгуста как и вообще в ближайшие несколько десятков лет.
>>499898 Но не для всех вещей же нужно большое количество ПЛИСок? Например, если компания занимается soft IP, то достаточно пары отладочных плат на инженегра?
>>499915 А для кого она будет пилить эти IP? Если для иностранного заказчика, то после броска пыньгуста они всё. Если для отечественного заказчика, то ему под разрабатываемые IP нужны плисы которых нет, поэтому они, соответственно, тоже всё.
Хочешь осваивать перспективную инженерную профессию — рекомендую техобслуживание авто зарубежного производства со специализацией на отсутствии родных расходников и запчастей.
>>499922 Прикольно. Ну, если анону удастся туда устроиться, то можно, пожалуй, не спешить с переквалифицированием в техобслуживание без родных расходников.
>>499923 Ну так вот, этот анон я хочет узнать, если смысл вкатываться в это дело, учитывая, что по запросу "Verilog" хедхантер выдает 31 вакансию в ДС-2, а по запросу "Python" 1286 вакансий?
>>499925 Да ты и сам понимаешь. Задающиеся вопросом "имеет ли смысл?" на такое не пойдут, потому что им предстоит за эти ультраредкие вакансии конурировать с задротами, которые будут заниматься вериложеством по приколу за еду. Такая же хуйня с микроконтроллерами.
>>499887 Да, если тебе это интересно. Поспрашивай в бывшем универе, кабанчики часто там тусуются.
Можно найти вкусную вакансию в частной конторе, можно податься в импортозамещение или оборонку, во второе сейчас вливают много денег. Еще есть смежная разработка цифровых интегральных схем (verilog, system verilog), сейчас тоже хуеву гору всего будут делать. Хуево то, что нет удаленки, иногда нужно сидеть над платой с осциллом.
Санкции несколько осложняют работу, но все по прежнему завозят. Кризис полупроводников затронул и ПЛИС, по всему миру выросли цены, на диджике и маузере пустые стоки. Есть доступные китайцы типа Gowin и вроде бы клоны хилых. Еще есть чисто китайские pango и радстойкие casc bmti. Из наших у ВЗПП остались несколько радстойких ПЛИС, Миландр хочет выкатить что-то простенькое в следующем году.
Надо реализовать деление. Говорят деление как-то можно заменить умножением. Я только до такого сумел додуматься: В / С = А; можно преобразовать в 1/(1/В х С) = А Но как взять обратное число, ведь это тоже деление? Или есть какой-то другой способ?
>>500497 Погугли CORDIC. Это алгоритм, который использует только сложение и битовый сдвиг, и при определённых параметрах из исходных чисел y и x позволяет получить y/x. Количество действий известно заранее (одна стадия алгоритма даёт плюс один бит точности результата), поэтому на нём можно сделать аппаратный конвейер. Это не единственный алгоритм деления, подходящий для конвейера, но самый простой.
>>500497 >Я только до такого сумел додуматься: >В / С = А; >можно преобразовать в >1/(1/В х С) = А
Всё проще: В/С=А → B*(1/C) = A
Есть варинты получить 1/C из C при помощи приближения полиномами (ряд Тейлора, полиномы Чебышева), в отличие от CORDIC они требуют меньше стадий (два бита точности на стадию алгоритма или даже больше), но каждая стадия требует аппаратного умножителя.
>>500522 В кордике нужны таблицы, поэтому не факт что оно займет меньше ресурсов чем деление "в столбик" >>500507 Ну и можно еще предложить делить банально путем вычитаний, медленно конечно, но бывает что и такое подходит.
>>500525 Таблицы для деления кордиком выглядят так: 100..., 010..., 001... и т.д. Вспомнил ещё один метод вычисления 1/C — метод Ньютона: x0 = (середина диапазона ожидаемых результатов), xn+1=xn*(2-axn) пожалуй, это наилучший варик.
>>500507 >>500522 >>500523 >>500525 >>500531 Ясно, ничего простого нет, а я то тдумал есть какая-то хитрость. Тогда действительно, проще деление в столбик организовать.
Ёбаный пиздец. Скажите, это в верилоге по стандарту положено, что когда происходит операция с signed и unsigned, то оба операнда ПРИВОДЯТСЯ СУКА К UNSIGNED, и знаковый бит signed становится одним из числовых разрядов? Или это только у iverilog такие приколы?
>>504760 Хуит к хуиту. Оно сделало одну неявную конверсию вместо другой. Только из всех вариантов неявной конверсии оно выбрало тот, в котором складываеь (signed) -1 и (unsigned) +2, присваивая результат в (signed) большего размера, совершенно логично получаешь (signed) +257. Кому такое может понадобиться блядь вообще?
>>397766 (OP) Шёл, нашёл, еле ушёл, какую-то промышленную хуйню. (после оживления оказался каплеструйным принтером) Ясен пень, что мне дома он нахуй не нужен. Покупать печатную головку, емкость для чернил и сами чернила, за сотни тысяч деревянных, я не планирую. Внутре оказалась интересная начинка. Думаю попробовать хоть вкатится в FPGA на халяву. Что скажете? Пойдет для первых шажков?
ПЛИСаны, скажите есть ли какие-нибудь бесплатные верилог программы, через которые можно работать с алтерой? Кроме как квартуса. Валяется у меня несколько плат МАХ-2, вот думаю, что-нибудь на них замутить.
>>507990 >Кроме как квартуса. Вендорлок. Прошу любить и жаловать. Нету ему аналогов или замены.
MAX II если не ошибаюсь даже в веб версии старых квартусов без лицензий работал. Проблемы могут начаться при попытке использовать IP Core. В MAX II (и подобных мелких CPLD) SignalTap нет. Даже не ищи.
>Стоит ли? Если тебе льстит мысль, что ты смог в параллелизм в отличии от большинства остальных погороммистов, то да. В остальном же какой-нибудь линуксойд может получать и 100 и 200к.
>>508054 >Если тебе льстит мысль, что ты смог в параллелизм в отличии от большинства остальных погороммистов, то да. Ну достаточно сильно льстит. Но больше хочу заниматься прототипированием контроллеров шин данных, SIO, чипсетов и прочих микрух специального назначения. Я просто работал на проекте и делал примерно то же для в симулятора. Модельки писал. Такое вообще бывает на нашем рынке? >В остальном же какой-нибудь линуксойд может получать и 100 и 200к. Сейчас собственно и получаю 200к, а на ПЛИС вообще реально выйти под такие ЗП и выше? Все-таки узкоспец.
Короче, надо генерить DSSS сигнал с частотой самой расширяющей последовательности ну так 300-500 МГц. Т.е. плисина получает на вход информационный сигнал (~40-80 Мбит/с), сама внутри генерит ПСП с частотой 300-500 Мбит, перемножает информационный на ПСП и результат подается на какой-нибудь пин. Какая самая дешевая плисина это осилит? Пусть будет код голда длиной 512 или 1024
>>508119 >Но больше хочу заниматься прототипированием контроллеров шин данных, SIO, чипсетов и прочих микрух специального назначения Это куда-нибудь в зеленоградские конторы, по типу Миландра, которого обанкротили, Микрона и иже с ними. Но зп там тоже не очень. >а на ПЛИС вообще реально выйти под такие ЗП и выше? Все-таки узкоспец. Ну опять таки, смотря какие задачи будешь решать. Если могёшь в ЦОС на достойном уровне - то вполне, особенно в ДС.
>>508121 >Какая самая дешевая плисина это осилит? Если в общем случае, то почти любая с serdes. Если рассматривать алиэкспресс, то это наверное все начиная с третьего цмклона. Хотя сериализатор можно и снаружи прикрутить, даже проще будет. Но дальше начнутся нюансы. Куда потом подавать все это? Сразу на модулятор? Тогда по любому придется задуматься о джиттере на выходе.
И у тебя не стыкуется картинка и слова. Если у тебя BPSK, как намекает картинка, то на один бит нужно передавать послельность целиком. И из 40-80 Мбит при такой длине будет многовато. Или я что-то не понимаю.
А еще коды Города не могут быть 512 и 1024, только 511 и 1023. Если дополнить эти до 512 или 1024, то даже на нормальном спектроанализаторе будет немного заметна разница.
>>508205 >Если у тебя BPSK, как намекает картинка, то на один бит нужно передавать послельность целиком. И из 40-80 Мбит при такой длине будет многовато. Или я что-то не понимаю. Вот этот момент я сам не уяснил. Я так понял что 1 бит просто много длиннее чипа, но вот должна ли быть вся последовательность на бит - непонятно. Я так понял достаточно чтобы 1 бит был в 8 и более раз длиннее чипа, этого достаточно. Но с точки зрения задачи тут не принципиально >Если в общем случае, то почти любая с serdes. Если рассматривать алиэкспресс, то это наверное все начиная с третьего цмклона. А всякие дешевые gowinы не осилят это? >Хотя сериализатор можно и снаружи прикрутить, даже проще будет. Поясни пожалуйста, что ты подразумеваешь под сериализатором >Куда потом подавать все это? Сразу на модулятор? Нет, из этого сначала потребуется сформировать дифференциальный сигнал причем биполярный, а не однополярный
>>508238 ПЛИС дешёвые максимум 200-300 МГц осилят, дальше не сойдутся тайминги. Поэтому нужен на выходе модуль, который из параллельного сделает последовательный быстрый сигнал. Это и есть сериализатор от слова serial последовательный. Это может быть внешний чип. На таких частотах лучше всего сразу из ПЛИС выдавать дифсигнал, если конечно сериализатор внутренний (serdes). В ПЛИС есть в отличие от контроллеров возможность выбрать выходной драйвер почти для всех портов, в том числе есть просто дифференциальный, lvds.
>>508251 >На таких частотах лучше всего сразу из ПЛИС выдавать дифсигнал >В ПЛИС есть в отличие от контроллеров возможность выбрать выходной драйвер почти для всех портов, в том числе есть просто дифференциальный, lvds. О, а может там можно и с common mode 0 V? Чтоб как на пикче было
Вопрос такой. Реально ли собрать 100 мб езернет на рассыпухе? Ну типа всё кодирование делать в плисине, а преобразователь уровней собрать на транзисторах?
>>508394 А как заставить эту херню "заткнуться"? Т.е. я хочу иметь возможность выставить там уровень 0, когда нет сигнала. Если мы просто сместим это на несколько вольт, то у нас же при нуле на выходе будет логический минус, а не 0, не?
>>508480 Ну да, когда синфазное напряжение с буфера падает с условных 1.5В до нуля, синфазное напряжение с блокирующих конденсаторов на какой-то момент упадёт с нуля до -1.5В, но конденсаторы быстро разрядятся через подтягивающие резисторы, и напряжение снова станет нулевым.
Но выключенный буфер вряд ли выдаёт ноль на обе фазы. Скорее, он переходит в Z-состояние, поэтому никакого скачка синфазного напряжения не будет.
Но если тебе надо конкретно прям включать синфазный ноль с буфера и чтобы с барьерных конденсаторов ничего прям не падало ниже -0.5В, можешь добавить стабилитроны на землю, которые будут оперативно сливать заряд при бросках напряжения ниже допустимого.
>>508673 в статье тупо подключили к плис напрямую, поиграться хватит. Если надо 100мбит фулл дуплекс со всеми автополярностями и с полным соответствием стандарту, лучше прочитать стандарт https://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=68. Но на транзисторах и логике это будет здоровый ящик гарантированно, смысл, если есть MII/RMII - ethernet чипы?
>>508459 10 Мбит без проблем можно, там манчестер, на марсоходе статья была. В 100 Мбит 3 или 4 уровня сигнала, нужен примитивный резистивный ЦАП и прием там тоже хитровыебанный. Почитай даташит на какой-нибудь ksz8081 или dp83848, там все написано. Проще купить ethernet phy за 200 р. В обоих случаях нужен трансформатор, например, HX1188 или от мстатора.
>>508795 >100мбит фулл дуплекс Да. >со всеми автополярностями Если имеется в виду автоопределение приёма/передачи то можно и без них. >нужен трансформатор Трансформатор - не проблема.
>>508795 >нужен примитивный резистивный ЦАП Могут ли здесь возникнуть трудности? >прием там тоже хитровыебанный Т.е. нужен АЦП? На резисторах собрать можно?
>есть MII/RMII - ethernet чипы >Проще купить ethernet phy С закупкой импорта дела всё хуже и хуже.
>>508843 Так ты и сокращай, только как-нибудь иначе. Ну там например вместо двух микросхем fpga+конфигурационных память возьми одну микросхему MAX 10 (если по объему хватит). Можно же без столь радикальных шагов обойтись и номенклатуру сократить. Реально то наоборот поставки импорта надёжнее. Хотя бы как с Миландром вышло, да и со многими другими. У меня ещё из недавнего ЦАП от нииэт отвалился.
>>508854 >Так ты и сокращай Так уже всё и сокращено, остался спартан 6 и флешка к нему. А вот Миландра - да, больше нет, а там то как раз и были трансиверы, притом сразу два, как раз то что надо. Программка там крутилась не сложная, её можно и в плис перенести, но трансиверы теперь надо ставить внешние. Вот я и думаю как бы обойтись без них.
>>508920 Скорее всего на ПЛИС потребуется дополнительная оперативка для полноценного сетевого стека.
Когда делал triple speed ethernet на циклоне, нужна была внешняя оперативка (32 Мбит sdram), во внутренней он не помещался. У хилых какое-то аналогичное решение было. По сравнению с миландром разводка такой платы - это просто пиздец, сотня цепей, выравнивание дорожек, bga и 2-3 питальника. И компоненты не самые доступные.
Если что, 10 и 100 Мбит полностью совместимы. Возможно, хватит какого-нибудь простого варианта на 10 Мбит с отправкой сообщений без полноценного стека, как у марсохода.
Я бы посмотрел в сторону stm32f407/cks32f407/apm32f407 + ethernet phy или ch32v307, но пока ни то, ни другое не использовал.
Идеальный вариант - выкинуть ethernet и заменить на rs-422/485/can, если скорость позволяет.
>>508920 это просто гениальная идея выкинуть ширпотребный фронтэнд, который всегда будет у китайцев, и вместо этого загрузить плисину разбором 100 мб/с последовательных данных, зная что такие плис всегда будут под санкциями хотя какой суперлогики я хочу от оборонки
>>508943 >макс 10 вместо спартана Я с ним не работал, в даташит лезть сейчас лень. Если можешь скажи, там есть ПЛЛ, полноценная двухпортовая память, аппаратные умножители? Сдаётся мне не влезет мой проект в него.
>без замены трансивера Так в этом то вся проблема, Миландр отвалился и теперь нужна замена трансиверам. А со спартаном и с его флешкой проблем пока пока нет.Но в долгосрочной перспективе надо думать и о его замене.
>>508972 >потребуется дополнительная оперативка для полноценного сетевого стека У нас только канальный уровень, без этих ваших модных тисипи/айпи.
>10 и 100 Мбит полностью совместимы >Возможно, хватит какого-нибудь простого варианта на 10 Мбит 10 мало, нужно 100.
>Идеальный вариант - выкинуть ethernet и заменить на rs-422/485/can К сожалению нет. Позняк метаться. Решение принято, ТЗ утверждено, документация заложена, ответная аппаратура закуплена.
>>509037 >там есть ПЛЛ, полноценная двухпортовая память, аппаратные умножители? Да, все это есть. Единственный нюанс в инициализации памяти, версия без АЦП не умеет инициализировать память, так что если оно нужно, то необходимо брать чуть более дорогую версию.
>>514640 Если еще актуально. Потом жмешь на "Files", там где ты вопрос нарисовал, кажется правой кнопкой мыши под рукой сейчас нет квартуса, а действия эти выполняю уже на мышечной памяти, и добавляешь в открывшемся окошке файлы.
> потом в меню new создал файл .sv Это не обязательно, можно точно так же хоть в проводнике (или еще чем) создать пустой файл, мне так даже удобнее как-то. И я бы перед тем как тыкать в квартусе, проверил бы эту ерунду в моделсиме. Тем более такую "лабу" и вовсе синтезировать как-то особо ни к чему.
>>514640 Я учусь в квартусе кодить. С добавлением файлов в проект разобрался. А как сделать назначение пинов в редакторе? У меня китайская дев плата, на которой стоит альтера EP4CE6E22C8N. В настройках модели чипа была только EP4CE6E22C8 без N на конце, я указал ее. Открываю редактор assignments, а там в поле Value непонятно как задать номера пинов. Какой-то список выпадающий. У меня квартус 22.1.
>>514650 >А как сделать назначение пинов в редакторе? Если еще актуально, то лучше натыкать в "Pin Planner". Там сразу видно к какому банку относятся выводы и все конфликты проверяются. Удобно вобщем, особенно при создании своих устройств.
>>514652 Он сам там появляется в выпадающем списке, нужно только драйвера установить. Это если не переглючит, но такое только в лялихе замечал.
>>514653 >нужно только драйвера установить. Ну и сам бластер воткнуть разумеется. Вот прямо в "Available hardware items" появляется автоматом. Остается только выбрать в "Currently selected hardware".
>>514654 А у меня даже типа "USB Blaster" нету. Сам бластер воткнул, в диспетчере устройств он определяется как USB Blaster, а квартус его не видит. ЧТо делать?
>>514656 >ЧТо делать? Не знаю. Но окошко "Add hardware", которое ты открыл, открывать точно не нужно. Это для того что в LPT втыкается или по сети работает, для USB это никаким боком. Попробуй перезагрузить что-ли, под виндой с таким не сталкивался. А в лялихе помогает прибить процесс jtag-что-то там.
Открыл видео наугад, а внизу описание >- Настройки Quartus-а и компиляции; >- TimeQuest; >- Ревизии; >- Копирование, архивирование и восстановление проекта. Первые два пункта ладно еще, только странно что TimeQuest уделено столь мало внимания. Но резервное копирование с архивацией? Бред какой-то. Даже если оно там есть это глупо использовать, есть же git или еще что-нибудь по вкусу. Да и с ревизиями почти то же самое на практике. Нафиг было вообще это упоминать, когда таймквесту уделено столь мало внимания. Помимо этого, вряд ли в видео есть о том как бороться с переглючиванием квартуса, которое случилось у анона.
>>514661 >Помимо этого, вряд ли в видео есть о том как бороться с переглючиванием квартуса, которое случилось у анона. Я решил проблему с проглючиванием USB Blaster. Надо было протсо автоматически из диспетчера устройств установить драйвера для бластера, которые лежали в папке с квартусом. Теперь другая проблема - квартус не прошивает плату, пишет вот это:
Error (209040): Can't access JTAG chain Error (209012): Operation failed Info (209061): Ended Programmer operation at Sun Jan 8 19:04:19 2023
>>514681 >Это тебе не просто rar-ом запаковать, там свои тонкости. Просто освой git или еще что по вкусу. Нет там никаких тонкостей. К тому же рар в 2023 году это уже странно.
>>514784 Ну, в симуляции твой код будет работать, если задать начальное значение для counter и state, потому что иначе там x всегда будет. При синтезе дело иное конечно, но все равно не дело писать так чтобы работало при синтезе, но не при симуляции. Ещё и integer не стоит использовать в синтезируемом коде.
Вобщем если проблема не с тем что ты перепутал выводы или ещё чем-то из той же серии, то стоит заменить integer на reg с требуемой разрядностью и на всякий случай задать там начальные значения.
>>514794 Вот так? Все равно лампочка горит, а не мигает. И если в блоке initial прописать state = 1, то лампочка не горит. Она горит только если state = 0;
>>514795 1. Ни чё что у тебя stste 32-х разрядная? 2. Какой космический с 20 строчки? 3. У тебя, когда счётчик досчитывает до 25000000 он одновременно и инкриминируется (12 строчка) и обнуляется (15 строчка). Попробуй так if(counter == 25000000) begin counter <= 0 ; state <= !state; end else begin counter <= counter + 1'd1; end
>>514796 >У тебя, когда счётчик досчитывает до 25000000 он одновременно и инкриминируется (12 строчка) и обнуляется (15 строчка) Не одновременно, а по условию. Инкрементируем всегда, но если досчитали, то обнуляем.
>>514795 Значит проблема не в этом коде. Выведи тактовый сигнал на какой-нибудь вывод и посмотри осциллографом, может у тебя там напутано. >Вот так? Не совсем. Зачем для state 32 разряда? Да и для счётчика избыточно. Ещё стоит параметры использовать, сейчас это может избыточно, но потом может многое упростить. А разрядность счётчика можно автоматически логарифмом посчитать. Но это на будущее.
И зря ты схватился сразу за синтез. Так не делается, сначала все это симулируют, тестбенчи пишут.
>>514796 >одновременно и инкриминируется Не блокирующее присваивание так не работает в любом случае.
>>514797 >Не одновременно, а по условию. Инкрементируем всегда, но если досчитали, то обнуляем. Нет. У тебя там есть момент когда именно два действия происходят на одном такте. Можно конечно смотреть в RTL и пытаться понять как синтезатор такое синтезировал, но лучше всего не поленится и разнести их явно.
>>514798 >Что ты имел в виду здесь? >>2. Какой космический с 20 строчки? Зачем переназначать state в led, когда вместо state <= !state; можно сразу написать led <=!led; предварительно сделав led тоже регистром
А вообще посмотри, твой светодиод горит в полную яркость или же нет. Может быть так что, он мигает, но очень быстро... хотя вряд ли конечно... И какая частота у твоего генератора?
>>514803 А может ты сменишь тон и не будешь выёживаться на пустом месте. В данном случае присвоение assign led = state; избыточно. state можно сразу вывести на светодиод.
>>514804 >на пустом месте. Это не пустое место, а дезинформация с твоей стороны. Про повторное присваивание, если что. Без assign тут конечно можно обойтись, но это уже мелочи.
>>514802 >Может быть так что, он мигает, но очень быстро... хотя вряд ли конечно... Даже при тактовой 250 МГц будет частота мигания 5 Гц. Да хоть при 1 ГГц получаемые 20 Гц уже будут сразу заметны.
Более всего вероятно то что перепутан вывод или enable на тактовый генератор нужно выдать или ещё что-то аналогичное.
>>514810 Это только предположение что генератор может включаться от плисины. Мало ли как сделали. На твоём месте я бы ткнул осциллографом в выход генератора для начала. Если там все нормально, то вывел бы тактовый сигнал напрямую на светодиод или ещё куда и ткнул осциллограф уже туда.
>>514815 Info: * Info: Running Quartus Prime Analysis & Synthesis Info: Version 22.1std.0 Build 915 10/25/2022 SC Lite Edition Info: Processing started: Mon Jan 9 19:49:09 2023 Info: Command: quartus_map --read_settings_files=on --write_settings_files=off Lab1 -c Lab1 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance. Info (20030): Parallel compilation is enabled and will use 2 of the 2 processors detected Info (12021): Found 1 design units, including 1 entities, in source file light.sv Info (12023): Found entity 1: light Info (12021): Found 1 design units, including 1 entities, in source file blink.sv Info (12023): Found entity 1: blink Info (12127): Elaborating entity "blink" for the top level hierarchy Info (286030): Timing-Driven Synthesis is running Info (17049): 6 registers lost all their fanouts during netlist optimizations. Info (16010): Generating hard_block partition "hard_block:auto_generated_inst" Info (16011): Adding 0 node(s), including 0 DDIO, 0 PLL, 0 transceiver and 0 LCELL Info (21057): Implemented 30 device resources after synthesis - the final resource count might be different Info (21058): Implemented 1 input pins Info (21059): Implemented 1 output pins Info (21061): Implemented 28 logic cells Info: Quartus Prime Analysis & Synthesis was successful. 0 errors, 1 warning Info: Peak virtual memory: 4754 megabytes Info: Processing ended: Mon Jan 9 19:49:21 2023 Info: Elapsed time: 00:00:12 Info: Total CPU time (on all processors): 00:00:29 Info: ***************************************************** Info: Running Quartus Prime Fitter Info: Version 22.1std.0 Build 915 10/25/2022 SC Lite Edition Info: Processing started: Mon Jan 9 19:49:22 2023 Info: Command: quartus_fit --read_settings_files=off --write_settings_files=off Lab1 -c Lab1 Info: qfit2_default_script.tcl version: #1 Info: Project = Lab1 Info: Revision = Lab1 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance. Info (20030): Parallel compilation is enabled and will use 2 of the 2 processors detected Info (119006): Selected device EP4CE6E22C8 for design "Lab1" Info (21077): Low junction temperature is 0 degrees C Info (21077): High junction temperature is 85 degrees C Info (171003): Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time Warning (292013): Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature. Info (176444): Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices Info (176445): Device EP4CE10E22C8 is compatible Info (176445): Device EP4CE15E22C8 is compatible Info (176445): Device EP4CE22E22C8 is compatible Info (169124): Fitter converted 5 user pins into dedicated programming pins Info (169125): Pin ~ALTERA_ASDO_DATA1~ is reserved at location 6 Info (169125): Pin ~ALTERA_FLASH_nCE_nCSO~ is reserved at location 8 Info (169125): Pin ~ALTERA_DCLK~ is reserved at location 12 Info (169125): Pin ~ALTERA_DATA0~ is reserved at location 13 Info (169125): Pin ~ALTERA_nCEO~ is reserved at location 101 Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details Critical Warning (169085): No exact pin location assignment(s) for 1 pins of 2 total pins. For the list of pins please refer to the I/O Assignment Warnings table in the fitter report. Critical Warning (332012): Synopsys Design Constraints File file not found: 'Lab1.sdc'. A Synopsys Design Constraints File is required by the Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design. Info (332144): No user constrained base clocks found in the design Info (332143): No user constrained clock uncertainty found in the design. Calling "derive_clock_uncertainty" Info (332154): The derive_clock_uncertainty command did not apply clock uncertainty to any clock-to-clock transfers. Info (332130): Timing requirements not specified -- quality metrics such as performance may be sacrificed to reduce compilation time. Info (176353): Automatically promoted node clk~input (placed in PIN 89 (CLK6, DIFFCLK_3p)) Info (176355): Automatically promoted destinations to use location or clock signal Global Clock CLKCTRL_G9 Info (176233): Starting register packing Info (176235): Finished register packing Extra Info (176219): No registers were packed into other blocks Info (171121): Fitter preparation operations ending: elapsed time is 00:00:01 Info (14896): Fitter has disabled Advanced Physical Optimization because it is not supported for the current family. Info (170189): Fitter placement preparation operations beginning Info (170190): Fitter placement preparation operations ending: elapsed time is 00:00:00 Info (170191): Fitter placement operations beginning Info (170137): Fitter placement was successful Info (170192): Fitter placement operations ending: elapsed time is 00:00:00 Info (170193): Fitter routing operations beginning Info (170195): Router estimated average interconnect usage is 0% of the available device resources Info (170196): Router estimated peak interconnect usage is 0% of the available device resources in the region that extends from location X11_Y0 to location X22_Y11 Info (170199): The Fitter performed an Auto Fit compilation. Optimizations were skipped to reduce compilation time. Info (170201): Optimizations that may affect the design's routability were skipped Info (170194): Fitter routing operations ending: elapsed time is 00:00:00 Info (11888): Total time spent on timing analysis during the Fitter is 0.14 seconds. Info (334003): Started post-fitting delay annotation Info (334004): Delay annotation completed successfully Info (334003): Started post-fitting delay annotation Info (334004): Delay annotation completed successfully Info (11218): Fitter post-fit operations ending: elapsed time is 00:00:01 Info (144001): Generated suppressed messages file C:/Users/mathe/Documents/Quartus/Lab1/output_files/Lab1.fit.smsg Info: Quartus Prime Fitter was successful. 0 errors, 5 warnings Info: Peak virtual memory: 5223 megabytes Info: Processing ended: Mon Jan 9 19:49:27 2023 Info: Elapsed time: 00:00:05 Info: Total CPU time (on all processors): 00:00:05 Info: ******************************************************************* Info: Running Quartus Prime Assembler Info: Version 22.1std.0 Build 915 10/25/2022 SC Lite Edition Info: Processing started: Mon Jan 9 19:49:28 2023 Info: Command: quartus_asm --read_settings_files=off --write_settings_files=off Lab1 -c Lab1 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance. Info (115031): Writing out detailed assembly data for power analysis Info (115030): Assembler is generating device programming files Info: Quartus Prime Assembler was successful. 0 errors, 1 warning Info: Peak virtual memory: 4694 megabytes Info: Processing ended: Mon Jan 9 19:49:28 2023 Info: Elapsed time: 00:00:00 Info: Total CPU time (on all processors): 00:00:01 Info (293026): Skipped module Power Analyzer due to the assignment FLOW_ENABLE_POWER_ANALYZER Info: ******************************************************************* Info: Running Quartus Prime Timing Analyzer Info: Version 22.1std.0 Build 915 10/25/2022 SC Lite Edition Info: Processing started: Mon Jan 9 19:49:29 2023 Info: Command: quartus_sta Lab1 -c Lab1 Info: qsta_default_script.tcl version: #1 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance. Info (20030): Parallel compilation is enabled and will use 2 of the 2 processors detected Info (21077): Low junction temperature is 0 degrees C Info (21077): High junction temperature is 85 degrees C Critical Warning (332012): Synopsys Design Constraints File file not found: 'Lab1.sdc'. A Synopsys Design Constraints File is required by the Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design. Info (332142): No user constrained base clocks found in the design. Calling "derive_clocks -period 1.0" Info (332105): Deriving Clocks Info (332105): create_clock -period 1.000 -name clk clk Info (332143): No user constrained clock uncertainty found in the design. Calling "derive_clock_uncertainty" Info (332123): Deriving Clock Uncertainty. Please refer to report_sdc in the Timing Analyzer to see clock uncertainties. Info: Found TIMING_ANALYZER_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON Info: Analyzing Slow 1200mV 85C Model Critical Warning (332148): Timing requirements not met Info (11105): For recommendations on closing timing, run Report Timing Closure Recommendations in the Timing Analyzer. Info (332146): Worst-case setup slack is -2.183 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): -2.183 -40.627 clk Info (332146): Worst-case hold slack is 0.465 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): 0.465 0.000 clk Info (332140): No Recovery paths to report Info (332140): No Removal paths to report Info (332146): Worst-case minimum pulse width slack is -3.000 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): -3.000 -44.636 clk Info: Analyzing Slow 1200mV 0C Model Info (334003): Started post-fitting delay annotation Info (334004): Delay annotation completed successfully Info (332123): Deriving Clock Uncertainty. Please refer to report_sdc in the Timing Analyzer to see clock uncertainties. Critical Warning (332148): Timing requirements not met Info (11105): For recommendations on closing timing, run Report Timing Closure Recommendations in the Timing Analyzer. Info (332146): Worst-case setup slack is -1.804 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): -1.804 -33.190 clk Info (332146): Worst-case hold slack is 0.416 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): 0.416 0.000 clk Info (332140): No Recovery paths to report Info (332140): No Removal paths to report Info (332146): Worst-case minimum pulse width slack is -3.000 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): -3.000 -44.636 clk Info: Analyzing Fast 1200mV 0C Model Info (332123): Deriving Clock Uncertainty. Please refer to report_sdc in the Timing Analyzer to see clock uncertainties. Critical Warning (332148): Timing requirements not met Info (11105): For recommendations on closing timing, run Report Timing Closure Recommendations in the Timing Analyzer. Info (332146): Worst-case setup slack is -0.432 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): -0.432 -4.215 clk Info (332146): Worst-case hold slack is 0.190 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): 0.190 0.000 clk Info (332140): No Recovery paths to report Info (332140): No Removal paths to report Info (332146): Worst-case minimum pulse width slack is -3.000 Info (332119): Slack End Point TNS Clock Info (332119): ========= =================== ===================== Info (332119): -3.000 -33.059 clk Info (332102): Design is not fully constrained for setup requirements Info (332102): Design is not fully constrained for hold requirements Info: Quartus Prime Timing Analyzer was successful. 0 errors, 5 warnings Info: Peak virtual memory: 4751 megabytes Info: Processing ended: Mon Jan 9 19:49:31 2023 Info: Elapsed time: 00:00:02 Info: Total CPU time (on all processors): 00:00:02 Info: ******************************************************************* Info: Running Quartus Prime EDA Netlist Writer Info: Version 22.1std.0 Build 915 10/25/2022 SC Lite Edition Info: Processing started: Mon Jan 9 19:49:32 2023 Info: Command: quartus_eda --read_settings_files=off --write_settings_files=off Lab1 -c Lab1 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance. Info (204019): Generated file Lab1.vo in folder "C:/Users/mathe/Documents/Quartus/Lab1/simulation/questa/" for EDA simulation tool Info: Quartus Prime EDA Netlist Writer was successful. 0 errors, 1 warning Info: Peak virtual memory: 4638 megabytes Info: Processing ended: Mon Jan 9 19:49:33 2023 Info: Elapsed time: 00:00:01 Info: Total CPU time (on all processors): 00:00:01 Info (293000): Quartus Prime Full Compilation was successful. 0 errors, 13 warnings
>>514823 Вроде ничего критичного. А вообще там есть отдельная вкладка, где он только ворнинги показывает без лишней информации. Микросхема правильно указана? На твоей отладке есть кнопка? Попробуй кнопку на светодиод прокинуть напрямую.
>>514823 Ещё добавлю. Вот на это обрати внимание. >Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details
И ещё, посмотри схему в тихнолоджи мап вьювире. Может он всё сминимизировал нахер по какой-то причине.
>>514826 >На твоей отладке есть кнопка? Попробуй кнопку на светодиод прокинуть напрямую С кнопкой работает. Кнопка включает и выключает диод, с этим ок.
>>514835 Что значит привязывать? Указать надо тот вывод плисины на который подключён тактовый генератор. Смотри схему своей отладки. И чёта clk на пике у тебя жёлтым цветом.
>>514839 >Что значит 74? 74 это номер пина, к которому подключен диод.
>Указать надо тот вывод плисины на который подключён тактовый генератор. Смотри схему своей отладки. И чёта clk на пике у тебя жёлтым цветом.
У меня плата C4E6/E10-CORE. Вроде тактовый генератор на ней подключен к пинам 33 и 34. Вот здесь >>514835 я выбрал один из этих пинов, но схема не заработала.
>>514813 Я уже писал, но могу повторить. Ты не знаешь как работает неблокирующее присваивание. А именно ситуация которую ты описал в пункте 3 >>514796 может произойти только если присваивается в один регистр из двух разных блоков always, но там синтезатор сразу ошибку выдаст. Если несколько раз присваивается в одном блоке, то в итоге присвоится только последний результат. За доказательствами - в любой нормальный учебник. И не надо пудрить новичкам мозги.
>>514843 Ну вот как я и предполагал, что вероятнее тактовый сигнал не доходит.
кОтцы, скажите без прикрас, какую борду брать на алиэкспрессе? С какого семейства начинать? Не олигарх, но в свое прекрасное будущее готов инвестировать 10-20т. На 30т+ жаба уже давит, но если партия скажет надо...
Просветите, что является мегарулезом всех времен и народов? Altera? Xilinx? ZynQ? GoWin? Что делать по началу ТОЧНО НЕ НАДО чтобы не въебатся?
Чего хочется стратегически. Перекотиться из унылого STM32 эмбеддинга в сверкающий мир пони единорогов FPGA разработки. Или хотя бы уметь, понимать и быть готовым.
Чего хочется практически. Начальные примеры светодиодиков итд понятны. В мечтах 8битный или 16битный комп. Чтобы под камень/семейство/плату были готовые проекты. Чтобы берешь проект или начинаешь делать с какого-нибудь видео или сайта (или из книги), а он у тебя компиляется и работает без проблем. И ты не сношаешь мозг с адаптацией, потому что сношений и отладки мне и на работе хватает.
Что точно не хочется. Китайчатины с сорцами на китайском. Не хочется голую плату без примеров и уроков. Не хочется плату с дохлым или полудохлым железом (видел и такое в отзывах на али). Не хочется въебаться с поддержкой софта на PC (софт или устарел или новый софт не поддерживает камень).
>>514861 >А именно ситуация которую ты описал в пункте 3 А, теперь понятно про что ты. Всё так. Но для новичков, как раз, лучше не погружаться в тонкости блокирующих/неблокирующих присвоений, на начальных этапах это может только всё запутать. Это всё потом придёт с опытом.
Спасиб, ребят, зачет. Было бы приятно если б вы еще аргументировали чтобы мне было понятно.
Альтера - почему? Примерно понимаю, видимо накопленные за годы решения проще? Больше охват среди русскоязычной аудитории?
Zynq - только потому что свежак и крутяк? Сразу крутяк брать это для меня полного нуба глупо. Самое лучшее - некая золотая середина. Не совсем уж убогое нищебродство с которым потом зае..шься. Но и крутяк от которого охуеешь от сложности тоже такое...
Под Zynq ваять звали этой весной в Швейцарию, готовая плата. Пролетел =(
>>515000 >Альтера - почему? За Альтеру скажу так: с неё проще начать вкат новичку. Более дружелюбное и понятное ПО, только не бери последние версии, возьми где-нибудь 15, а лучше, если будешь сидеть под каким-нибудь Сыклоном 4, взять вообще 9.1, самая быстрая и адекватная версия из всех. Если как ты пишешь >Чтобы под камень/семейство/плату были готовые проекты. Чтобы берешь проект или начинаешь делать с какого-нибудь видео или сайта (или из книги), а он у тебя компиляется и работает без проблем. И ты не сношаешь мозг с адаптацией, потому что сношений и отладки мне и на работе хватает. Тут только что-то от terasic https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=13&List=Simple На Ютубе видел чувака, на одной такой плате сделал клон Денди. А чтобы не возится с адаптацией вообще такого не бывает, только если отладка точно-такая же. Возиться с адаптацией - это один из этапов проектирования, потому-то и в том числе поэтому порог вхождения в плисы выше чем в тот же пердуино. Но у Терасика и раньше было проблемно отладки купить, а сейчас так вообще наверно проблема. Хотя какие-то ихние платы в чип-дипе есть, но какие там цены - сам понимаешь. А вообще я бы советовал, перед тем как большие деньги тратить, для начала что-то простое взять, посмотреть зайдут ли плисины вообще, поделать простые и средние проекты. На Ютубе есть такой канал, тут ссылку не так давно кидали. Так-что ищи у китайцев отладки с Сыклоном 4, на данный момент оптимальное цена/качество как мне кажется. Например https://aliexpress.ru/item/1005001279028952.html?spm=a2g2w.orderdetail.0.0.33544aa6o455VD&sku_id=12000015559827909 и программатор https://aliexpress.ru/item/1005002703504597.html?spm=a2g2w.orderdetail.0.0.33544aa6QoXK8V&sku_id=12000021782265860 Найдёшь что-то аналогичное дешевле - молодец.
В .ucf так NET "ETH1CLK"LOC = W12| IOSTANDARD = LVCMOS33; NET "ETH2CLK"LOC = Y12| IOSTANDARD = LVCMOS33;
на названия сигналов внимание не обращайте, они почти рандом
А он мне в ответ вот это
ERROR:Place:1205 - This design contains a global buffer instance, <PLL1/clkout1_buf>, driving the net, <ETH1MDC_OBUF>, that is driving the following (first 30) non-clock load pins off chip. < PIN: ETH1MDC.O; > This design practice, in Spartan-6, can lead to an unroutable situation due to limitations in the global routing. If the design does route there may be excessive delay or skew on this net. It is recommended to use a Clock Forwarding technique to create a reliable and repeatable low skew solution: instantiate an ODDR2 component; tie the .D0 pin to Logic1; tie the .D1 pin to Logic0; tie the clock net to be forwarded to .C0; tie the inverted clock to .C1. If you wish to override this recommendation, you may use the CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote this message to a WARNING and allow your design to continue. Although the net may still not route, you will be able to analyze the failure in FPGA_Editor. < PIN "PLL1/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; > ERROR:Place:1205 - This design contains a global buffer instance, <PLL1/clkout2_buf>, driving the net, <ETH2MDC_OBUF>, that is driving the following (first 30) non-clock load pins off chip. < PIN: ETH2MDC.O; > This design practice, in Spartan-6, can lead to an unroutable situation due to limitations in the global routing. If the design does route there may be excessive delay or skew on this net. It is recommended to use a Clock Forwarding technique to create a reliable and repeatable low skew solution: instantiate an ODDR2 component; tie the .D0 pin to Logic1; tie the .D1 pin to Logic0; tie the clock net to be forwarded to .C0; tie the inverted clock to .C1. If you wish to override this recommendation, you may use the CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote this message to a WARNING and allow your design to continue. Although the net may still not route, you will be able to analyze the failure in FPGA_Editor. < PIN "PLL1/clkout2_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; > ERROR:Place:1136 - This design contains a global buffer instance, <PLL1/clkout1_buf>, driving the net, <ETH1MDC_OBUF>, that is driving the following (first 30) non-clock load pins. < PIN: ETH1MDC.O; > This is not a recommended design practice in Spartan-6 due to limitations in the global routing that may cause excessive delay, skew or unroutable situations. It is recommended to only use a BUFG resource to drive clock loads. If you wish to override this recommendation, you may use the CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote this message to a WARNING and allow your design to continue. < PIN "PLL1/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; > ERROR:Place:1136 - This design contains a global buffer instance, <PLL1/clkout2_buf>, driving the net, <ETH2MDC_OBUF>, that is driving the following (first 30) non-clock load pins. < PIN: ETH2MDC.O; > This is not a recommended design practice in Spartan-6 due to limitations in the global routing that may cause excessive delay, skew or unroutable situations. It is recommended to only use a BUFG resource to drive clock loads. If you wish to override this recommendation, you may use the CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote this message to a WARNING and allow your design to continue. < PIN "PLL1/clkout2_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; > ERROR:Pack:1654 - The timing-driven placement phase encountered an error.
И что это такое? Мм? И что мне с этим делать? Хорошо. Дописываю в .ucf
WARNING:Place:1206 - This design contains a global buffer instance, <PLL1/clkout1_buf>, driving the net, <ETH1MDC_OBUF>, that is driving the following (first 30) non-clock load pins off chip. < PIN: ETH1MDC.O; > This design practice, in Spartan-6, can lead to an unroutable situation due to limitations in the global routing. If the design does route there may be excessive delay or skew on this net. It is recommended to use a Clock Forwarding technique to create a reliable and repeatable low skew solution: instantiate an ODDR2 component; tie the .D0 pin to Logic1; tie the .D1 pin to Logic0; tie the clock net to be forwarded to .C0; tie the inverted clock to .C1. This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <PLL1/clkout1_buf.O> allowing your design to continue. This constraint disables all clock placer rules related to the specified COMP.PIN. WARNING:Place:1206 - This design contains a global buffer instance, <PLL1/clkout2_buf>, driving the net, <ETH2MDC_OBUF>, that is driving the following (first 30) non-clock load pins off chip. < PIN: ETH2MDC.O; > This design practice, in Spartan-6, can lead to an unroutable situation due to limitations in the global routing. If the design does route there may be excessive delay or skew on this net. It is recommended to use a Clock Forwarding technique to create a reliable and repeatable low skew solution: instantiate an ODDR2 component; tie the .D0 pin to Logic1; tie the .D1 pin to Logic0; tie the clock net to be forwarded to .C0; tie the inverted clock to .C1. This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <PLL1/clkout2_buf.O> allowing your design to continue. This constraint disables all clock placer rules related to the specified COMP.PIN. WARNING:Place:1137 - This design is not guaranteed to be routable! This design contains a global buffer instance, <PLL1/clkout1_buf>, driving the net, <ETH1MDC_OBUF>, that is driving the following (first 30) non-clock load pins. < PIN: ETH1MDC.O; > This is not a recommended design practice in Spartan-6 due to limitations in the global routing that may cause excessive delay, skew or unroutable situations. It is recommended to only use a BUFG resource to drive clock loads. Please pay extra attention to the timing and routing of this path to ensure the design goals are met. This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <PLL1/clkout1_buf.O> allowing your design to continue. This constraint disables all clock placer rules related to the specified COMP.PIN. WARNING:Place:1137 - This design is not guaranteed to be routable! This design contains a global buffer instance, <PLL1/clkout2_buf>, driving the net, <ETH2MDC_OBUF>, that is driving the following (first 30) non-clock load pins. < PIN: ETH2MDC.O; > This is not a recommended design practice in Spartan-6 due to limitations in the global routing that may cause excessive delay, skew or unroutable situations. It is recommended to only use a BUFG resource to drive clock loads. Please pay extra attention to the timing and routing of this path to ensure the design goals are met. This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <PLL1/clkout2_buf.O> allowing your design to continue. This constraint disables all clock placer rules related to the specified COMP.PIN.
Так что ему падле надо? Чтобы вывести тактовый сигнал с пллки наружу почему такая ебля? Как надо сделать чтобы эта ссука удавлетворилась?
Shipping Method There is an error with the entered address. Please review the information for accuracy. NOTICE TO CUSTOMERS SHIPPING TO UKRAINE: FedEx has suspended all service to Ukraine and Belarus out of concern for the safety of its employees. EXPORT RESTRICTIONS: Digilent hardware, software programs and technical data may not be sold or exported or re-exported, either directly or indirectly, to the U.S. embargoed destinations or entities of Cuba, Iran, Libya, North Korea, Sudan or Syria or to persons/entities on the Denied Persons List, Unverified List, Entity List, Specially Designated Nationals List and the Debarred List, without prior written authorization from the appropriate U.S. government departments (Commerce, State Department, Treasury). CHINA: we are unable to ship to orders in China, but you can order our products from digilent.com.cn. BRAZIL: unfortunately we had to implement shipping restrictions due to custom changes. Check out our distributor page to order products near your location.
>>515626 Кароч нельзя просто так взять и вывести клок на ногу. Надо понимать, что клоки и сигналы живут в двух разных вселенных и соприкасаются только в специально отведённых местах (например, триггерах или синхронных буферах).
Если тебе надо вывести клок на ногу, тебе надо взять буфер типа ODDR2 (который выводит по очереди два сигнала, один по фронту клока, другой по срезу), завести клок на его клоковый вход, а на сигнальные входы завести постоянные "1" и "0". Как ты понимаешь, на выходе получится тот же самый клок, но в таком виде работать будет, а в том, который у тебя — нет.
>>515679 > а в том, который у тебя — нет Ну как уже писал, если добавить в .ucf PIN "PLL1/clkout2_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; PIN "PLL1/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; то компилирует и даже работает.
>надо взять буфер типа ODDR2 (который выводит по очереди два сигнала, один по фронту клока, другой по срезу), завести клок на его клоковый вход, а на сигнальные входы завести постоянные "1" и "0" Дело в том что вывожу то я не на абы какую ногу, а на специальную клоковую. И если так, а мне, скажем, надо затактировать, какой-нибудь кодек, или езернетовскую микросхему физического уровня, мне, что, надо таким извращением заниматься? И после этого будут говорить что хилый лучше альтеры? Или всё таки есть нормальный способ вывести клок наружу?
Есть какой-нибудь симулятор верилога, чтобы там в редакторе пишешь, например, wire a; и он тебе рисует провод. Добавляешь assign b = a и он рисует прикрепление провода b к проводу a, и точно так же рисует логические вентили и прочее все?
Хочу разобраться с ШИМ. Как это делается? Я нашел такой пример, но не могу понять, как его запустить на плате. Соединил в pin assignment clk с клоком, led с диодом, а что делать с шиной pwm_input, куда ее?
>>515989 Можешь сделать как вот этот https://youtu.be/AxQtbRhjpYA?t=3276 смотреть с 54:36 но только наоборот, он использовал как ввод, тебе надо как вывод. Ещё вроде бы как в квартусе была консоль, можно поверх джитага поднять уарт и выводить на неё что нужно. но это не точно
Xilinx можно чем-то программировать кроме Vivado/ISE, которые из России теперь хуй скачаешь? Есть тулзы типа GCC для программирования контроллеров, только для FPGA? Какой-нибудь Free govno verilog-gcc.
Здравствуйте господа. Вот хочу я например залить проект в отладочную плату. Захожу в документацию отладки, там адрес рандомного чипа, к которому хочу обращаться, указан как 0x50 или 0b0011101. Что эти цифры значат для верилога ? assign addr = 0x57 ? assign addr = 0b0011101 ?
>>516458 Без негатива, тебе рановато в ПЛИС. Тебе бы ардуину погонять. Посмотреть на практике, как работают наиболее распространённые цифровые интерфейсы.
>>516597 >В чем разница изучения интерфейсов на ардуино от изучения интерфейсов на ПЛИС ? В том, что при работе с ПЛИС требуется работать на большем количестве уровней абстракции. Примерно как если бы ты учился варить борщ, и рецепт у тебя был записан через уравнения химии белков, а инструкция к плите — через уравнения Максвелла.
>>516597 >А как считать информацию с чипа по этому адресу ? По протоколу самого чипа, который изложен в даташите на этот чип. В общем случае выставить на шину нужный адрес, возможно какие-то сопроводительные сигналы. Далее на шине данных ждать ответа, в зависимости от реализации по задержке или по сопроводительному сигналу. А числа на верилоге записываются так: разрядность ' система_исчислениячисло система_исчисления может быть b (двоичная), (десятичная) или h (шестнадцатеричная) например 1'd0 8'hAB
Мне пришла плата Xilinx. Как в САПР Vivado назначить пины сигналам и как в ней посмотреть синтезированную схему? Например, хочу посмотреть, во что синтезировался такой код. Есть в вивадо аналог Pin Assignment из квартуса?
Учусь писать тестбенчи. Я написал такой триггер и ТБ к нему. Запускаю симуляцию и вижу, что сигнал out ни разу не принял значение 1, хотя должен был принять, когда clk = 1, стоит сигнал разрешения и нет сигнала сброса. Почему так?
>>517115 >хотя должен был принять, когда clk = 1 Нет, не "1", а posedge (positive edge, переход с "0" на "1"). А у тебя posedge нигде нет, клок не меняется.
В плисине использую только два банка выводов из четырёх. Незадействованные банки решил не запитывать. Вопрос, что делать с питанием этих бавнков, оставить болтаться в воздухе, или посадить на землю?
>>499925 >по запросу "Verilog" хедхантер выдает 31 вакансию в ДС-2 >>443682 Почему тогда разрабы железы не бойкотируют нахуй работодателей,пока не станут им платить как кодерам софта?