Цитата Сообщение от JV-Soft Посмотреть сообщение
может reset от YM2612 заведешь на какой то порт ,это будет полезно
К сожалению сигнал 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;