[an error occurred while processing this directive]
|
Займет 8 макроячеек, с регистром для 4 бит данных (больше не хватит по выводам). Только нужно сверить электрические спецификации ISA и MAX3000A. Распиновка в ссылке (не проверял :)
CONSTANT High = B"1";
CONSTANT Low = B"0";
CONSTANT Decode = B"110000";--старшая часть
-- дешифрируемого адресаSUBDESIGN simple_isa
(
CLK : INPUT;--тактовая, не ISA
nIOW, nIOR, AEN, ADDR[9..0], Data[7..0] : INPUT;--сигналы ISA
WR_strobe, RD_strobe, Data_out[3..0] : OUTPUT;--стробы и вых. дан.
)VARIABLE
Data_out[3..0] : DFFE;--регистр данных
IOWR_reg : DFF;
IORD_reg : DFF;
WR_strobe : Node;
RD_strobe : Node;BEGIN
Data_out[3..0].clk = nIOW;--защелкиваем данные восх. фронтом nIO
IOWR_reg.clk = CLK;
IOWR_reg.d = nIOW;
IORD_reg.clk = CLK;
IORD_reg.d = nIOR;if (ADDR[9..4]==Decode & !AEN) then Data_out[3..0].ena = High;
end if;Data_out[3..0].d = Data[3..0];
WR_strobe = !IOWR_reg & nIOW;
RD_strobe = !IORD_reg & nIOR;
END;
E-mail: info@telesys.ru