Вообще то, если посмотреть на чертёж, то там можно увидеть основную подпись к чертежу и в ней указано прямым текстом наименование детали. Наппимер, втулка или скоба и т.д. и не надо распознавать ни какие линии. А на самом чертеже подписаны размеры и прочая инфа. И это все простым текстом. И ни какой геометрии и нейрофич. Геометрия нужна токарю или слесарю при производстве конкретной детали.
Таки сделал я. Заработало! Но есть вопрос. Для прожига icesugar-pro я использую скрипт dapprog. Он в свою очередь использует openocd. Скрипт оболочки dapprog написан для удобства. Также для удобства можно экспортировать путь к dapprog, чтобы использовать его везде. openocd может поддерживать только svf-файл, поэтому бит-файл будет преобразован в svf-файл с немного измененным urjtag . кроме того, svf-файл является программой для sram, а битовый файл - программой для flash. dapprog это оболочка bash команды openocd.
В ручную я просто выполняю команду dapprog file.svf для программирования в RAM. Вот и вопрос. Как сделать это при помощи scripts/??? После синтеза в run у меня есть только .bin. Его надо ещё как-то преобразовать в .svf??? В какие скрипты чего надо написать?
И как сделать симуляцию? Какой скрипт надо запустить и, возможно в нём что-то надо изменить для icesugar-pro?
check_setup_and_choose_fpga_board.bash: Created an FPGA board selection file: "/home/serge/school/prj/J1Hub/basics-graphics-music/fpga_board_selection" Would you like to create the new run directories for the synthesis of all labs in the package, based on your FPGA board selection? We recommend to do this if you plan to work with Quartus GUI rather than with the synthesis scripts. [y/n] y
Да! Если очень коротко, то это так. Подчеркиваю, я работаю с платой iceshugar-pro. Эта плата не тоже самое, что плата iceshugar. Второе, оказалось имело место быть два ключевых момента.
Подсоединять надо было USB не к материнской плате а к самой плате iceshugar-pro
Для прожига платы iceshugar надо использовать программу icesprog именно с буквой s. Эта прога в комплекте вот от сюда https://github.com/wuxx/icesugar.git
Кроме того есть еще программа iceprog. Я не помню сейчас откуда она прицепилась, но она не работает ни с iceshugar, ни с iceshugar-pro.
В этом была некоторая путаница. К тому же была ещё плата GW Tang 25K. Но это уже другая история. Хотя в данном случае она добавляла хаотичности. Но в итоге я расставил всё по своим местам. и каждая из плат заработала.
И хочу отметить ещё одно успешное обстоятельство - это общение. Спасибо за поддержку.
PS. Я, всё-таки напишу статью об этом приключении. )))
Ура! Заработало! Я нашел как правильно программировать плату. Надо было внимательно прочитать README. Я сделал это несколько раз и увидел то, что не видел. Сделал как написано и всё получилось.
Мои успешные действия:
Видеть цель и проявляя настойчивость двигаться к цели.
Внимательно читать инструкцию, проясняя при этом непонятые слова до тех пор пока станет понятно.
Строго выполнять то, что написано.
Смотреть на результат сравнивать его с тем, что должно быть, добиваясь того, что должно получиться.
Теперь можно заняться сами basic-graphics-music и выполнить уроки на моей плате. Попробую достичь эту цель.
3.1 это как раз моя плата на порту USB. Может что надо прописать в /etc/udev/rules.d? Но я не могу найти что туда прописать. Обычно это помогает. Например с GW 20К и 25К так и было. Подскажите, плиз, что в rules надо прописать? Или может быть это ещё какая-то проблема другая? Вот часть сообщений из dmesg
[235887.130671] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [235887.130673] usb 2-3: Product: USB2.0 Hub [235887.130675] usb 2-3: Manufacturer: VIA Labs, Inc. [235887.132728] hub 2-3:1.0: USB hub found [235887.133037] hub 2-3:1.0: 4 ports detected [235888.079002] usb 2-3.1: new full-speed USB device number 25 using xhci_hcd [235888.241047] usb 2-3.1: New USB device found, idVendor=0d28, idProduct=0204, bcdDevice= 1.00 [235888.241062] usb 2-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [235888.241069] usb 2-3.1: Product: DAPLink CMSIS-DAP [235888.241074] usb 2-3.1: Manufacturer: ARM [235888.241078] usb 2-3.1: SerialNumber: 0700000100170034340000124e543352a5a5a5a59796
Кажется я нашел. Нашел примеры. В них есть LPF. Но есть вопрос. Что ещё нужно для того, чтобы эта плата заработала в yosys? Мне кажется там нужно что-то ещё?
Спасибо за ответы. Попробую найти данные и сделать LPF. Кстати, у меня есть GoWin v1.9.9. Она поддерживает GW5A. Я уже проверил. Нельзя ли как-то из неё вытащить полный LPF файл?
check_setup_and_choose_fpga_board.bash: Created an FPGA board selection file: "/home/serge/school/prj/J1Hub/basics-graphics-music/fpga_board_selection" Would you like to create the new run directories for the synthesis of all labs in the package, based on your FPGA board selection? We recommend to do this if you plan to work with Quartus GUI rather than with the synthesis scripts. [y/n] y
check_setup_and_choose_fpga_board.bash: Setting up: "/home/serge/school/prj/J1Hub/basics-graphics-music/labs/18_pow5_single_cycle/run" /home/serge/school/prj/J1Hub/basics-graphics-music/scripts/steps/00_setup_yosys.source_bash: line 104: //: Is a directory
check_setup_and_choose_fpga_board.bash: Created an FPGA board selection file: "/home/serge/school/prj/J1Hub/basics-graphics-music/fpga_board_selection" Would you like to create the new run directories for the synthesis of all labs in the package, based on your FPGA board selection? We recommend to do this if you plan to work with Quartus GUI rather than with the synthesis scripts. [y/n] n Configuring for Lattice ECP5... OK
Теперь Запуск всего конвейера для получения битстрима осуществляется одной командой:
/school/prj/J1Hub/basics-graphics-music/labs/01_and_or_not_xor_de_morgan$ bash 03_synthesize_for_fpga.bash Configuring for Lattice ECP5... OK /home/serge/school/prj/J1Hub/basics-graphics-music/scripts/steps/00_setup_yosys.source_bash: line 104: //: Is a directory
На этом всё останавливается. Почему?. У меня Ubuntu 22.04. Весь пакет yosys я установил. Проверил как в этом руководстве наличие каждой программы. ??? Одни вопросы ???
Спасибо. На плате есть JTAG. С платой LFE5U-25F-6BG256C понятно. А что насчет LFE5U 45F 6BG381C 44K LUT? Я так понимаю для неё только LPF файл нужен правильный. Где его можно взять? Или где взять данные для этого файла?
Не могу найти на неё практически ничего. Вроде как GW5A в yosys не поддерживается. Работать можно и в GoWin. Но я не могу найти документацию на неё: datasheet, распиновку.
Спасибо за статью. Подскажите, пожалуйста, У меня есть вот такая плата iCESugar-Pro v1.3 lattice LFE5U 6BG265C MuseLab модуль ECP5 FPGA RISC-V Linux SODIMM LFE5U-25F-6BG256C. Как узнать поддерживается ли эта плата в yosys? И как с ней работать в yosys? Тот же вопрос по плате Colorlight i9 модуль LFE5U 45F 6BG381C 44K LUT Open Source Toolchain v7.2. Какие модули yosys надо использовать? и как?
Хочу заметить силу движения опен сорц. Исходные коды этой ОС можно действительно скачать по указанной в статье ссылке. Удивительно, но они живы, хоть и с 2008 года не изменялись. Можно реально загрузить и собрать эту ОС. Там же указано, что работает под эмулятором. Надо будет запустить! А можно и на самом железе, если автор пожелает предоставить. Вот еще бы найти прикладное ПО в исходных кодах. Да и автор мог бы как-нибудь засветиться. Интересно включить в обзорный курс по ОС.
Вполне согласен с недостатком информации. Разум же такая штука, которую человек использует как для оправдания того, что жизнь на помойке это лучшее что возможно. Так и для того, чтобы разработать ядрёну бомбу. И там и там используется разум. Оппонент выше использует разум для оправдания чего угодно. Разум легко позволяет оправдать что угодно. Гайки пытались использовать этику, но не разобрались в столь простом вопросе и пребывают в сомнении. Явно, что и в одном и в другом случае что-то очень важное упущено. Что же это?
Вообще то, если посмотреть на чертёж, то там можно увидеть основную подпись к чертежу и в ней указано прямым текстом наименование детали. Наппимер, втулка или скоба и т.д. и не надо распознавать ни какие линии. А на самом чертеже подписаны размеры и прочая инфа. И это все простым текстом. И ни какой геометрии и нейрофич. Геометрия нужна токарю или слесарю при производстве конкретной детали.
Подскажите, пожалуйста. Я установил Квартус 13.1, но при запуске он ругается и говорит вот такое:
```
$ ./quartus
quartus: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
Как побороть эту ошибку, при том что команда
$ ldconfig -p | grep libpng
libpng16.so.16 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpng16.so.16
libpng16.so.16 (libc6) => /lib/i386-linux-gnu/libpng16.so.16
libpng16.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpng16.so
libpng12.so.0 (libc6,x86-64) => /usr/local/lib/libpng12.so.0
libpng.so.3 (libc6,x86-64) => /usr/local/lib/libpng.so.3
показывает, что библиотека установлена. У меня Убунта 22.4
Автор, расставте п этой статье ссылки на ГОСТы. Воможно вы увидете ещё одну проблему. А так тема ещё та...
Спасибо, работает!
Таки сделал я. Заработало! Но есть вопрос. Для прожига icesugar-pro я использую скрипт dapprog. Он в свою очередь использует openocd. Скрипт оболочки
dapprog
написан для удобства. Также для удобства можно экспортировать путь к dapprog, чтобы использовать его везде. openocd может поддерживать только svf-файл, поэтому бит-файл будет преобразован в svf-файл с немного измененным urjtag . кроме того, svf-файл является программой для sram, а битовый файл - программой для flash.dapprog
это оболочка bash команды openocd.В ручную я просто выполняю команду dapprog file.svf для программирования в RAM. Вот и вопрос. Как сделать это при помощи scripts/??? После синтеза в run у меня есть только .bin. Его надо ещё как-то преобразовать в .svf??? В какие скрипты чего надо написать?
И как сделать симуляцию? Какой скрипт надо запустить и, возможно в нём что-то надо изменить для icesugar-pro?
Вот попробовал сделать как здесь указано. Получил вот что:
icesugar_pro_ecp5_yosys 58) zeowaa
karnix_ecp5_yosys 59) zeowaa_wo_dig_0
nexys4 60) zybo_z7
nexys4_ddr 61) exit
nexys_a7 Your choice (a number): 27
check_setup_and_choose_fpga_board.bash: FPGA board selected: icesugar_pro_ecp5_yosys
check_setup_and_choose_fpga_board.bash: Created an FPGA board selection file: "/home/serge/school/prj/J1Hub/basics-graphics-music/fpga_board_selection"
Would you like to create the new run directories for the synthesis of all labs in the package, based on your FPGA board selection? We recommend to do this if you plan to work with Quartus GUI rather than with the synthesis scripts. [y/n] y
check_setup_and_choose_fpga_board.bash: Setting up: "/home/serge/school/prj/J1Hub/basics-graphics-music/labs/18_pow5_single_cycle/run"
check_setup_and_choose_fpga_board.bash: error: Unsupported FPGA synthesis toolchain: none. Currently supported: quartus, xilinx, gowin, yosys.
Вот такая ошибка. Как это лечить? Жаль, что нет подробной инструкции типа "как добавить новый девайс"
Да! Если очень коротко, то это так. Подчеркиваю, я работаю с платой iceshugar-pro. Эта плата не тоже самое, что плата iceshugar. Второе, оказалось имело место быть два ключевых момента.
Подсоединять надо было USB не к материнской плате а к самой плате iceshugar-pro
Использовать для прожига программу dapprog, которая идёт в комплекте вот отсюла https://github.com/wuxx/icesugar-pro.git
Для прожига платы iceshugar надо использовать программу icesprog именно с буквой s. Эта прога в комплекте вот от сюда https://github.com/wuxx/icesugar.git
Кроме того есть еще программа iceprog. Я не помню сейчас откуда она прицепилась, но она не работает ни с iceshugar, ни с iceshugar-pro.
В этом была некоторая путаница. К тому же была ещё плата GW Tang 25K. Но это уже другая история. Хотя в данном случае она добавляла хаотичности. Но в итоге я расставил всё по своим местам. и каждая из плат заработала.
И хочу отметить ещё одно успешное обстоятельство - это общение. Спасибо за поддержку.
PS. Я, всё-таки напишу статью об этом приключении. )))
Ура! Заработало! Я нашел как правильно программировать плату. Надо было внимательно прочитать README. Я сделал это несколько раз и увидел то, что не видел. Сделал как написано и всё получилось.
Мои успешные действия:
Видеть цель и проявляя настойчивость двигаться к цели.
Внимательно читать инструкцию, проясняя при этом непонятые слова до тех пор пока станет понятно.
Строго выполнять то, что написано.
Смотреть на результат сравнивать его с тем, что должно быть, добиваясь того, что должно получиться.
Теперь можно заняться сами basic-graphics-music и выполнить уроки на моей плате. Попробую достичь эту цель.
Спасибо, патч сработал и всё завелось. Отлично. Но вылезла другая проблема. Я не могу программировать плату.. Вот пример:
$ iceprog -r j1
init..
Can't find iCE FTDI USB device (vendor_id 0x0403, device_id 0x6010 or 0x6014).
ABORT.
Хотя сама плата включена
$ lsusb
0bda:b008 (bus 1, device 4) path: 1.4
1ea7:0066 (bus 1, device 3) path: 1.1
0438:7900 (bus 1, device 2) path: 1
1d6b:0002 (bus 1, device 1)
2109:0817 (bus 3, device 11) path: 3
1d6b:0003 (bus 3, device 1)
0781:5571 (bus 2, device 10) path: 4
0d28:0204 (bus 2, device 25) path: 3.1
2109:2817 (bus 2, device 24) path: 3
0bda:58ed (bus 2, device 2) path: 1
1d6b:0002 (bus 2, device 1)
3.1 это как раз моя плата на порту USB. Может что надо прописать в /etc/udev/rules.d? Но я не могу найти что туда прописать. Обычно это помогает. Например с GW 20К и 25К так и было. Подскажите, плиз, что в rules надо прописать? Или может быть это ещё какая-то проблема другая? Вот часть сообщений из dmesg
[235887.130671] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[235887.130673] usb 2-3: Product: USB2.0 Hub
[235887.130675] usb 2-3: Manufacturer: VIA Labs, Inc.
[235887.132728] hub 2-3:1.0: USB hub found
[235887.133037] hub 2-3:1.0: 4 ports detected
[235888.079002] usb 2-3.1: new full-speed USB device number 25 using xhci_hcd
[235888.241047] usb 2-3.1: New USB device found, idVendor=0d28, idProduct=0204, bcdDevice= 1.00
[235888.241062] usb 2-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[235888.241069] usb 2-3.1: Product: DAPLink CMSIS-DAP
[235888.241074] usb 2-3.1: Manufacturer: ARM
[235888.241078] usb 2-3.1: SerialNumber: 0700000100170034340000124e543352a5a5a5a59796
Кажется я нашел. Нашел примеры. В них есть LPF. Но есть вопрос. Что ещё нужно для того, чтобы эта плата заработала в yosys? Мне кажется там нужно что-то ещё?
Спасибо за ответы. Попробую найти данные и сделать LPF. Кстати, у меня есть GoWin v1.9.9. Она поддерживает GW5A. Я уже проверил. Нельзя ли как-то из неё вытащить полный LPF файл?
OK! Запустил clean_all на вссякий случай. Потом
$ bash check_setup_and_choose_fpga_board.bash
...
karnix_ecp5_yosys 57) zeowaa
nexys4 58) zeowaa_wo_dig_0
nexys4_ddr 59) zybo_z7
nexys_a7 60) exit Your choice (a number): 27
check_setup_and_choose_fpga_board.bash: FPGA board selected: karnix_ecp5_yosys
check_setup_and_choose_fpga_board.bash: Created an FPGA board selection file: "/home/serge/school/prj/J1Hub/basics-graphics-music/fpga_board_selection"
Would you like to create the new run directories for the synthesis of all labs in the package, based on your FPGA board selection? We recommend to do this if you plan to work with Quartus GUI rather than with the synthesis scripts. [y/n] y
check_setup_and_choose_fpga_board.bash: Setting up: "/home/serge/school/prj/J1Hub/basics-graphics-music/labs/18_pow5_single_cycle/run"
/home/serge/school/prj/J1Hub/basics-graphics-music/scripts/steps/00_setup_yosys.source_bash: line 104: //: Is a directory
Завершается вот так???
Что бы это значило? И как с этим быть?
Вот пытаюсь повторить работу.
Шаг настройки
/school/prj/J1Hub/basics-graphics-music$ bash check_setup_and_choose_fpga_board.bash
...
emooc_cc 55) tang_primer_25k_dock
ice40hx8k_evb_yosys 56) trion_t20
karnix_ecp5_yosys 57) zeowaa
nexys4 58) zeowaa_wo_dig_0
nexys4_ddr 59) zybo_z7
nexys_a7 60) exit Your choice (a number): 27
check_setup_and_choose_fpga_board.bash: FPGA board selected: karnix_ecp5_yosys
check_setup_and_choose_fpga_board.bash: Created an FPGA board selection file: "/home/serge/school/prj/J1Hub/basics-graphics-music/fpga_board_selection"
Would you like to create the new run directories for the synthesis of all labs in the package, based on your FPGA board selection? We recommend to do this if you plan to work with Quartus GUI rather than with the synthesis scripts. [y/n] n
Configuring for Lattice ECP5...
OK
Теперь Запуск всего конвейера для получения битстрима осуществляется одной командой:
/school/prj/J1Hub/basics-graphics-music/labs/01_and_or_not_xor_de_morgan$ bash 03_synthesize_for_fpga.bash
Configuring for Lattice ECP5...
OK
/home/serge/school/prj/J1Hub/basics-graphics-music/scripts/steps/00_setup_yosys.source_bash: line 104: //: Is a directory
На этом всё останавливается. Почему?. У меня Ubuntu 22.04. Весь пакет yosys я установил. Проверил как в этом руководстве наличие каждой программы. ??? Одни вопросы ???
Спасибо. На плате есть JTAG. С платой LFE5U-25F-6BG256C понятно. А что насчет LFE5U 45F 6BG381C 44K LUT? Я так понимаю для неё только LPF файл нужен правильный. Где его можно взять? Или где взять данные для этого файла?
И еще вопрос. Есть плата вот с таким чипом GW5A LV25 UG324C2 на док плате GW ACG525. Как с ней работать? Вот ссылка на алиекспресс https://aliexpress.ru/item/1005006282814249.html?spm=a2g2w.orderdetail.0.0.1e684aa67OGusL&sku_id=12000036600111305
Не могу найти на неё практически ничего. Вроде как GW5A в yosys не поддерживается. Работать можно и в GoWin. Но я не могу найти документацию на неё: datasheet, распиновку.
И огромное спасибо за наводку по Makefile.
Спасибо за статью. Подскажите, пожалуйста, У меня есть вот такая плата iCESugar-Pro v1.3 lattice LFE5U 6BG265C MuseLab модуль ECP5 FPGA RISC-V Linux SODIMM LFE5U-25F-6BG256C. Как узнать поддерживается ли эта плата в yosys? И как с ней работать в yosys? Тот же вопрос по плате Colorlight i9 модуль LFE5U 45F 6BG381C 44K LUT Open Source Toolchain v7.2. Какие модули yosys надо использовать? и как?
Все просто великолепно. А как можно у вас купить эту плату?
Хочу заметить силу движения опен сорц. Исходные коды этой ОС можно действительно скачать по указанной в статье ссылке. Удивительно, но они живы, хоть и с 2008 года не изменялись. Можно реально загрузить и собрать эту ОС. Там же указано, что работает под эмулятором. Надо будет запустить! А можно и на самом железе, если автор пожелает предоставить. Вот еще бы найти прикладное ПО в исходных кодах. Да и автор мог бы как-нибудь засветиться. Интересно включить в обзорный курс по ОС.
О, спасибо! Это сработало.
Вопрос. Я выполняю make и получаю ошибку
$ make
mkdir -p build/src/
/usr/bin/riscv64-unknown-elf-gcc -c -march=rv32i -mabi=ilp32 -DNDEBUG -g -Os -MD -fstrict-volatile-bitfields -fno-strict-aliasing -o build/src/main.o src/main.c
In file included from src/main.c:2:
/usr/lib/gcc/riscv64-unknown-elf/10.2.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
9 | # include_next <stdint.h>
| ^~~~~~~~~~
compilation terminated.
make: *** [makefile:111: build/src/main.o] Error 1
Какой stdint.h ищет если уже stdint.h найден и открыт?
Вполне согласен с недостатком информации. Разум же такая штука, которую человек использует как для оправдания того, что жизнь на помойке это лучшее что возможно. Так и для того, чтобы разработать ядрёну бомбу. И там и там используется разум. Оппонент выше использует разум для оправдания чего угодно. Разум легко позволяет оправдать что угодно. Гайки пытались использовать этику, но не разобрались в столь простом вопросе и пребывают в сомнении. Явно, что и в одном и в другом случае что-то очень важное упущено. Что же это?