Страници: 1 ... 18 19 [20] 21 22 ... 25   Надолу

Автор Тема: Проект - Q4  (Прочетена 165727 пъти)

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #285 -: Aug 02, 2014, 12:34 »
Отдавна не съм се занимавал с процесора, не го виждам често понеже е в другата стая и буквално го бях забравил напоследък. Ще гледам до края на тази седмица да си събера частите и да го възстановя. Мисля да купя и някое дисплейче тия дето са по 16х2 гледам че вървят по 10-15лв бройката, което ме устройва напълно. Отказах се от матриците - за сега нямам възможност нито да си купя нито да я използвам пълноценно, пък и за сега проекта е малък, не си струва толкова пари за нещо което няма да е толкова значимо. Ще видя идващата седмица какво мога да направя, ще се опитам да добавя и модул със дисплейчето, ама ще видим как точно ще стане. До колкото разбрах тия дисплеи се управляват лесно - има шина със данни по която се пращат символите от таблицата в дейташиита на дисплея и клок който синхронизира цялата система. Първо ще пробвам ръчно да видя дали ще може, пък после ще му измисля и управляващата логика. Бях се замислил дали да не взема някой стар принтер и да го ползвам за нещо като дисплей, но за сега това е само идея. Ако не стане номера с дисплея ще си купя някой боклук и ще го преправя за моите цели. Това е от мен за днес.
Поздрави,
Георги.
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #286 -: Aug 09, 2014, 13:59 »
Реших малко да поусложня процесора - ще му добавя стек към процесора, за да може да се записват данни от акумулатора. Така на практика ще имам максимално 16 копия на акумулатора, които ще мога да взема във всеки един момент. Сега схемата е в режим поп и пуш, може да добавя и сиик, за да имам достъп до всички стойности, но в този случай трябва да добавя и един регистър пойнтър, да си пази текущия елемент. Ето линк към схемата - взета е директно от симулатора, за това е така грозно начертана : https://docs.google.com/file/d/0ByCs3cXQpIZQeFJXSzgxMlVfWnc/edit?pli=1
Активен

kierenski

  • Напреднали
  • *****
  • Публикации: 92
    • Профил
Re: Проект - Q4
« Отговор #287 -: Aug 09, 2014, 17:27 »
Към схемата не забравяй да сложиш по един кондензатор успоредно на резисторите защото при реална схема се получава високочестотно генериране при превключване което води до неправилна работа на интегралните схеми, мисля че между 10-100nF ще свърши добра работа и разбира се наложително е да сложиш едни по големи резистори навсякъде където са на входовете на  ИС защото така ги храниш с твърде много ток на входовете и пак ще създават проблеми, може би между 5k до 50k ще са добре.
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #288 -: Aug 09, 2014, 19:11 »
Да, аз това винаги го правя, просто не го отбелязвам на симулатора, защото там условията са идеални. Освен това, реших пак да променя дизайна вътрешно. След като малко се позамислих, разбрах как точно ще станат нещата с процесора, аба направо преоткрих топлата вода  ;D. Исках да го правя по моя начин отначало - всяка команда се изпълнява точно на един такт, обаче не се получава така. Каквото и да правя с тоя процесор - няма да има достатъчен брой команди и няма да върше никаква полезна работа. Сега направих една псевдодиаграма, по-нататък като я изчистя ще я кача тук, та идеята е че имам 2 брояча предполагам че ще бъдат повече от 4 бита, (щото иначе няма да има смисъл за 16бита програма да го правя) - поне 8 може и повече, това ще стане като свържа 2 4бит. брояча и ги направя като един. Ще се получи буквално нещо като вложен цикъл. Малкия брояч ще е свързан със един малък РОМ, който ще пази подинструкциите, който отиват към дешифратора. За него ще бъде свързан и клока. Големия брояч ще бъде свързан със програмната памет, или по-скоро с адресната шина, защото планирам да добавя и рам. Една примерна програма на процесора + теоретичното и изпълнение :
LDA 5
INCA
OUTA

Това ще бъде записано в първата памет - основната - тази която е на по-високо ниво. Когато се пусне въпросната памет клока от по-малкия брояч ще започне да щрака от адрес 0, които е зареждането на регистър А от въпросната памет. Да кажем че командата в десетична система ще бъде на адрес 5 на малкия РОМ. Зарежда се в подброяча 5 и почва да брои нагоре - 5..6..7..8.. и така докато не стигне края на подкоманда.
В по-малкия ром с подпрограмите ще име следните команди :
LDA O1
адрес  команда
5         прочети следващия запис в паметта, без да го зареждаш в брояча
6         запиши данни от шината в регистъра
7         зареди следваща команда

Така малкия брояч ще щрака от 5 до 7 и след това ще зареди следващата комадна, като просто щракне един път клока на главния брояч. По този начин операндите и командите ще текат през една и съща шина, а всяка команда може да се изпълни на колкото трябва такта.
INCA
8 зареди рег. А в АЛУ
9 събери А с 1
10 запиши резултата в акумулатора
11 зареди рег.А с акумулатора
12 зареди следваща команда

OUTA
13 тука командата е НОП, за да не се счупи нещо  ;D
14 зареди в акумулатора от рег.А
15 откачи паметта от шината за данни
16 изведи акумулатора в шината за данни
17 закачи паметта
18 зареди следваща команда

Общо взето ще е нещо такова има още неща да обяснявам но мисля, че ще е по-добре като ги нарисувам. Ще имам регисътр с флагове за условните прескачания, вътрешна шина по която са свързани всички регистри, стека и блока за аритметика, но това в другия пост. Надявам се да сте ме разбрали  :D.
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #289 -: Aug 18, 2014, 21:01 »
Ето какво пристигна днес  :). Чакам още 10 бройки и дисплейчето, към сряда щели да дойдат.
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #290 -: Oct 19, 2014, 21:57 »
Здравейте отново,
Събрах голяма част от частите, от време на време се заигравам с тях, но големият проблем е, че най-важните части - РОМ-а ги няма никъде по магазините, единствения вариант да ги поръчам е през интернет. Мисля това и да направя, но ми хрумна една идея, докато браузвах хакадей, видях една платка, която човека сам си я е направил поръчана през интернет по схема. За жалост не намерих никъде никаква компания която да предлага тази услуга. Ако някой знае нещо по въпроса да остави един линк с връзка.
Преди известно време един познат ми каза че в завода "печатни платки" в Русе имало машина на която можело да си правиш интегрални схеми, но някакъв човек я залял с киселина без да ще и от тогава не съществува. Това е другия вариант - ако има някъде в България такова място ще е страхотно, макар че аз не съм чувал за такова, ако някой се сети..
Активен

Stancho_25

  • Напреднали
  • *****
  • Публикации: 234
    • Профил
Re: Проект - Q4
« Отговор #291 -: Oct 19, 2014, 22:30 »
За изработка на печатна платка ли става дума? Ако за това става дума.

Вариант 1
Вариант 2
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #292 -: Oct 26, 2014, 19:58 »
Ами не беше точно това идеята, щото аз печатна платка мога да си направя и сам. Идеята ми беше дали има някакъв завод в който правят интегрални схеми и направо да си направя процесора на чип. Или пък да им дам схемата и те да ми я фабрикуват - освен платката да налепят и компонентите по нея.
Междувременно, РОМ скоро няма да намеря, така че мисля да използвам някой контролер за подаване на сигнали, примерно ардуино, пък знам ли, по коледа стават чудеса  ;D, може и да си намеря РОМ.
Поздрави,
Георги
Активен

kierenski

  • Напреднали
  • *****
  • Публикации: 92
    • Профил
Re: Проект - Q4
« Отговор #293 -: Oct 27, 2014, 11:15 »
zxz,  отиваш твърде далеч !!!

Ако искаш да правиш ИС по добре се откажи, твърде скъпа е изработката на маската (между 100 хил. и 100 мил. лв. в зависимост от технологията) и след това всеки чип ти е между 10 цента и 50 долара в зависимост от корпуса и броя крака (доста злато е това).

Ако искаш за малки бройки нещо евтино най-добре е FPGA за повече ресурси (около 2-3 пъти е по-бавно от маскова ИС със същия процес) иначе можеш да ползваш микроконтролер и с него да симулираш работата на чипа който желаеш, но е доста по-бавно като работа (10-1000 пъти).

Сега се появиха добри и евтини CPLD като всички чипове които ползваш до момента ще ти бъдат около 500 логически блока, а един 32 битов микропоцесор без периферия е около 2000 с периферия може да стане 10000 л.б.
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #294 -: Nov 16, 2014, 19:48 »
Отказах се от РОМ паметите и реших да използвам голяма РАМ памет вместо РОМ. Сега се чудя как най-лесно да съставя програматора, щото не ми се пише всеки път програма с ключове :D. Отначало си мислех нещо с ардуино, другия вариант е през ЛПТ порт да предавам данните, ама мисля че така ще стане твърде сложно. Промених още малко дизайна, върнах се леко към стария. Ще има 2 регистъра единия е временен, другия е основен или т.нар акумулатор. Интересно ми е някои команди дали не могат да станат за един цикъл - примерно INCA, защото в експериментите си с двоичните събирачи, се оказа че може да закача регистъра на вход А, на вход В да имам примерно 0001 и изхода да е свързан с входа на А, ако в този момент подам команда за запис в регистъра, той се увеличава с 1. Обаче тоя номер става само веднъж - не продължава да си го увеличава. Интересно ми е на какво се дължи това - трябва ли да е така или захранването прави смущения и от там се получава номера? Ако нещата са в ред, това много ще му улесни с изработката на декодера на инструкции. Схемата е нещо такова към момента:


           Програмен Брояч<---------------------------+
                     |                                                   |
           ПРОГРАМА(РАМ)                                      |
                     |                                                   |
            Инструкционен декодер                         |
                     |                   |                               |
                     |        Контролна логика и сигнали-+
                     |
                     |
    буфер за вход на операнд
                     |
              ____|________________________
              |                        |                       |
           рег.А           рег.В(временен)          |-ИЗХОД (диоди)
              |                        |                       |
              ЛОГИЧЕСКИ БЛОК                       |-ВХОД(ключета)
                           |                                   |
             буфер за изход на ЛБ                  |-ИЗХОД(дисплей)
                           |                                   |
                           |____________________|
 
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #295 -: Nov 23, 2014, 12:03 »
Програмен брояч и РАМ, без преден панел, оставил съм изводи само. РАМ-а не е същия който използвам, но е подобен. Аз реших да използвам LH5116 което е 2к х 8.
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #296 -: Nov 24, 2014, 23:03 »
Това е последното което направих "оня" ден :D, реших днес да го публикувам. Разбира се има доста неща които трябва да добавя, но това е основната идея. Ще го направя на двуслойна платка по метода на ЛЮТ (с ютията  ;D) а самата платка ще е от 2 слепени едностранни. Чудя се дали да свържа по някакъв начин с рейки примерно АЛУ блока, за да мога да добавям функционалности, понеже за сега съм решил да има само най-простите - директен изход, събиране и сравняване. Задължително шината ще има няколко рейки, за да мога да добавям рам примерно или пък дисплей. РАМ-а май ще се окаже най-бавния компонент (програмния) поне спрямо останалите той е най-бавен по спомен. Надявам се поне на 10мгхц да работи :D.

П.С. Вероятно сте забелязали че има доста промени от предната схема и това е така защото още събирам идеи. Вероятно към края на седмицата ще съм готов с главната схема, ще я симулирам, ще видя как работи, и ако е всичко е наред ще имаме работещ процесор другата седмица  :)
П.С. 2 Къде се изгубиха техниците и критиците на форума, ще ми трябват да прегледат схемата накрая - винаги може да пропусна нещо, а като го направиш на платка грешно.. кофти.
Поздрави,
Георги
Активен

kierenski

  • Напреднали
  • *****
  • Публикации: 92
    • Профил
Re: Проект - Q4
« Отговор #297 -: Nov 25, 2014, 16:51 »
GOTO_JMP инструкцията няма да ти работи добре.
на IC6 трябва да имаш обратен буфер като закъсняваш GOTO_JMP с закъснение 1 такт (тригер) за да имаш на следващ такт след JMP инстукция адрес какво да се зареди в IC1 и IC2 (броячите).

В повечето процесори преходите са на най-малко 2 такта, тогава ще можеш да махнеш и ръчното записване (да си имаш команда запис).
Активен

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: Проект - Q4
« Отговор #298 -: Nov 25, 2014, 17:42 »
Аз мислех по-идиотско решение - например да сложа 2 регистъра по 4 бита и да ги захранвам от шината 2 пъти за да се осъществи прескачането. Това което предлагаш ти ми харесва повече, така ще го направя. До колкото те разбрах, трябва да закача един тригер на входа на GOTO_JMP и това е всичко. Т.е сега командата ще представлява
0000 0000 - GOTO
0000 0001 - 0000 0100
Ще добавя буфера и тригера към схемата и готово. Благодаря, че ме светна [_]3.
А да попитам, гледам по доста платки има малки кондери закачени към тия схеми, те на входа ли се слагат? Колко горе-долу трябва да бъде стойността им?
Активен

kierenski

  • Напреднали
  • *****
  • Публикации: 92
    • Профил
Re: Проект - Q4
« Отговор #299 -: Nov 25, 2014, 18:02 »
Точно така си разбрал за адреса и така е нормално да се прави, но по шината данни имаш още да пипаш доста, както и по входно изходните интерфейси.

До колкото кондензаторите те се слагат защото входовете на интегралните схеми се възбуждат много лесно от шумове и при по-големи честоти се смущават доста за това в зависимост от честотата се слагат някакви пикофаради между 10p и 1000p обикновенно.
Активен
Страници: 1 ... 18 19 [20] 21 22 ... 25   Нагоре
« назад напред »