Почему начиная с 5, вроде бы, версии, были убраны метатаблицы по умолчанию.
То есть для строк и чисел, можно задать метатаблицу, а таблицы и userdata хоть и имеют индивидуальные метатаблицы, тем не менее всегда создаются с нулевой метатаблицей и её приходится руками задавать каждому экземпляру.
Нет, тут источники света точечные, степень в specular компоненте материала соответствует «шероховатости» поверхности — разбросу углов отражения (и соответственно размеру бликов). Отражение точечного источника в идеальном зеркале без шероховатости, будет выглядеть как один яркий пиксель, это если повезёт и отражение попадёт ровно в источник (точность флоата конечная, так что вероятность не совсем нулевая)
Да вроде как у D триггера и так есть вход D и выход Q, поэтому для двухпортовой памяти у которой один порт на чтение, а другой на запись ничего больше и не надо.
Насчёт 20 байт памяти это я погорячился, если убрать регистр вычитания, чтение PC и порта, т.е. assign data = data_r; и оставить только 8 байт памяти, получается
Device EPM240T100C5
Total logic elements 236 / 240 ( 98 % )
почему-то не очень хорошо получается память из логики в CPLD, да и «параллельный» флэш из последовательного UFM тоже не бесплатно.
Причём пользовательская флэш у epm240 — последовательная, с максимальной частотой 8МГц, то есть ROM из неё конечно можно сделать, но с частотой выборки 16ти битных слов 512кГц, а двухпортовой «памяти» данных на триггерах получится байт 20.
То есть упихать-то можно конечно, но что-то совсем уж какой-то «троллейбус из буханки белого (или черного) хлеба.jpg» получается.
Quartus Prime Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition
Revision Name cpu
Top-level Entity Name cpu
Family Cyclone 10 LP
Device 10CL006YE144C8G
Timing Models Final
Total logic elements 91 / 6,272 ( 1 % )
Total registers 24
Total pins 10 / 89 ( 11 % )
Total virtual pins 0
Total memory bits 6,144 / 276,480 ( 2 % )
Embedded Multiplier 9-bit elements 0 / 30 ( 0 % )
Total PLLs 0 / 2 ( 0 % )
В любой FPGA найти двух портовую память как раз не проблема, куда проще чем приделывать любую обычную память к мелкой CPLD снаружи, так что с простотой там тоже не всё так однозначно, и в качестве ассемблера там тоже есть такой же велосипед, только страшненький и на питоне jeelabs.org/2017/11/tfoc---a-minimal-computer
Для того чтобы допилить SMLA для данного процессора двадцатью строчками думаю не обойтись. Ну и с Lua, как мне кажется, получилось красиво, особенно то, что сама программа на ассемблере остаётся валидным кодом на Lua, со всеми её плюшками для препроцессора/макросов забесплатно.
Цель же была не в изучении, для этого есть MIPS и RISC-V, а в велосипедостроении.
В очередной раз просто по другому упаковывать различные операции в биты команд не так интересно, таких процессоров действительно полно.
Тут же полагаю основная фича в простой расширяемости, а если максимально упаковать пяток инструкций в минимальное количество бит в инструкции, получив железный аналог brainfuck, добавить туда что-то будет сложно. Но за это, правда, приходится платить размером инструкций/кода особенно для разрядностей больше 8.
Три канала ws2811, стоит столько же сколько один канал у TPIC6B595DW, можно и запараллелить до 40 / 60мА.
А данные в любом случае заготавливаются заранее и потом целиком выплёвыются через DMA, так что тайминги интерфейса побоку.
Для того чтобы плавно менять яркость шимом со сдвиговыми регистрами «готовить данные» придётся на куда большей частоте.
Но если для FOV развёртки надо только вкл/выкл то да.
и там по описанию действительно похоже не шим, хотя не очень понятно
ну лучше один раз сделать шим для интерфейса, который тем же SPI на утроенной/учетверённой скорости или таймерах с DMA, полуаппаратно делается, зато не делать его потом 500 раз программно для каждого пикселя.
Дело не в мощности, а как она фокусируется.
Солнце освещает нас на орбите Земли потоком в 1кВт/м^2, и смотреть на долго него не очень полезно для зрения, с необратимыми последствиями.
а 1мвт лазерная указка с пятном в 1мм^2 даёт, сюрприз, ровно тот же 1 кВт/м^2.
Только вот Солнце из-за его больших угловых размеров в 0.01рад фокусируется на сетчатке в пятно равное 0.01 * фокусное расстояние глаза (~20мм) = 200мкм, а вот параллельный луч лазерной указки, с расходимостью на порядок, а то и два меньшей, будет соответственно сфокусирован в десяток мкм, сразу выжигая отдельные клетки, что кстати совсем не заметно. сначала.
да возьмите любой дозметр, засуньте в свинцовую трубку, чтобы диаграмму направленности поуже сделать, и две сервы для вертикальной/горизонтальной развертки.
То есть для строк и чисел, можно задать метатаблицу, а таблицы и userdata хоть и имеют индивидуальные метатаблицы, тем не менее всегда создаются с нулевой метатаблицей и её приходится руками задавать каждому экземпляру.
foo = {bar = 42}
print(foo[«bar»], foo.bar)
Device EPM240T100C5
Total logic elements 236 / 240 ( 98 % )
почему-то не очень хорошо получается память из логики в CPLD, да и «параллельный» флэш из последовательного UFM тоже не бесплатно.
То есть упихать-то можно конечно, но что-то совсем уж какой-то «троллейбус из буханки белого (или черного) хлеба.jpg» получается.
Revision Name cpu
Top-level Entity Name cpu
Family Cyclone 10 LP
Device 10CL006YE144C8G
Timing Models Final
Total logic elements 91 / 6,272 ( 1 % )
Total registers 24
Total pins 10 / 89 ( 11 % )
Total virtual pins 0
Total memory bits 6,144 / 276,480 ( 2 % )
Embedded Multiplier 9-bit elements 0 / 30 ( 0 % )
Total PLLs 0 / 2 ( 0 % )
Для того чтобы допилить SMLA для данного процессора двадцатью строчками думаю не обойтись. Ну и с Lua, как мне кажется, получилось красиво, особенно то, что сама программа на ассемблере остаётся валидным кодом на Lua, со всеми её плюшками для препроцессора/макросов забесплатно.
Цель же была не в изучении, для этого есть MIPS и RISC-V, а в велосипедостроении.
В очередной раз просто по другому упаковывать различные операции в биты команд не так интересно, таких процессоров действительно полно.
Тут же полагаю основная фича в простой расширяемости, а если максимально упаковать пяток инструкций в минимальное количество бит в инструкции, получив железный аналог brainfuck, добавить туда что-то будет сложно. Но за это, правда, приходится платить размером инструкций/кода особенно для разрядностей больше 8.
А данные в любом случае заготавливаются заранее и потом целиком выплёвыются через DMA, так что тайминги интерфейса побоку.
Но если для FOV развёртки надо только вкл/выкл то да.
и там по описанию действительно похоже не шим, хотя не очень понятно
Солнце освещает нас на орбите Земли потоком в 1кВт/м^2, и смотреть на долго него не очень полезно для зрения, с необратимыми последствиями.
а 1мвт лазерная указка с пятном в 1мм^2 даёт, сюрприз, ровно тот же 1 кВт/м^2.
Только вот Солнце из-за его больших угловых размеров в 0.01рад фокусируется на сетчатке в пятно равное 0.01 * фокусное расстояние глаза (~20мм) = 200мкм, а вот параллельный луч лазерной указки, с расходимостью на порядок, а то и два меньшей, будет соответственно сфокусирован в десяток мкм, сразу выжигая отдельные клетки, что кстати совсем не заметно. сначала.
hackaday.io/project/20394-diy-thermal-camera