Перейти к содержанию
    

Попытка создания собственного конвейера процессора.

On 3/4/2024 at 5:34 PM, Shivers said:

но без деления на стадии конвейера

Возможно, Вы не совсем поняли.
В результате работы над тем проектом были опробованы два варианта блоков:

1. комбинационная схема (огромная куча логики без триггеров), и была определена макс. частота ее функционирования.

2. схема с использованием конвейера - со своей частотой работы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Yuri124 сказал:

А "таблица истинности" - это как? Разве не текстом ее нужно будет как-то описать?

таблица  истинности...мало чем отличается от чёрно белого изображения без градаций.

И только рассмотрел Logisim, а не так как я его опечатывал - Logism, и куча уроков. В общем я допилю за 2-3 вечера схемку.

В кэше мостов я намерен скоротать время на отсутствии дешифрации адресов, чисто на аппаратном переходе к следующей команде. Это вполне осуществимо и профит быть должен.

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

методом тыка оказалось быстрее - не те пины принял за R и S, они оказывается не подписаны вообще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Оживил. Только для реалищации кэша мостов должно быть четыре тригера: два что имеются и по одному вместо самого верзнего и самого нижнего логического элемента И, чтобы внизу было значние 1 если триггер с меткой Bridg содержит единицу и светодиод мигал уже, или Bridg содержит ноль, а верхний пропускает если Bridg содержит 0, или 1 и не мигал светодиод. Данная схема пока просто мигает светодиодом. Завтра доработаю и посмотрю заменив верзний и нижний И на RS тригеры. Тайм-прайм маленький, поэтому так долго и медленно.

 

Screenshot from 2024-03-04 21-31-00.png

Аппартано должен мигнуть каждый светодиод в цепи. А вместо светодиода в будущем адрес памяти кэша команд с которого читается команда без дешифрации адреса а просто по такту...ну или как-то ещё.

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каждый светодиод где в тригере с меткой Bridge установлена 1. Верхний триггер. Не знаю почему на скрине не видно метки 😞

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схема с недоработкой, которую нужно доработать (мало времени в сутки). Схему звена изменил. Пришлось поломать чутка голову, ... в общем цепь запускается слева направо, кнопка Start загружает сразу во все тригеры Flag_Starta значение единицы, единица в обоих тригерах блокирует прохождение сигнала по линии. Любое хвено активируется только при наличии сигнала.

Суть недоработки: прохождение сигнала будет блокироваться при нуле в обоих тригерах - тут недостаточно одного исключающего ИЛИ внизу схемы, если кто-то может подсказать - подскажите пожалуйста (может кто-то увидит ошибки которые ожидают дальше, но только пожалуйста без полемики - только по существу), если нет - додумаю завтра сам.

Screenshotfrom2024-03-0523-06-16.thumb.png.fe12d499bc04491d37de919d5b9f4dcc.png

Мне так кажется, что для данной схемы звена можно сделать вообще ноль в тригере Flag_Starta проходным.

Хотя это заблуждение. Надо думать.

Если сделать ноль прозодным сигналом, то цепь вынуждена будет перезаписать все единицы - это потеря скорости. Тут только думать и искать решение.

прозодным сигналом Проходным сигналом.

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотя опасения излишни, если в тригере моста ноль- тригер старта не обнуляется. 

Это чисто логически, симуляцию именно такую не прогонял-времени уже нет, вечером только. 

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё намного сложнее оказалось. Так для кэша из пяти ячеек. Я не знаю насколько это подходяще для FPGA.

Константа 1 подаётся условно. Кнопка вверху справа запишет в верхние триггеры единицу

Так всё работает как и задумывал.

Screenshot from 2024-03-06 22-12-31.png

И не известно насколько это можно упростить согласно работе с FPGA

Симулятор не освоил, поэтому константа внизу и приходится менять её значение.

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для больших модификаций конечно нужно что-то думать ещё, но для небольших вполне годно, или даже для пошагового выполнения - должен быть выигрыш на дешифрации адресов кэша команд.

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам подсказка- кроме RS латча еще бывает D-латч, который нормально понимается STA и синхронными тулами. А на RS можно только асинхронный дизайн делать, либо как то приводить RS к D-защелке, но тул тское все равноне поймет. Если же такова и была цель - асинхронный дизайн, то почитайте сначала учебники, хотя бы. Схема выглядит зело страшно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Гипотетически схему лучше оставить асинхронной, а синхронизацию производить с помощью флага- после очередной выдачи содержимого кэша команд он оставит состояние флага 1, после чтения команды процессор обнулит флаг, после чего только цепь сможет получить возможность работать дальше. Нужно как то провести интеграцию режимов с обоих сторон. Вечером посмотрю что с D  лат чем можно тут сделать. 

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В идеале сделать так, чтобы из таких звеньев можно было динамический двумерный массив сделать...вместо триггеров мостов. Но это вряд-ли наверное (у нас забастовка, делать ничего кроме как размышлять сейчас не могу) . И тогда узлы и будут мостами. Не знаю- осилю ли я такую схему... А лучше чтобы и массив двумерный и мосты одновременно... Смогу не большими средствами, при условии что массив будет перебираться последовательно, а прыжки только в режиме счётчика команд. 

Вот так стабльнее намного, вот это надо синхронизировать.

Сначала кажется что один элемент И после исключающего ИЛИ лишний, но на самом деле это не так - он нужен.

 

 

Screenshot from 2024-03-07 20-01-48.png

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотя может он и правда лишний, я это проверю когда проведу синхронизацию. Логически - он лишний, но таким образом я устраняю недоработку симулятора.

Для синхронизации достаточно такого И, который изменит своё состояние при подаче третьего сигнала - сигнала синхронизации. Наверное это как мне подсказали что-то вроде D триггера.

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В симуляторе наиболее стабильна такая схема. Вот тут надо проводить синхронизацию. Последовательность действий такая - забиваем тригеры мостов, включаем моделирование и нажимаем кнопку, отключаем моделирование выставляем 1 в триггер что в левом нижнем углу. Далее по шагам жмём CTR+I .
Симулятор Logisim

 

Screenshot from 2024-03-07 22-48-12.png

Задача чтобы проскочить несколько звеньев с нулями в тригеррах Bridge больше не решается, так как быстрее уже вряд-ли будет, решается задача по синхронизации этой асинхронной схемы с предполагаемым процессором. 

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю насколько эта схема синхронизации хороша вообще. Мне нужно лучше освоить симулятор. Так и не смог в включенном моделировании проводить симуляцию чтобы убедиться что всё без ошибок - проводил пошаговое моделирование (так и не понял как сделать чтобы когда нужно подавался сигнал синхронизации - поставил программируемый генератор). Схема синхронизации примерно такая - снова на RS триггерах, и не знаю насколько эта схема подходит для FPGA. Принципиально - ничего не изменилось, просто сигнал на диод пойдёт только когда с программируемого генератора поступит сигнал, будет задержка небольшая - добавился один элемент И, в остальном скорость работы схемы должна остаться прежней. Всё так-же по часу в день, правда сейчас больше трачу часа.

И завтра после работы попробую наладить FPGA - всё уже доставлено, что необходимо было.

 

Screenshot from 2024-03-08 23-00-10.png

Изменено пользователем accurate_random

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...