Важная информация

User Tag List

Страница 10 из 21 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 202

Тема: SQRUM 1M

  1. #91
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    как-то уже не на 100% уверен в этом
    "Весьмя згя!" (с)
    Блокирующее присвоение будет держать цикл до своего полного выполнения и нарушит всю растактовку. Актуально, конечно же для синхронных схем (что к спекки не относится ни в коей мере) и не для текущих частот, но лучше привыкать к этому сразу. А уж если синтезатор "исправит" за Вами блокируещее на неблокирующее, то это косяк!

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    PS: ПЗУ могу помочь зашить или подарить зашитое, при желании.
    Боюсь, что программатор я сделаю быстрее...

    UPD
    Цитата Сообщение от EvgenRU Посмотреть сообщение
    PS2:
    Почитайте про конкатенацию.
    Последний раз редактировалось omercury; 02.04.2017 в 11:57.

  2. #91
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #92
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    UPD
    Почитайте про конкатенацию.
    Спасибо, переделал мультиплексор :-D
    Код:
    module ZX_mux(
    	input wire [4:0] H,		// horizontal counter
    	input wire [7:0] V,		// vertical counter
    	input wire [19:14] RAM,	// Muxed Extended RAM address
    	input wire [15:0] A,	// Z80 adderss
    	input wire S0,			// RAS
    	input wire DC1,			// H1
    	input wire DC2,			// H2
    	input wire SCR,			// Second SCREEN (128k)
    	output wire [9:0] MA
    );
    
    assign MA = DC1 ? (
    				S0 ?	{2'b00,SCR,1'b0,DC2 ? 3'b110 : {V[7],V[6],V[2]} /*attr/pix*/, 3'b011} :
    						{DC2 ? V[7:6] : V[1:0] /*attr/pix*/, V[5:3], H[4:0]}
    			) : (
    				S0 ? 	{RAM[19], RAM[17], RAM[15], A[13:10], RAM[18], RAM[16], RAM[14]} :
    						A[9:0]
    			);
    endmodule
    UPD: подозреваю, что это некорректно, т.к. в счетчике изменение этих сигналов происходит по спаду пиксельклока и соответственно менять адреса нужно так же по спаду тактового генератора!
    Т.е. так
    Код:
    module ZX_mux(
    	input wire [4:0] H,		// horizontal counter
    	input wire [7:0] V,		// vertical counter
    	input wire [19:14] RAM,	// Muxed Extended RAM address
    	input wire [15:0] A,	// Z80 adderss
    	input wire S0,			// RAS
    	input wire DC1,			// H1
    	input wire DC2,			// H2
    	input wire SCR,			// Second SCREEN (128k)
    	input wire CLK,			// 14MHZ
    	output reg [9:0] MA
    );
    
    always @(negedge CLK)
    	MA <= DC1 ? (
    		S0 ?	{2'h0,SCR,1'h0,DC2 ? 3'h6 : {V[7],V[6],V[2]} /*attr/pix*/, 3'h3} :
    				{DC2 ? V[7:6] : V[1:0] /*attr/pix*/, V[5:3], H[4:0]}
    	) : (
    		S0 ? 	{RAM[19], RAM[17], RAM[15], A[13:10], RAM[18], RAM[16], RAM[14]} :
    				A[9:0]
    	);
    
    endmodule
    UPD: Ну что ж, можете меня почти поздравить!!!!!

    Матрас без ПЗУ, бежит немного ввеох
    Атрибуты те что надо! Экран почти как надо, видимо я где-то попутал или в мультиплексоре или в рас/кас...

    UPD1: убедился, что это не мультиплексор
    UPD2: скорее всего проблема в рассинхронизация выборки байтов аттрибутов/пикселей....
    UPD3: оказалось схемный ввод обработчика портов сильно тормозил схему! теперь как-то по-другому всё работает как переписал на Verilog.
    UPD4: фигня, походу это всё считывалось с ШД проца, т.к. я перепутал спады/подъемы сигналов ))))
    Последний раз редактировалось EvgenRU; 10.08.2017 в 22:13.

  4. #93
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Короче, решил пойти по другому пути, отключил буферы, отключил сигнал /WE добился стабильного чтения из памяти


    Времянки

    PS: с чтением атрибутов на картинке попутал, они на цикл раньше читаются

    Теперь не могу разобраться с подачей сигнала записи, для записи данных с шины данных процессора на шину данных памяти ну и сам процесс немного непонятный. По даташиту там есть режим READ-MODIFY-WRITE, может его попробовать или в какой момент нужно писать?

    Переделал еще тайминги вот так, немного удлинил /RAS


    UPD:
    походу проблема в записи из буфера, т.к. отправив константу в память она нормально заполнилась константным значением, а может оба Z80 у меня глючные, т.к. один совсем не работает, а второй вот так себя ведет, но, еще проверю.

    UPD2:
    разобрался, проблема была в неправильно работающих счетчиках, сейчас посплю и попробую сделать

    UPD3:
    блин, что ж никто не сказал, что нельзя писать в память во время работы видеоконтроллера :-D

    UPD4:
    еще почему-то попадают адреса из REFRESH на шину адреса во время записи...
    Последний раз редактировалось EvgenRU; 05.04.2017 в 17:49.

  5. #94
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    UPD: кое-что еще поправил, кажется начало немного получаться, так что пока что не бросаю!
    Вложения Вложения
    Последний раз редактировалось EvgenRU; 06.04.2017 в 17:54.

  6. #95
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    UPD: кое-что еще поправил, кажется начало немного получаться, так что пока что не бросаю!
    Бросать не надо, но отдохнуть не помешает.


    Кстати, на оригинальную схему где взглянуть?
    Есть одра мысль.

  7. #96
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Кстати, на оригинальную схему где взглянуть?
    http://zx-pk.ru/threads/7071-skhema-...l=1#post118965
    самая первая

    Расширение до 1024 тут http://zx-pk.ru/threads/26225-pomogi...24k/page2.html

    PS: я так полагаю, что главная проблема - это синхронизация записи с мультиплексорами...
    PS2: в v10 я там в генераторе частот PIXCLK забыл проинвертировать внизу, если что
    Последний раз редактировалось EvgenRU; 06.04.2017 в 20:42.

  8. #97
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    PS: я так полагаю, что главная проблема - это синхронизация записи с мультиплексорами...
    Примерно так и есть.
    Вот и я пытаюсь понять, как происходит синхронизация видеоадаптера с процессором. Грубо говоря - как определяется, когда у процессора М1, а когда всё остальное...
    То есть в какое время у менеджера памяти окно для процессора, а когда для видео. Штатный инструмент для этого - сигнал WAIT, некоторые с клоком морочаются, но это чистый маркетинг (лишь бы не заюзать WAIT), хотя разницы в способе пропуска такта нет никакой.

  9. #98
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, там оно делается так, DC1=0 CPU, DC1=1 - видео, а обмен происходит через буферы, поэтому шины не связаны, и процессор берет данные из буфера, когда активно видео.
    Т.к. в РУ5 вход данных отдельный, то они работают так же как буфер, а вот с сим получается уже сложнее.
    Еще раз повторюсь, что на реальном кворуме мне удалось запустить этот метр, работает стабильно, никаких проблем.
    Проблема еще в том, что с DRAM у нас есть RAS и CAS, и нужно попасть при записи и в мультиплексоры и в момент, когда адрес ряда уже установлен и адрес ячейки установлен или устанавливается (EARLY WRITE)

    PS: версию со схемным вводом тоже пробовал, так же не работает
    Последний раз редактировалось EvgenRU; 06.04.2017 в 21:25.

  10. #99
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Ну, там оно делается так, DC1=0 CPU, DC1=1 - видео, а обмен происходит через буферы, поэтому шины не связаны, и процессор берет данные из буфера, когда активно видео.
    Ага, только тайминги обращений к памяти задаются аппаратно счётчиками (в том числе и фиксация адреса). То есть М1 (от него считать удобнее) может быть смещён на время до 7 тактов...

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Проблема еще в том, что с DRAM у нас есть RAS и CAS
    Это как раз ерунда, что за такт поставить всю шину, что за удвоенный такт поставить 2 половинки. Кстати, сигналы инверсные, соответственно защёлкивается в регистре адрес по отрицательному перепаду. Соответственно длительность активного состояния RAS/CAS на очень-то и важна (в разумных пределах, разумеется, в рамках быстродействия).

    UPD
    Цитата Сообщение от EvgenRU Посмотреть сообщение
    http://zx-pk.ru/threads/7071-skhema-...l=1#post118965
    самая первая
    Пипец! резисторно-конденсаторная логика)))
    Последний раз редактировалось omercury; 06.04.2017 в 21:41.

  11. #100
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Пипец! резисторно-конденсаторная логика)))
    Ага, без осциллографа не соберешь )))

    PS: кстати, вот сейчас еще раз попробовал схемную версию, вывод более похож на правду уже! но всё-равно изображение бегает, видимо счетчики и адреса не стыкуются или кондера где-то не хватает :-D а может я там строки считаю до 320 а нужно 312, чтобы четко всё работало... жесть короче... уже все даташиты перечитал до дыр, никак не могу это дело синхронизировать....
    Последний раз редактировалось EvgenRU; 06.04.2017 в 21:58.

Страница 10 из 21 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •