nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 15 Jul 2018 22:52



Reply to topic  [ 355 posts ]  Go to page Previous  1 ... 19, 20, 21, 22, 23, 24  Next
Давайте думать над железкой (TRIADOR) 
Author Message
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
Lavr wrote:
идея такая: код JMP удерживается


Интересная мысль. Я уже думал делать копию счётчика, обновляемую с небольшим запозданием. Но ведь если взять копию кода инструкции, обновляемую с небольшим запозданием, точно то же самое даст, но это 5 разрядов, а счётчик 7. Спасибо за идею.


07 Dec 2017 14:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Lavr wrote:
идея такая: код JMP удерживается в регистре команд
Интересная мысль. ... Спасибо за идею.

Пожалуйста, конечно... вот только идея не моя - так типично и делается процессор.
Я же показывал один из самых простых вариантов:
Image

_________________
iLavr


07 Dec 2017 17:04
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
По ссылке пройти не моге:
Quote:
You are not authorised to read this forum.


Дальше, я с трудом читаю эту схему, но мне кажется, что в регистре команд она предлагает хранить адрес, а не сам код инструкции.


08 Dec 2017 01:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
мне кажется, что в регистре команд она предлагает хранить адрес, а не сам код инструкции.
В регистре команд всегда хранят код операции (инструкции) вне зависимости
от того, кому и что кажется. Он поэтому и носит такое специфическое название этот регистр.

Вот я в топике про Логисим привел примеры двух проектов самодельных процессоров,
и в обоих проектах этот регистр есть: IR - Instruction Register (Регистр Команд) :
Attachment:
main_path.gif
main_path.gif [ 10.82 KiB | Viewed 802 times ]


P.S. Кстати, в приведенной мной выше блок-схеме с русскими обозначениями, регистр команд хранит тоже не адрес... :wink:
Если посмотреть по стрелкам, то регистр команд получает значение из регистра данных (BD - Buffer Data),
который удерживает значение, считанное с ШД из памяти.
Если цикл FETCH (выборка команды), то BD содержит инструкцию, и её фиксируют в регистре команд,
если же цикл EXECUTE (исполнение команды), то BD содержит второй аргумент для АЛУ.

_________________
iLavr


08 Dec 2017 05:13
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
Добавил буфер для хранения текущей инструкции (на фотографии на макетке), джамп взлетел как надо. Как всё-таки хорошо, что я развёл полусумматоры и ячейки памяти для использования на макетке, сильно облегчает жизнь. Вот, кстати, мне и пригодился один "лишний" цикл инструкции. Так что на первом цикле я готовлю код инструкции с линиями enable_XX, на втором цикле копирую из регистров в промежуточный буфер и делаю нужные вычисления, на третьем цикле сохраняю результат назад в память.

Image

Итого у меня есть половина АЛУ, осталось сделать операции копирования и пропуска команд, причём непосредственно сам пропуск уже реализован в дешифраторе инструкции. Надо срочно документировать это всё, иначе наглухо забуду, после вынужденного полуторамесячного перерыва ничего не вспомню.


08 Dec 2017 13:11
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
Запаял все оставшиеся тримкусы, теперь плачу, чего же я раньше не делал так. Раньше давил вручную шприцем пасту на каждую площадку (ну, на soic давил колбасу). Дело муторное, через тонкую иголку паста давится плохо. Обзавёлся трафаретом. Вставляю плату в держалку, которая мне служит для разрезания плат:

Image

Накидываю трафарет на бумажной петле, вжик старой кредиткой пасты:

Image

Вот что получается:

Image

Самая трудоёмкая операция в пайке тримуксов - три секунды на тримукс теперь... Что ж я раньше-то трафарет не сделал?!


10 Dec 2017 14:31
Profile
Doomed

Joined: 30 Nov 2013 12:08
Posts: 628
Location: WWW
Reply with quote
haqreu wrote:
Что ж я раньше-то трафарет не сделал?!

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


10 Dec 2017 16:57
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16702
Location: Colorado
Reply with quote
haqreu wrote:
Запаял все оставшиеся тримкусы...

И сколько их у тебя теперь? :roll:

_________________
:eugeek: https://twitter.com/Shaos1973


12 Dec 2017 04:01
Profile WWW
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
В районе 350, не считал точно.


12 Dec 2017 05:38
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
В итоге базовая реализация триадора будет иметь 6 пластин ПВХ 333x333 мм (нет, я просто разрезал квадратный метр на девять частей!).
Как мне эти 6 пластин организовать в пространстве в конечном устройстве? Просто сделать кубический ящик с выдвижными платами не хочется. Какие будут идеи?


12 Dec 2017 09:46
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16702
Location: Colorado
Reply with quote
Если их 6, то можно под углом 45 градусов их наклонить и расположить по кругу - типа хексагон ;)

Точнее это будет как бы верхушка "Truncated Icosahedron":

Image
http://www.salsburg.com/models/wire_truncated_icosahedron.html

_________________
:eugeek: https://twitter.com/Shaos1973


12 Dec 2017 15:59
Profile WWW
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
Не даёт выигрыша по сравнению с вообще просто на столе разложить. Занимаемая площадь почти та же, переносить сложно.

У меня пока было две идеи: сделать куб, но не с выдвижными платами, а просто расположив платы по всем шести граням. Разумеется, придётся делать тессеракт, чтобы защитить выступающие детали:

Image

Вторая идея сделать треугольную призму со рёбрами треугольника 333, а оставшимися тремя по 666

Image

Да, забыл ограничения добавить: три платы должны допускать прямой допуск руками (память инструкций, рубильники щёлкать), одна должна быть в прямой видимости (память регистров). Возможно, неплохо было бы видеть плату со счётчиком. АЛУ видеть не обязательно, там ничего визуального происходить не будет.


13 Dec 2017 00:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
А я таки думал, что всё это так и останется на плоскости, ибо подписано наклейками,
визуально понятно всем, и годно в качестве иллюстраций для футуристической книги
про "TRIADOR и всех, всех, всех..." :wink:

Ну разве что можно это спрятать от пыли в стеклянные шкафы и поставить вдоль стен
в спальне, дабы никому не мешало, но изображало светомузыку на сон грядущий... 8)

Ну как сделал этот самый Harry Porter from Portland State University:
Attachment:
relay0d2.jpg
relay0d2.jpg [ 266.17 KiB | Viewed 703 times ]


Я так смотрю, этот боян всем очень понравился на Хабре: https://habrahabr.ru/post/220865/ :lol:

_________________
iLavr


13 Dec 2017 04:31
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
Плоский вариант размещения самый простой, но плох своей немобильностью. Начну сюда периодически скидывать рисунки, документирующие мою реализацию триадора. Начну в хронологическом порядке :)

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

Image

Внутри сидит пять раз повторённая вот эта схема:

Image


13 Dec 2017 05:16
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 273
Reply with quote
Дальше, программный счётчик имеет 9 входящих линий и 7 выходящих:

Image

7 выходящих линий V0-V6 дают семиразрядный троичный счётчик. При этом V4,V5,V6 даёт номер сегмента памяти программ, V1,V2,V3 смещение (номер инструкции внутри сегмента), а V0 - это номер текущего цикла. То есть, у меня каждая инструкция будет иметь три цикла.

На вход CLK идёт троичная пила, при этом счётчик увеличивает своё значение при каждом восходящем фронте N-O-P.

Счётчик считает импульсы CLK только если на линии Rewrite подана -1. Если на Rewrite не -1 (0 или 1), то значение счётчика переписывается на то, что дано на входных линиях R0-R6.

Внутри счётчик выглядит следующим образом:
Image


13 Dec 2017 05:22
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 355 posts ]  Go to page Previous  1 ... 19, 20, 21, 22, 23, 24  Next

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.