[an error occurred while processing this directive]
|
Вот программа. Кристалл EPM7128SQC-160-15
Вход DEN не переводит выводы DIO в третье состояние!!! В железе смотрю! На них остаются данные со сдвигового регистра!
Может, подскажет кто, в чем может быть дело?
Заранее спасибо!
INCLUDE "shift.inc";
INCLUDE "synchro.inc";
INCLUDE "pulseform.inc";
SUBDESIGN main
(
CLK : INPUT;
LED0 : OUTPUT;
LED1 : OUTPUT;
-- Jasmine ports ---------------------------------------
DIO[32..1] : BIDIR;
AOUT[21..1] : OUTPUT;
ULB_CLK : OUTPUT;
ULB_WRX0 : OUTPUT;
ULB_WRX1 : OUTPUT;
ULB_WRX2 : OUTPUT;
ULB_WRX3 : OUTPUT;
ULB_RDX : OUTPUT;
ULB_CS : OUTPUT;
ULB_RDY : INPUT=VCC;
ULB_DACK : OUTPUT;
ULB_INTRQ : INPUT;
ULB_DREQ : INPUT;
ULB_DSTP : INPUT;
-- AVR ports -------------------------------------------
AVCLK : INPUT=GND; -- clk from AVR
AVDI : INPUT=GND; -- datain from AVR
AVW : INPUT; -- write strobe from AVR
AVR : INPUT; -- read enable from AVR
DEN : INPUT; -- OE for data port
)
VARIABLE
SH_D : SHIFT WITH (WIDTH=32);
SH_A : SHIFT WITH (WIDTH=21);
SYNC_ST : SYNCHRO;
SYNC_L : PULSEFORM;
DBUF[32..1] : TRI;
BEGIN
AOUT[] = SH_A.Q[];
DBUF[].in = SH_D.Q[];
DIO[] = DBUF[].out;
DBUF[].oe = DEN; -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SH_D.DIN = AVDI;
SH_A.DIN = SH_D.Q[32];
SH_D.CLK = CLK;
SH_A.CLK = CLK;
SH_A.ENABLE = SYNC_L.QUIT;
SH_D.ENABLE = SYNC_L.QUIT;
SYNC_L.CLK = CLK;
SYNC_L.IN = AVCLK;
SYNC_ST.CLK = CLK;
SYNC_ST.START = AVW;
ULB_CLK = !CLK;
ULB_WRX0 = SYNC_ST.WRX;
ULB_WRX1 = SYNC_ST.WRX;
ULB_WRX2 = SYNC_ST.WRX;
ULB_WRX3 = SYNC_ST.WRX;
LED0 = AVR # (!SYNC_ST.WRX);
LED1 = !ULB_RDY;
ULB_RDX = !(AVR & SYNC_ST.WRX);
ULB_CS = GND;
ULB_DACK = VCC;
END;
E-mail: info@telesys.ru