Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
_________________ iLavr
|
15 May 2022 03:15 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22567 Location: Silicon Valley
|
|
15 May 2022 20:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22567 Location: Silicon Valley
|
Ой, а слот Micro-SD я как-то и не заметил
|
15 May 2022 20:38 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 200 Location: г. Клинцы, Брянская обл.
|
Знатоки, подскажите: имеются ли средства визуальной разработки для FPGA. т.е. рисуем схему, потом компилируем из нее прошивку?
|
02 Mar 2024 07:02 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22567 Location: Silicon Valley
|
Ну дык схемный ввод - в родных средах разработки от Альтеры (для Альтеры) и у Xilinx (для Xilinx) оно было P.S. Перенёс тему в Hardware, как собственно и хотел изначально да заодно переименовал заголовок по русски...
|
02 Mar 2024 09:14 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 200 Location: г. Клинцы, Брянская обл.
|
Спасибо, попробую... Нужно не отставать от прогресса.
|
02 Mar 2024 10:21 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 82
|
А подскажите по HDL?
Вот я процессор проектирую, в нём будет машина состояний (конечный автомат). Устроен он просто: несколько флип-флопов обозначают конкретное состояние и автомат может переключаться в другие состояния согласно комбинационной логике, зависящей от этих флип-флопов и других факторов. То есть, всё обычно, как я понимаю, именно так их и делают.
И так получается по логике работы процессора, что в каждом состоянии автомата делается много нужных, но не связанных между собой по смыслу вещей. Например, в некоторых стадиях его работы сбрасывается АЛУ чтобы начать считать (АЛУ 4-битый, поэтому чтобы обсчитать слово происходит цикл, который требует предварительной инициализации). При этом в этой же стадии происходит сохранение каких-то данных, полученных на предыдущем состоянии (не связанных с АЛУ). Всё это приводит как запутанности кода и ошибкам.
Вопрос: как такое грамотно организовывать в коде? Как тестировать?
Пока предполагаю (но не уверен) что надо бы сделать несколько параллельных конечных автоматов, у которых будут совпадать значения некоторых состояний. Тогда можно будет по смыслу разбить деятельность по разным модулям.
|
02 Mar 2024 12:47 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22567 Location: Silicon Valley
|
Надо мыслить на верилоге (или сразу на SystemVerilog, который ещё более универсальный), предоставляющем несколько стандартных подходов программирования, которые все используют - сразу иметь ввиду, что будет общее тактирование, и что будут регистры, которые защёлкивают новое состяние в каждом такте и т.д. При этом всякие процессоры и многоуровневые конвейеры строятся легко и непринуждённо...
|
02 Mar 2024 12:53 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 82
|
У меня нет конвееров, все стадии зависимы между собой. Это одна из причин этой сложности. Пишу на SystemVerilog С другой стороны, непонятно также как тестировать правильность переходов по состояниям (покрытие). Сейчас есть только общий тест всех команд ну и вскоре подключу уже исполнение бинарников из файлов
|
02 Mar 2024 14:33 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22567 Location: Silicon Valley
|
Я когда свой RISC-V городил 5 лет назад (с конвейером в 1.5 ступени), то чисто по программистки всё компилировал через Verilator и нахлобучивал на это свой тестовый код, написанный на родимом C++ А "настоящие железячники" прям на том же верилоге (да даже и на VHDL) городят тесты...
|
02 Mar 2024 14:40 |
|
|
belfegor96
Fanat
Joined: 09 Jun 2022 00:49 Posts: 82
|
О, значит я настоящий Просто не понял как ещё там можно тесты сделать внешние на С++. Делаю "как по книжке" - получается. Кроме beans (накопления заходов) и ещё каких-то мелочей - верилятор этого не умеет (Код покажу когда полностью заработает)
Last edited by belfegor96 on 02 Mar 2024 15:11, edited 1 time in total.
|
02 Mar 2024 14:44 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22567 Location: Silicon Valley
|
Я не настоящий, поэтому я по старинке на C++ тесты клепаю
|
02 Mar 2024 14:58 |
|
|