Сообщение Re[11]: Свой процессор на ПЛИС от 01.03.2016 2:17
Изменено 01.03.2016 2:18 koandrew
Здравствуйте, 0x7be, Вы писали:
0>Возможность развивать дизайн эволюционно — это функция мягкости материала. Раньше и программы начинали делать со структурной схемы, потому что рефакторить было слишком накладно. Как появились адекватные инструменты, эволюционный дизайн вошёл в моду. С появлением ПЛИСов в железе тоже стала появляться такая возможность.
Поигравшись немного на выходных, беру свои слова обратно. Конечные автоматы рулят! Я пытался сделать UART-передатчик (чтобы FPGA по нажатию кнопки отправила "Hello, world!!" в COM-порт
) и полдня провозился с сигналами, запутав сам себя кучкой сигналов в стиле skip_next_clock_cycle. После чего на следующее утро снёс нафиг всё это богатство, и заменил на конечный автомат — в итоге код передатчика заработал с первой попытки и безо всяких проблем! А сейчас буквально за полчаса наваял код приёмника (он принимает байты из COM-порта, и отображает их двоичный код на LED) — и опять же всё завелось со второй попытки (всё работало и на первой попытки, но я просто перепутал порядок бит LSB <-> MSB, и потому двоичный код символов был "вверх ногами")! Конечно, он не обрабатывает ошибочные ситуации, но мне всё же кажется, что код очень неплохой
Саму схему верхнего уровня я всё равно сделал визуально, но все девайсы — на верилоге. Если интересно — вот код приёмника
А вот вся схема:
Должен сказать, что на моей девплате хидеры расширения (как будто специально!) сделаны так, что если на пины 2-4-6-8-10-12 "надеть" преобразователь USB-UART, то "земля" хидера как раз окажется в нужном месте, а прочие пины подключатся к пинам, напрямую подключенным к FPGA (а именно GPIO_01 -> RX, GPIO_03 -> TX, остальные пины не используются). Таким образом я по сути бесплатно (в смысле паять ничего не надо) получил инструмент для дебага в стиле printf
И в принципе заменил VGA-порт на окно putty, и оно даже само умеет скроллиться 
0>Возможность развивать дизайн эволюционно — это функция мягкости материала. Раньше и программы начинали делать со структурной схемы, потому что рефакторить было слишком накладно. Как появились адекватные инструменты, эволюционный дизайн вошёл в моду. С появлением ПЛИСов в железе тоже стала появляться такая возможность.
Поигравшись немного на выходных, беру свои слова обратно. Конечные автоматы рулят! Я пытался сделать UART-передатчик (чтобы FPGA по нажатию кнопки отправила "Hello, world!!" в COM-порт
| UART-receiver | |
| |
А вот вся схема:
| Схема | |
![]() | |
Должен сказать, что на моей девплате хидеры расширения (как будто специально!) сделаны так, что если на пины 2-4-6-8-10-12 "надеть" преобразователь USB-UART, то "земля" хидера как раз окажется в нужном месте, а прочие пины подключатся к пинам, напрямую подключенным к FPGA (а именно GPIO_01 -> RX, GPIO_03 -> TX, остальные пины не используются). Таким образом я по сути бесплатно (в смысле паять ничего не надо) получил инструмент для дебага в стиле printf
Re[11]: Свой процессор на ПЛИС
Здравствуйте, 0x7be, Вы писали:
0>Возможность развивать дизайн эволюционно — это функция мягкости материала. Раньше и программы начинали делать со структурной схемы, потому что рефакторить было слишком накладно. Как появились адекватные инструменты, эволюционный дизайн вошёл в моду. С появлением ПЛИСов в железе тоже стала появляться такая возможность.
Поигравшись немного на выходных, беру свои слова обратно. Конечные автоматы рулят! Я пытался сделать UART-передатчик (чтобы FPGA по нажатию кнопки отправила "Hello, world!!" в COM-порт
) и полдня провозился с сигналами, запутав сам себя кучкой сигналов в стиле skip_next_clock_cycle. После чего на следующее утро снёс нафиг всё это богатство, и заменил на конечный автомат — в итоге код передатчика заработал с первой попытки и безо всяких проблем! А сейчас буквально за полчаса наваял код приёмника (он принимает байты из COM-порта, и отображает их двоичный код на LED) — и опять же всё завелось со второй попытки (всё работало и на первой попытке, но я просто перепутал порядок бит LSB <-> MSB, и потому двоичный код символов был "вверх ногами")! Конечно, он не обрабатывает ошибочные ситуации, но мне всё же кажется, что код очень неплохой
Саму схему верхнего уровня я всё равно сделал визуально, но все девайсы — на верилоге. Если интересно — вот код приёмника
А вот вся схема:
Должен сказать, что на моей девплате хидеры расширения (как будто специально!) сделаны так, что если на пины 2-4-6-8-10-12 "надеть" преобразователь USB-UART, то "земля" хидера как раз окажется в нужном месте, а прочие пины подключатся к пинам, напрямую подключенным к FPGA (а именно GPIO_01 -> RX, GPIO_03 -> TX, остальные пины не используются). Таким образом я по сути бесплатно (в смысле паять ничего не надо) получил инструмент для дебага в стиле printf
И в принципе заменил VGA-порт на окно putty, и оно даже само умеет скроллиться 
0>Возможность развивать дизайн эволюционно — это функция мягкости материала. Раньше и программы начинали делать со структурной схемы, потому что рефакторить было слишком накладно. Как появились адекватные инструменты, эволюционный дизайн вошёл в моду. С появлением ПЛИСов в железе тоже стала появляться такая возможность.
Поигравшись немного на выходных, беру свои слова обратно. Конечные автоматы рулят! Я пытался сделать UART-передатчик (чтобы FPGA по нажатию кнопки отправила "Hello, world!!" в COM-порт
| UART-receiver | |
| |
А вот вся схема:
| Схема | |
![]() | |
Должен сказать, что на моей девплате хидеры расширения (как будто специально!) сделаны так, что если на пины 2-4-6-8-10-12 "надеть" преобразователь USB-UART, то "земля" хидера как раз окажется в нужном месте, а прочие пины подключатся к пинам, напрямую подключенным к FPGA (а именно GPIO_01 -> RX, GPIO_03 -> TX, остальные пины не используются). Таким образом я по сути бесплатно (в смысле паять ничего не надо) получил инструмент для дебага в стиле printf
