nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 17 Apr 2024 19:11



Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
И всё-таки: AY на рассыпухе;) 
Author Message
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Всё-же не даёт покоя мне эта идея. Практической пользы в ней никакой, однако интересно в деталях представить себе, как это могло выглядеть (то, о чём ходили слухи). Да и буржуи делают-же подобное - чем мы хуже?

Разумеется, я не предлагаю кому-то срочно всё бросить, и придумать мне схему. Напротив, я хочу придумать её сам (благо, эмулятор AY давным-давно делал, и знаю, как он работает). Это будет мне полезно главным образом в плане получения знаний в области проектирования логических схем. Данная конструкция прикидывается на 155/555 серии, по прикидкам получится не меньше 50 корпусов.

Для начала я набросал только небольшую часть схемы - пред-делитель и один тональный канал (программируемый делитель). Прошу специалистов объяснить мне, почему он не будет работать (в том, что работать он не будет, я практически уверен) ;)

Вот схема:
Image

Теперь объяснения, что она должна делать, по моей задумке.

На вход ИЕ5 идёт тактовая частота чипа, этот счётчик является пред-делителем (для разных блоков AY требуются разные коэффициенты деления входной частоты, на 2, 4, ..).

Всё остальное - это блок делителя частоты одного тонального канала, вместе с его регистрами. Пока я не предусматриваю возможности чтения из регистров, т.к. не очень понимаю, как это сделать (ставить ещё два регистра, входы которых соединить с выходами имеющихся, выходы с входами, но разрешать эти выходы только по RD?). Два регистра содержат 12-битное число. Записываться оно в них будет через схему внешнего интерфейса, которой пока нет (предполагается, что она будет выдавать уровень на вход C нужного регистра, номер которого также будет хранится в спец-регистре, когда на ШД выставлены данные для записи и подан WR). Счётчики ИЕ10 включены каскадом (12 бит), и вроде как считают вниз. По достижении нуля происходит запись в них значения из регистров. Также, по достижении нуля триггер ТМ2 меняет своё состояние с 0 на 1 и наоборот. Его выход идёт на логический микшер (которого тоже пока нет).

Т.е. в коде это выглядело-бы так:

Code:
chn_a_count--;
if(chn_a_count<0)
{
chn_a_count=reg0|(reg1<<8);
chn_a_out^=1;
}


Примечание. В реальном AY счёт идёт вверх, и по достижении заданного значения счётчик обнуляется. Но, думаю, принципиальной разницы, куда считать, нет (в ряде других PSG счёт идёт как раз вниз). И я просто не знаю, как сделать, чтобы считалось вверх и сравнивалось со значением:)

Пока получается на одни только тональные каналы с предделителем - 20 корпусов. А ещё будут блоки внешнего интерфейса, генератора шума, генератора огибающей (чувствую, это будет что-то с чем-то), логического микшера, и блок ЦАП'ов.


27 Oct 2006 03:25
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
Post 
Ну можно считать вверх, сравнивать число с чем-то и сбрасывать счётчики по достижению предела. Из регистров можно читать через буфера повернутые назад.

P.S. А в чём таком красивом ты эту схему рисовал? ;)

_________________
:dj: https://mastodon.social/@Shaos


27 Oct 2006 05:03
Profile WWW
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Post 
Вот я и незнаю, как сравнивать число - не городить-же сетку из кучи мелкой логики? 12 бит, всё-таки..

О чтении регистров я и написал выше - у меня тоже пока только идея продублированных регистров, дубли включены в обратном направлении. Но регистров и так минимум 14, а с дублями будет 28.. Жуть:)

Рисовал, будешь смеяться, в самом обычном Paint'е. Что-то меня все программы для рисования схем утомили - то нет элементов в библиотеке, то есть, но нестандартные, то ещё чего-то... Руками оказалось проще нарисовать.


27 Oct 2006 05:10
Profile
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Post 
Заметил, что забыл нарисовать соединение входа R второго ИЕ10 с остальными. Но оно там, конечно, должно быть.


27 Oct 2006 05:15
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
Post 
Shiru Otaku wrote:
Вот я и незнаю, как сравнивать число - не городить-же сетку из кучи мелкой логики? 12 бит, всё-таки..


XOR-ами можно сравнивать ну или специальными сравнивалками

Shiru Otaku wrote:
О чтении регистров я и написал выше - у меня тоже пока только идея продублированных регистров, дубли включены в обратном направлении. Но регистров и так минимум 14, а с дублями будет 28.. Жуть:)


Ну я написал не про регистры, а буфера :)

Shiru Otaku wrote:
Рисовал, будешь смеяться, в самом обычном Paint'е. Что-то меня все программы для рисования схем утомили - то нет элементов в библиотеке, то есть, но нестандартные, то ещё чего-то... Руками оказалось проще нарисовать.


Да ты еще и художник плюс ко всему ;)

_________________
:dj: https://mastodon.social/@Shaos


27 Oct 2006 05:22
Profile WWW
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Post 
Shaos wrote:
XOR-ами можно сравнивать ну или специальными сравнивалками

Ну всё равно - дофига корпусов получится, так ведь? А я искал решение, которое всё-таки будет более простым. Главное, чтобы оно работало, в чём я не очень уверен (раньше я ни регистров, ни ИЕ10 не использовал).

Quote:
Ну я написал не про регистры, а буфера :)

Всё равно получается, что на каждый регистр нужно будет ставить по одному 8-разрядному буферу. Ладно, это потом можно пририсовать, чтение из регистров - пока не главное.

Quote:
Да ты еще и художник плюс ко всему ;)

Есть немного. Ну а схему в Paint'е нарисовать не сложно, даже легче, чем на бумаге.


27 Oct 2006 05:31
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
Shiru Otaku wrote:
Заметил, что забыл нарисовать соединение входа R второго ИЕ10 с остальными. Но оно там, конечно, должно быть.

Рекомендую взять какой нить схемный эмулятор. Например бесплатный Аltera MAX, там можно схему набирать 74серией, и потом обкатать на встроенном эмуле.


27 Oct 2006 05:31
Profile ICQ WWW
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Post 
Ну, я пробовал сделать это в Proteus'е. Но оттестить эту вот схему там весьма затруднительно (хотя я всё ещё пытаюсь) - тут надо мудрить и с занесением значения в регистр, и с проверкой, что там получается на выходе (у меня что-то глючит, то и дело перестаёт появляться окно логического анализатора).. И все обозначения не соответствуют нашим справочникам, приходится смотреть по номерам ног, очень всё это напрягает.


27 Oct 2006 06:30
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Shiru Otaku wrote:
Вот я и незнаю, как сравнивать число - не городить-же сетку из кучи мелкой логики? 12 бит, всё-таки..


555СП1 - компаратор 4-битовый. Можно каскадировать с такими же.


27 Oct 2006 09:47
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
CHRV wrote:
Shiru Otaku wrote:
Заметил, что забыл нарисовать соединение входа R второго ИЕ10 с остальными. Но оно там, конечно, должно быть.

Рекомендую взять какой нить схемный эмулятор. Например бесплатный Аltera MAX, там можно схему набирать 74серией, и потом обкатать на встроенном эмуле.


Ага, можно 74ой серией а можно сразу писать:

always @(posedge clk)
begin
if( freq_ctr>=freq_reg)
freq_ctr<=0;
else
freq_ctr<=freq_ctr+1;
end

и оно само нагенерит всё чо надо - компараторы, мультиплексоры, регистры, етц =)))


27 Oct 2006 09:49
Profile
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Post 
lvd wrote:
555СП1 - компаратор 4-битовый. Можно каскадировать с такими же.

О, классно. Я её в справочнике не увидел, в самом конце затесалась. С ней сделать требуемое легко, но всё-таки это три лишних корпуса на тональный канал. Так что поковыряюсь я пока просто со счётчиками. Вроде с Proteus'ом справился, правда схема моя пока, конечно-же, не очень работает;)

lvd wrote:
Ага, можно 74ой серией а можно сразу писать:

Этот метод, безусловно, крут и полезен, но мне он знаний не добавит. Я лучше пока поразвлекаюсь по старинке:)


27 Oct 2006 11:07
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Shiru Otaku wrote:
lvd wrote:
Ага, можно 74ой серией а можно сразу писать:

Этот метод, безусловно, крут и полезен, но мне он знаний не добавит. Я лучше пока поразвлекаюсь по старинке:)


Ну как это не добавит? Добавит знаний verilog'а или vhdl'а (по вкусу), знаний ПЛМок, пакета разработки для них и етц етц етц...
А насчёт рассыпухи - имхо, лучше браться за реальный проект, а не виртуальный. Ну например, музыкальный звонок на з80, ау и рассыпухе =))


27 Oct 2006 11:29
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Shiru Otaku wrote:
lvd wrote:
555СП1 - компаратор 4-битовый. Можно каскадировать с такими же.

О, классно. Я её в справочнике не увидел, в самом конце затесалась. С ней сделать требуемое легко, но всё-таки это три лишних корпуса на тональный канал. Так что поковыряюсь я пока просто со счётчиками.

Казалось бы, какая разница, если проект виртуальный?...
Quote:
Вроде с Proteus'ом справился, правда схема моя пока, конечно-же, не очень работает;)

Ничо, заработает, куда ей деться-то :)


27 Oct 2006 11:32
Profile
Doomed

Joined: 16 Mar 2002 17:00
Posts: 490
Reply with quote
Post 
lvd wrote:
Ну как это не добавит? Добавит знаний verilog'а или vhdl'а (по вкусу), знаний ПЛМок, пакета разработки для них и етц етц етц...

Это понятно. Но у меня пока проблемы с чтением достаточно простых схем, а частенько бывает, что приспичит понять - что и как оно делает.

Когда-нибудь доберусь и до FPGA.

lvd wrote:
А насчёт рассыпухи - имхо, лучше браться за реальный проект, а не виртуальный. Ну например, музыкальный звонок на з80, ау и рассыпухе =))

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


27 Oct 2006 11:39
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Shiru Otaku wrote:
lvd wrote:
Ну как это не добавит? Добавит знаний verilog'а или vhdl'а (по вкусу), знаний ПЛМок, пакета разработки для них и етц етц етц...

Это понятно. Но у меня пока проблемы с чтением достаточно простых схем, а частенько бывает, что приспичит понять - что и как оно делает.

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

Так же и со схемами - быть хорошим проектировщиком - не означает понимать любую схему с одного взгляда.

Я, например, чтобы понять, как работают части пентагона1024 v1.4, рисовал на бумажке диаграммы сигналов - и понял. Просто втыкая в схему - понять куда труднее, а иногда и невозможно вовсе - например для схемы АТМки =)))


Quote:
lvd wrote:
А насчёт рассыпухи - имхо, лучше браться за реальный проект, а не виртуальный. Ну например, музыкальный звонок на з80, ау и рассыпухе =))

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

Нет уж, сам её симуляй =) Делать мне нечего кроме как в левые схемы втыкать =)


27 Oct 2006 14:20
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 20 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 15 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.