МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА: Тактирование

Тактирование 7 года 7 мес. назад #24

Юрий, Николай, спасибо за форум.

Вопрос по тактированию марсохода, в новой версии появился внешний генератор на 100МГц. Это хорошо, даже очень хорошо. Но если возможность "выше и быстрее" скажем 350МГц и 450Мгц? Я понимаю что по IO такие частоты и не пролезут из вне, но может быть у вас есть какие то наработки по "умножению внутри". Конечно это никакой не PLL разговора быть не может, но задержать меандр на несколько нс, а потом похорить с исходным все таки можно. Другое дело что я бы не рискнул учитывая тот факт что Квартус автоматически может отроутить это как угодно с разной задержкой естественно. Сдается мне что вы такие фокусы пробовали :)!? Хотя и строго настрого запрещено гейтовать клоки со студенческой скамьи их все равно гейтуют :), руководствуясь "если сильно хочется но нельзя - то можно". Буду благодарен за ответ, особенно за развернутый.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Тактирование 7 года 7 мес. назад #25

Максимальная частота , которую можно подавать на пин по даташиту 304мГц, конечно. если
набраться наглости, можно 400.Друрие вопросы - где их взять(генераторов на 400 нет)? и что за такое время (2.5нс) можно сделать? Для сведения - в MAX2 луты на 10 и максимальная частота , на которой может работать 10-битный бинарный
счетчик (по все тому-же даташиту) 230м. Хотя 230 - тоже не плохо.
Что касается второго вопроса, я пробовал удваивать частоту внутри плис, для этого исходная частота должна быть меандром
(или очень близко) но этот метод подходит только в каких- то частных случаях.Нужно изучать конкретную задачу.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Тактирование 7 года 7 мес. назад #26

Юрий 304Мгц - это само по себе замечательно. Ну если конечно совсем со средствами не считаться то наверное можно и такое вот взять www.bmgplus.ru/images/pdf/pdf253.pdf . В принципе 100МГц внешнего хватит если их удвоить до 200МГц, замечательное подспорье для развития.

Т.е. 10-битный сумматор по схеме A = A + CARRYin, где CARRYin = 1'b1 работает на частоте 230МГц (т.е. удесятеренная потеря на LUT-е плюс на цепи переноса). Это значит что в принципе сумматор 4 бита + 4 бита можно запустить на этой же частоте (а может и чуть большей). И что самое главное никто не мешает конвейернуть 8 разрядный сумматор (8+8 ) который будет работать почти с тем же темпом выдачи результата (пусть на частоте 200МГц).

Задача же под такую частоту по хорошему мне видеться только одна (так как PCB марсохода не располагает к ВЧ на ногах) расширить ваш с Николаем опыт проектирование на базе марсохода MCU с небольшим функционалом но поближе к 100МГц которые можно обеспечить на IO. Функционал можно было бы расширить симуляцией необходимой архитектуры, которое само по себе затратно и на низких частотах даст проигрыш к реальной архитектуре. Затраты на симуляцию можно было бы снизить разгоном по частоте до обеспечиваемых внешним SRAM - 100-120МГц.

Память и периферию на 100МГц PCB марсохода я думаю потянет?

Учитывая что у Вас Юрий есть опыт запуска удвоителя внутри, наверняка вы прагмами Квартуса фиксировали эти сигналы тактовых частот как глобальные и не перемещаемые по дизайну (у меня тут опыта практически никакого нет, поэтому я могу ошибаться), то может быть у вас будет желание и время поделиться примером такого дизайна на сайте марсоход.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от digitalinvitro.

Re: Тактирование 7 года 7 мес. назад #27

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Тактирование 7 года 7 мес. назад #28

umarsohod пишет: Про удвоение как-нибудь расскажу.


Огромное спасибо, очень интересно, жду с нетерпением.

umarsohod пишет: Что касается MCU, тема сама по себе очень интересная, но я думаю , макс для этой цели маловат.


Вот как раз обратное и хочется доказать :) Что именно 240 LE вполне может хватить для полноценного MCU. Вы и сами наверное именно поэтому затеяли reduced AVR. Первая проба и вообщем то не плохая но при таком малом количестве LEs классический подход проектирования вычислительных архитектур не подойдет. Николай в частности озвучивал что данная тема его тоже "зацепила".

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


Это безусловно, Юрий. Но в случае с марсоходом и видео игрой тенис, так и проситься применение конечного автомата (фактически по такому принципу реализованы многие ваши примеры), а конечный автомат это уже процессор. И тогда почему бы не сделать еще один шаг в этом направлении дать марсоходу программозадатчик. Ну что то такое наподобие 1814ВЕ4. А то и того проще как 1814ВЕ1(TMS1000) который стоял в вашем тезке Луноход ИМ-11 (BigTrak).

P.S. Конечно, Юрий, это больше спортивный интерес. Все таки проект Марсоход у вас задирает "планку", а не опускает. :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от digitalinvitro.

Re: Тактирование 7 года 7 мес. назад #29

  • nckm
  • nckm аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 88
  • Спасибо получено: 23
по поводу процессора на CPLD.
После реализации reduced AVR процессора мне пришла в голову мысль, что конкретно для этого чипа наверное правильно было бы делать процессор с "последовательным АЛУ". Проблема в том, что флеш память в Altera CPLD последовательная, следовательно команды и операнды читаются из нее последовательно. Это конечно сильно снижает скорость работы процессора, но зато можно вычислять операции то же последовательно. Зачем делать скажем 8ми битный сумматор, если можно складывать побитно? это наверное может помочь сэкономить место
Спасибо сказали: digitalinvitro

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Тактирование 7 года 7 мес. назад #34

nckm пишет: по поводу процессора на CPLD.
После реализации reduced AVR процессора мне пришла в голову мысль, что конкретно для этого чипа наверное правильно было бы делать процессор с "последовательным АЛУ". Проблема в том, что флеш память в Altera CPLD последовательная, следовательно команды и операнды читаются из нее последовательно. Это конечно сильно снижает скорость работы процессора, но зато можно вычислять операции то же последовательно. Зачем делать скажем 8ми битный сумматор, если можно складывать побитно? это наверное может помочь сэкономить место


Николай да мы с вами по этому поводу списывались, а давайте оценим выигрыш от применения однобитного сумматора? Ведь экономим мы в этом случае не регистровую часть LE, а только LUT. Верно? Регистровая же часть (триггерная) скорее всего пойдет в небольшой перерасход на обеспечение состояний автомата декодирования, на прием адреса регистра источника и приемника. Предположительно от (5...6)*2 триггеров на хранение адресов.

Возьмем наиболее часто используемую команду с константой SUBI Rd, K, она использует сумматор в АЛУ и константу получаемую индеректно (непосредственно в поле операнда). Имеем вот такую разбивку по полям машинного слова SUBI - 0101 .KKKK dddd KKKK.

Константу мы получаем побитно и кроме того получаем еще и адрес регистра приемника результата. Предположим что код операции 0101 мы получим заранее, хотя там все у Atmel-а очень не просто с длинной декодируемой части она переменная, да и еще к тому же размазанная по машинному слову. Предположим так же что и адрес приемника мы тоже получим до константы (допустим что мы перетасуем поля в нужном порядке). Тогда с 8 такта мы можем начать потактовое сложение или логические операции. С константой вроде бы все срастается. Есть выигрыш в LUT, не очень большой но есть - (6..7)*4 LUT-ов. 4 это кол-во операций в АЛУ ADD, AND, XOR (EOR), OR. Хотя при желании можно реализовать все эти операции на базисе Шеффера, размениваться не имеет смысла, выигрыш будет ничтожный а вот автомат состояний вырастит.

Возьмем команду между регистрами - ADD 0000 11.rd dddd rrrr. Очевидно что как бы не тусовали поля машинного слово, мы вынуждены принять оба операнда в промежуточные регистры и начать с 16 такта побитную операцию над значением извлекаемым по адресам r и d. Тут у нас явный проигрыш по регистровой части потому что принятые r и d нужно где то "осаживать" до результирующей дешифрации и извлечения побитно из регистрового файла значений.

На унарных операциях мы тоже получим выигрыш, но они используются не часто их можно было бы и убрать. Кроме того некоторые унарные операции в AVR реализуются спекулятивно как макросы уже имеющихся конструкций.

Что на выходе отыграем на LUT-ах на 20..25 LUT-ов. Проиграем в регистровой части, а ведь она нам нужней. Кроме того а как реализовывать ST и LD?
В тот же медленный флеш писать? Как вариант наверное можно, но не очень то практично.

Что делать с регистровым файлом? От силы 8-16 регистров влезет.

Николай а почему если не секрет AVR? Почему не reduced PIC или reduced STM8 или 65xx или тот же 8051?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от digitalinvitro.

Re: Тактирование 7 года 7 мес. назад #41

  • nckm
  • nckm аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 88
  • Спасибо получено: 23

digitalinvitro пишет: Хотя при желании можно реализовать все эти операции на базисе Шеффера, размениваться не имеет смысла, выигрыш будет ничтожный а вот автомат состояний вырастит.

ну я не утверждаю, что выигрышь несомненно будет.. надо пробовать

digitalinvitro пишет: Николай а почему если не секрет AVR? Почему не reduced PIC или reduced STM8 или 65xx или тот же 8051?

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Тактирование 7 года 7 мес. назад #42

nckm пишет:

digitalinvitro пишет: Хотя при желании можно реализовать все эти операции на базисе Шеффера, размениваться не имеет смысла, выигрыш будет ничтожный а вот автомат состояний вырастит.

ну я не утверждаю, что выигрышь несомненно будет.. надо пробовать


Николай это я про базис Шеффера писал, что не имеет смысла размениваться на NAND в качестве единственного элемента (однобитного) ALU через который реализовать все операции ADD,AND,OR,XOR. Выигрыш будет незначительный если вообще будет. А однобитный сумматор, AND, OR, EOR по отношению к полноразрядным сумматору, AND, OR, EOR выигрыш дадут.

nckm пишет:

digitalinvitro пишет: Николай а почему если не секрет AVR? Почему не reduced PIC или reduced STM8 или 65xx или тот же 8051?

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


А как вы расцениваете реализацию на базе собственного ядра симмулятора (или эмулятора если правильней) любой другой архитектуры тогда и средства разработки не нужны, можно воспользоваться уже имеющимися от ассемблера до языков высокого уровня?

И как быть с ЗУ, все таки память то будет нужна внешняя. Пользуясь вашим с Юрием девизом из старого барахла можно выудить кучу полезного - набортная кеш память старых 486 и 386 как мне кажется наиболее подходящий вариант с временами доступа от 7 до 15 нс получиться просимулировать любую архитектуру как родную загнав исходное ядро на частоту повыше.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от digitalinvitro.

Re: Тактирование 7 года 7 мес. назад #51

  • nckm
  • nckm аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 88
  • Спасибо получено: 23
эх, если ли бы да на все идеи времени побольше.. :-(

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.190 секунд

facebook  GitHub  YouTube  Twitter