Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
В том то и дело что не совсем... Вот, вроде нашёл как попроще сделать так, чтобы все триггеры меняли состояние одновременно: http://vhdlverilog.blogspot.com/2013/07/synchronous-counter-using-d-flipflop.htmlP.S. Похоже это тоже самое, что я для модели своих троичных часов в своё время "изобрёл" - синхронный инкрементатор на полусумматорах http://www.nedopc.org/forum/viewtopic.php?f=79&t=60&start=15http://www.nedopc.org/forum/viewtopic.php?f=79&t=11076#p119749P.P.S. Либо можно попрбовать на JK-триггерах нагородить... P.P.P.S. Вроде пишут, что если J и K подтянуты к "1", то оно превращается в T-триггер, так что правильнее было бы сказать "на T-триггерах нагородить"... P.P.P.P.S. Согласно ТТЛ-библии ИЕ7 устроено так:
You do not have the required permissions to view the files attached to this post.
|
18 Jan 2016 10:29 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
А вот синхронный счётчик 74S163 тоже XOR-ы и D-триггеры имеет внутри (именно с буковкой S, т.к. без буковки S без XOR-ов):
You do not have the required permissions to view the files attached to this post.
|
18 Jan 2016 20:27 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Вобщем вот что получилось - на каждый бит кроме двухступенчатого D-триггера со сбросом есть полусумматор (XOR+AND) и мультиплексор (для загрузки значения извне синхронно): Получается что генератор должен быть в 2 раза быстрее - 13.333 МГц или меньше, т.к. как нам надо 3 бита, которые меняют своё состояние одновременно... P.S. 3 корпуса на триггер и ещё 2 на XOR+AND+MUX и того 5 корпусов 74F00 на бит - т.к. битов у нас 11+3=14, то только на генератор клока+PC для 2Кб потребуется 14*5=70 микросхем... P.P.S. Или сделать такими "строгими" только младшие 3 бита, которые считают такты внутри одного цикла, а всё остальное (11 битов PC) пусть будет цепочкой? И по идее этим 3 битам не нужна загрузка - они всегда считают от 0 до 7 - а загрузка нужна будет лишь для PC...
|
18 Jan 2016 23:48 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
561ие8 например внутри устроен вот так : tec.org.ru/_bd/16/41808776.jpg
До 10 выходных сигналов для многофазного тактирования конвейерных схем лучше делать на счётчиках джонсона ( S==2*n ) Больше ( S>10 ) уже невыгодно, поскольку для ( S==2*n ) потребуется намного большее число(==n ) триггеров , нежели для ( S==2^n ) - "капитан очевидность" ..
Для 8-фазного тактирования я взял 4(четыре) JK-триггера из 1531 серии - другими способами добиться надёжной устойчивой работы на 120МГц не удавалось ( в реале - хоть на протезусы смотрю , и даже чутка доверяю , но перепроверяю обязательно - согласно высказыванию одного актёра.. )
|
19 Jan 2016 03:06 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Короче для первых 3-х битов (которые будут считать такты в цикле) сделаю ещё более навороченный двух-ступенчатый D-триггер со сбросом и установкой (чтобы были симметричные задержки в плечах), а для остальных 11 битов (непосредственно PC) будут использованы триггеры попроще... P.S. Да наверное для всех 14 битов сделаю навороченные - т.к. при желании каждую пару таких триггеров можно заменить на один корпус 7474... P.P.S. А вот собственно и он - "навороченный" двух-ступенчатый D-триггер со сбросом и установкой (4.5 корпуса 7400):
|
19 Jan 2016 10:24 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Вот такой синхрогенератор с программным счётчиком у меня получился: Всего тут (10+11*8)/4+14*4.5=98/4+63=24.5+63=87.5 корпусов 7400... P.S. Если вместо самодельных триггеров поставить 7474 микросхемы, то получится всего лишь 31.5 корпусов, а если взять ещё 7486 для XOR-ов, то и того меньше (а если 74163 микросхемы взять, то будет что-то около трёх корпусов ) P.P.S. Комп будет работать на ожидаемой максимальной частоте только если адрес будет успевать инкрементироваться за 600 нс - тут вроде успевает (я насчитал 12 гейтовых задержек на бит в худшем случае - что даёт 462 нс в среднем или 660 нс если все гейты будут из плохой партии с 5нс задержкой - что маловероятно)...
|
19 Jan 2016 22:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Пока вроде решил так сделать - команда NOP будет занимать вторую ступень конвейера и будет ничего не делать - соответственно при RET оно таки будет восстанавливать адрес, который запомнился в момент вызова RST, но кроме того будет взведён флаг "считать текующую инструкцию NOP-ом" (типа SKIP) - тогда прочитанный опять RST не выполнится и PC заинкрементится сам собой, сбросив флаг и указав на следующую за RST инструкцию. А команды A=N, R=~R, R1=R2 и даже RST таки вполне укладываются в первую ступень конвейера (т.е. после операций сложения и вычитания они буду занимать 0 циклов : )
|
19 Jan 2016 23:37 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Окончательно остановился на названии nedoRISC-0 для системы команд и абстрактного процессора, а конкретная имплементация будет известна миру под наименованием NEDONAND Вот примерные прикидки по растактовкам: P.S. Чото 8 тактов на машинный цикл наверное многовато - надо уложиться в 4...
|
20 Jan 2016 19:04 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А что у тебя симулятор какие-там диаграммы/осциллограммы не показывает? Раз уж тактовый генератор, то и диаграммы бы его сразу посмотреть... P.S. А тебя Гондурас... ну то есть ЧСВ не сильно беспокоит? А то ты его так навязчиво прилюдно чешешь...
_________________ iLavr
|
20 Jan 2016 19:37 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Ну я же не для себя стараюсь - для человечества А по поводу диаграмм - мы же вроде обсуждали в своё время, что логисим - отстой т.к. не имеет в своём составе виртуального осциллографа
|
20 Jan 2016 20:11 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Виноват, подзабыл... поскольку с тех пор я им и не пользуюсь... У логисима только индикаторы 0 и 1 что-ли на выводах что-то показывают? Блин... а еще все норовят плюнуть и кинуть камень в мою любимую " резиновую тётку" по фамилии Протезус! А она у меня даже иголки показывает в асинхронных счетчиках!
_________________ iLavr
|
20 Jan 2016 22:40 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
В логисиме ещё логировать можно выбранные сигналы в текстовой форме, правда не по времени, а по изменениям состояния этих сигналов... P.S. По-быстрому нарисовал в бесплатной версии Eagle v5 платку с двумя "навороченными" D-триггерами (см. eagle-nedonand.zip): Развёл автороутером (всё кроме цепей питания, которые нарисовал вручную) плюс полигон земли пришлёпал снизу: И заказал на oshpark.com несколько штучек :) По сути это аналог 7474, но входы установки не выведены наружу как пины, а представлены кнопками S1 и S2: 1) GND 2) D1 3) ^C1 4) /R1 5) Q1 6) /Q1 7) D2 8) ^C2 9) /R2 10) Q2 11) /Q2 12) VCC
|
21 Jan 2016 07:56 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Вот тактовый генератор на 4 такта на цикл с вспомогательными выходами: Примерно так будет: P.S. А вот отдельно полусумматор:
|
21 Jan 2016 21:53 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Вот и демультиплексоры подоспели - слева распостраняющий нолик и справа распостраняющий единичку: А это большой демультиплексор 1:8 распостраняющий единичку: В схему main уже прикрутил 2K ПЗУ и пытаюсь декодить команды... P.S. Всё - дошёл до состояния, когда логисим самовозбуждается на пустом месте:
|
22 Jan 2016 01:16 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
Пока решаю проблему непредвиденных самовозбудов заменой самодельных триггеров и регистров на библиотечные из логисима... P.S. Уже читаются инструкции из ПЗУ (пока играюсь с первыми 16 ячейками - т.е. адрес 4 бита) и уже работает запись числа в регистр A и копирование регистров через вспомогательный регистр (пока без инверсии) - это (если вычесть инверсии и RST/RET) покрывает 2/3 всей таблицы опкодов
|
22 Jan 2016 07:12 |
|