К сожалению сигнал RESET для YM2612 глобальный, он не с ПЛИС идет. Надо разбираться с программой инициализацией. Хардварно помоему дергать не есть правило хорошего тона
Кстати вот код прошивки ПЛИС, пока только работа с памятью, порты будем дальше добавлять.
Код:TITLE "ZXM-SegaBlaster System Logic"; FUNCTION 2mux1 (a, b, sel) RETURNS (y); SUBDESIGN DD2 ( -- Тактовые частоты для SN76489 и YM2612 3_58CLK : INPUT; 7_68CLK : INPUT; -- Сигналы управления с CPU CA[15..0] : INPUT; -- адреса C_WR : INPUT; C_RD : INPUT; C_MREQ : INPUT; C_IORQ : INPUT; C_M1 : INPUT; AD[7..0] : INPUT; -- шина данных -- Общие сигналы C_RESET : INPUT; C_DOS : INPUT; C_IODOS : INPUT; -- сигнал доступа к портам контроллера FDD C_PEVO : INPUT; -- входы режимов работы карты C_EBUF : OUTPUT; -- управление 74HCT245 C_INTG : OUTPUT; -- сигнал прерывания C_IORQG : OUTPUT; -- сигнал занятости -- Сигналы SN76489 DCSG_RDY : INPUT; -- готовность SN76489 DCSG_CS : OUTPUT; -- выбор SN76489 DCSG_WR : OUTPUT; -- запись в SN76489 DCSG_CLK : OUTPUT; -- тактовая частота SN76489 DCSG_DATA[7..0] : OUTPUT; -- данные для SN76489 -- Сигналы YM2612 YM_IRQ : INPUT; -- запрос прерываний от YM2612 YM_A0 : OUTPUT; -- выбор адреса YM2612 YM_A1 : OUTPUT; -- выбор адреса YM2612 YM_CS : OUTPUT; -- выбор YM2612 YM_RD : OUTPUT; -- чтение из YM2612 YM_WR : OUTPUT; -- запись в YM2612 YM_CLK : OUTPUT; -- тактовая частота YM2612 ) VARIABLE CS_MEM : LCELL; -- Сигналы YM2612 CS_YM_MEM : LCELL; -- Сигналы SN76489 CS_DCSG_MEM : LCELL; REG_DCSG[7..0] : DFF; BEGIN -- Формирователь сигнала выбора микросхем через память 400Xh CS_MEM = !(CA[15..3] == B"0100000000000"); ---------------------------- YM2612 --------------------------------- -- Формирователь сигнала выбора микросхемы через память 4000h...4003h CS_YM_MEM = CS_MEM # CA[2] # C_MREQ; -- Формирователь сигнала выбора микросхемы YM_CS = CS_YM_MEM; -- Формирователь выбора адресов микросхемы YM_A0 = CA[0]; YM_A1 = CA[1]; -- Формирователь выбора сигнала записи микросхемы YM_WR = C_WR; -- Формирователь выбора сигнала чтения микросхемы (только через порты) YM_RD = VCC; -- Формирователь сигнала таковой частоты YM_CLK = 7_68CLK; ---------------------------- SN76489 --------------------------------- -- Формирователь сигнала выбора микросхемы через память 4004h CS_DCSG_MEM = CS_MEM # !(CA[2..0] == B"100") # C_MREQ; -- Формирователь сигнала выбора микросхемы DCSG_CS = (CS_DCSG_MEM # C_WR) & DCSG_RDY; -- Формирователь выбора сигнала записи микросхемы DCSG_WR = DCSG_RDY; -- Формирователь сигнала записи в виртуальный регистр данных REG_DCSG[].clk = CS_DCSG_MEM # C_WR; REG_DCSG[].d = AD[]; -- Передача данных из виртуального регистра данных в микросхему DCSG_DATA[] = REG_DCSG[].q; -- Формирователь сигнала таковой частоты DCSG_CLK = 3_58CLK; -- Формирователь сигнала занятости шины только через порты C_IORQG = VCC; -- Формирователь сигнала прерывания только через порты C_INTG = VCC; -- Формирователь сигнала управления буфером 74HCT245 только через порты C_EBUF = VCC; END;