aniSKY, извини, а сколько строк у тебя по вертикали выходит?
Да и кадровый "толщиной" в одну строку как-то смущает...
aniSKY, извини, а сколько строк у тебя по вертикали выходит?
Да и кадровый "толщиной" в одну строку как-то смущает...
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
по вертикали 264(или 528 если весь счетчик брать, я беру только начиная с с 1го разряда)
кадровый - если брать все разряды то получится две строки, просто 0й разряд не беру в расчет.
опишу в общем весь проект - смесь схемного ввода с кусками на ВХДЛ, пытался на чистом ВХДЛ, но начинаю путаться, мне схемный немного ближе, визуально более понятен, да и та часть что сдвигает пиксели (сдвиговый регистр пикселей) так и не поддается мне....
на всякий пожарный мой проект по частям:
Последний раз редактировалось aniSKY; 22.08.2010 в 23:25.
БЭМЗ ПЭВМ БАЙТ 48к
CAHTAKA.002 48k
БПК "Элара-Д" 48к +BDI(TR-DOS 5.03)
SPECCY.2007 48k(2008.09)
может кто поможет в написании мультиплексора, коммутирующего двунаправленную шину к двунаправленной или к шине на вывод по сигналу выбора какимнить маленьким примером? а возможно ли такое?
з.ы. хочется подрубить свою поделку к компутеру, а в двунаправленности шин в ВХДЛ все никак не разберусь....ток сильно не пинайте, на конкретных примерах както проще разобраться.
БЭМЗ ПЭВМ БАЙТ 48к
CAHTAKA.002 48k
БПК "Элара-Д" 48к +BDI(TR-DOS 5.03)
SPECCY.2007 48k(2008.09)
Для затравки выкладываю пример:
двунаправленный порт FF (условно, конечно), проц его читает и туда пишет;
Если для записи и чтения порты разные, но номер одинаковый, то в процессах пишем в один сигнал, читаем из другого (его нужно добавить).
Код:-- ПЛИС <-> Z80 чтение-запись порта, например, FF port ( signal iAddrZXbus : in std_logic_vector (15 downto 0); signal ioDataZXbus : inout std_logic_vector (7 downto 0); signal iIorqZXbus : in std_logic; signal iRdZXbus : in std_logic; signal iWrZXbus : in std_logic; signal iM1ZXbus : in std_logic; -- добавить, чтобы не срабатывал при подтв.прерывания signal iResetZXbus : in std_logic; signal iFZXBus : in std_logic ) -- тактовый 14 МГц signal sIoWr : std_logic; signal sIoRd : std_logic; signal A1,A2 : std_logic; signal sFF : std_logic_vector (7 downto 0); sIoWr <= iIorqZXbus or iWrZXbus; sIoRd <= iIorqZXbus or iRdZXbus; process (iFZXbus) begin if iReset = '0' then ioDataZXbus <= (others => 'Z'); elsif rising_edge(iFZXbus) then A1 <= sIoWr; A2 <= not A1; if sIoRd = '0' and iAddrZXbus = x"00FF" then ioDataZXbus <= sFF; else ioDataZXbus <= (others => 'Z'); end if; if (A1 or A2) = '0' and iAddrZXbus = x"00FF" then sFF <= ioDataZXbus; end if; end if; end;
Последний раз редактировалось IanPo; 27.08.2010 в 11:38.
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
aniSKY, то есть, все понятно? Могу прокомментировать.
Код я не проверял, но, по идее, должен работать.
Нужно еще сделать проверку на /IORQ и M1,
чтобы не реагировало на подтверждение прерывания
(это надо в доке на проц уточнить).
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
aniSKY, что-то я не понял у тебя в блоках hsgen.vhd и vsgen.vhd отсутствует приращение горизонтальных и вертикальных счётчиков. Забыл? Еще одна ошибка. На выходе элемента И (inst20) всегда будет 0. Это в формировании сигнала PINF.
fifan, не, счетчики строк/пикселей в графическом блоке. В текстовиках только селекторы синхры.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
эт пока счетчик на ФЛЭШ не добавлен, позже допишу, как более менее заработает буду подчищать, по возможности в ВХДЛ переписывать
---------- Post added at 20:36 ---------- Previous post was at 20:33 ----------
на 100% еще наверно нет, просто как пример использовании двунаправленных портов/сигналов/шин (или как там правильнее) немного прояснил, а мысли пошли думать дальше....
---------- Post added at 20:42 ---------- Previous post was at 20:36 ----------
если можно в краце пояснить данную конструкцию:
if iReset = '0' then
ioDataZXbus <= (others => 'Z');
elsif rising_edge(iFZXbus) then
... далее по примеру
ioDataZXbus <= (others => 'Z'); -- как это описывается словами? (правильно наверно (others) ?)
БЭМЗ ПЭВМ БАЙТ 48к
CAHTAKA.002 48k
БПК "Элара-Д" 48к +BDI(TR-DOS 5.03)
SPECCY.2007 48k(2008.09)
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)