📄 datagenerate.tdf
字号:
Subdesign DataGenerate
(
Clock,
nReset,
nStart,
nLockInc : Input;
DMAing,
DMADir : Input; %1 = Dev2PC; 0 = PC2Dev%
nFEmpty,
nFFull : Input;
nDMACS,
nDMAOE,
nDMARD,
nDMAWR : Output;
DataBus[7..0] : BiDir;
)
Variable
DataBuf[7..0] : DFFE;
DBTri[7..0] : TRI;
DataInc[7..0] : DFF;
% CanDMA,%
CanDMAWR,
CanDMARD : DFF;
DMAWRClkD,
DMARDClkD : DFFE;
Begin
nDMACS = !(CanDMARD or CanDMAWR or DMAWRClkD or DMARDClkD);
nDMAOE = !(CanDMARD or DMARDClkD);
nDMAWR = !(DMAWRClkD);
nDMARD = !(DMARDClkD);
DataBus[] = DBTri[];
DBTri[].oe = CanDMAWR or DMAWRClkD;
DBTri[] = DataBuf[];
DataInc[].clk = nLockInc;
DataInc[] = DataBus[];
DataBuf[].clk = nDMAWR;
DataBuf[] = DataBuf[] + DataInc[];
DataBuf[].clrn = nReset;
DMAWRClkD.clk = Clock;
DMAWRClkD.clrn = nReset;
DMAWRClkD.ena = (CanDMAWR and nFFull) or DMAWRClkD;
DMAWRClkD = Not DMAWRClkD;
DMARDClkD.clk = Clock;
DMARDClkD.clrn = nReset;
DMARDClkD.ena = (CanDMARD and nFEmpty) or DMARDClkD;
DMARDClkD = Not DMARDClkD;
CanDMAWR.clk = !Clock;
CanDMAWR = DMADir and DMAing and nFFull;% and CanDMA;%
CanDMARD.clk = !Clock;
CanDMARD = !DMADir and DMAing and nFEmpty;% and CanDMA;%
% CanDMA.clk = GND;
CanDMA = GND;
CanDMA.prn = nStart;
CanDMA.clrn = nReset;%
End;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -