1234567891011121314151617181920212223242526272829303132333435363738 |
- module TestGpo;
- import SYSTEM, Trace;
- const
- AxiBaseAddr0 = address(07F000000H); (* base address of first AXI interface *)
- ChanOffset = 256*4; (* channel offset in bytes *)
- InpValidOffset = 0; (* offset for accessing input valid flag of a channel *)
- OutReadyOffset = 4; (* offset for accessing output ready flag of a channel *)
- DataOffset = 8; (* offset for accessing channel data *)
-
- Chan0Addr = AxiBaseAddr0 + 0*ChanOffset;
- Chan1Addr = AxiBaseAddr0 + 1*ChanOffset;
-
- GpoPortAddr = Chan0Addr;
-
- var
- i: longint; inp: longint;
- begin
- loop
- for i := 0 to 255 do
- Trace.String("gpo"); Trace.Int(i,1);
- SYSTEM.GET(GpoPortAddr + 4, inp);
- SYSTEM.PUT(GpoPortAddr,i);
- end;
- end;
- end TestGpo.
- Controller = cell{Arch="TRM",CodeMemorySize=4096,DataMemorySize=2048}
- (
- input: port in;
- output: port out;
- ioCfgOut: port out;
- ioCfgInp: port in;
- timerCmdOut: port out;
- timerInp: port in
- )
|