📄 pci_pio2.abl
字号:
MODULE PCI_PIO2
TITLE 'PCI PIO with only one chip of CPLD';
" CLK, RST# ____________________
" -------------->| |
" FRAME#, IRDY# | | XOUT[31:0]
" -------------->| |============>
" DEVSEL#, TRDY# | |
" <--------------| CPLD |
" C/BE[3:0]# | | XIN[31:0]
" ==============>| |<============
" AD[31:0] | |
" <=============>| |
" ~~~~~~~~~~~~~~~~~~~~
" This design can be fitted to ispLSI2128.
" PCI BUS
CLK, !RES pin;
!FRAME, !IRDY pin;
!DEVSEL, !TRDY pin istype 'reg,pos';
CB0..CB3 pin;
AD0..AD31 pin istype 'reg_l';
" External I/O ports
XOUT0..XOUT31 pin istype 'reg_g';
XIN0..XIN31 pin;
" Intrenal state counter
S0..S2 node istype 'reg';
" Constants and Symbols
DEVADDR = ^h0000f300; " Device address
SC = [S2..S0];
CMD_IOR = ([FRAME,IRDY, [CB3..CB0], [AD31..AD0].pin] == [1,0, ^b0010, DEVADDR]);
CMD_IOW = ([FRAME,IRDY, [CB3..CB0], [AD31..AD0].pin] == [1,0, ^b0011, DEVADDR]);
BUS_IDLE = ([FRAME,IRDY ] == [0,0 ]);
BUS_XFER = ([ IRDY,TRDY.pin] == [ 1,1]);
LAST_XFER = ([FRAME,IRDY,TRDY.pin] == [0,1,1]);
EQUATIONS
[DEVSEL, TRDY, SC, XOUT0..XOUT31].clk = CLK;
[AD31..AD0].d = [XIN31..XIN0];
[XOUT31..XOUT0].d = [AD31..AD0].pin;
STATE_DIAGRAM SC;
State 0:
if RES then 0;
else if BUS_IDLE then 4;
else 0;
State 4:
if RES then 0;
else if CMD_IOW then 2 with DEVSEL := 1; TRDY := 1;
else if CMD_IOR then 5;
else if BUS_IDLE then 4;
else 0;
State 2:
DEVSEL.oe = 1; TRDY.oe = 1;
[XOUT7..XOUT0].ce = BUS_XFER & !CB0;
[XOUT15..XOUT8].ce = BUS_XFER & !CB1;
[XOUT23..XOUT16].ce = BUS_XFER & !CB2;
[XOUT31..XOUT24].ce = BUS_XFER & !CB3;
if RES then 0;
else if LAST_XFER then 3;
else 2 with DEVSEL := 1; TRDY := 1;
State 3:
DEVSEL.oe = 1; TRDY.oe = 1;
if RES then 0;
else if CMD_IOW then 2 with DEVSEL := 1; TRDY := 1;
else if CMD_IOR then 5;
else 4;
State 5:
if RES then 0;
else 6 with DEVSEL := 1; TRDY := 1;
State 6:
DEVSEL.oe = 1; TRDY.oe = 1; [AD31..AD0].oe = 1; [AD31..AD0].le = 1;
if RES then 0;
else if LAST_XFER then 7;
else 6 with DEVSEL := 1; TRDY := 1;
State 7:
DEVSEL.oe = 1; TRDY.oe = 1;
if RES then 0;
else 4;
State 1:
goto 0;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -