2
0

TestGPO.Mod 910 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. module TestGpo;
  2. import SYSTEM, Trace;
  3. const
  4. AxiBaseAddr0 = address(07F000000H); (* base address of first AXI interface *)
  5. ChanOffset = 256*4; (* channel offset in bytes *)
  6. InpValidOffset = 0; (* offset for accessing input valid flag of a channel *)
  7. OutReadyOffset = 4; (* offset for accessing output ready flag of a channel *)
  8. DataOffset = 8; (* offset for accessing channel data *)
  9. Chan0Addr = AxiBaseAddr0 + 0*ChanOffset;
  10. Chan1Addr = AxiBaseAddr0 + 1*ChanOffset;
  11. GpoPortAddr = Chan0Addr;
  12. var
  13. i: longint; inp: longint;
  14. begin
  15. loop
  16. for i := 0 to 255 do
  17. Trace.String("gpo"); Trace.Int(i,1);
  18. SYSTEM.GET(GpoPortAddr + 4, inp);
  19. SYSTEM.PUT(GpoPortAddr,i);
  20. end;
  21. end;
  22. end TestGpo.
  23. Controller = cell{Arch="TRM",CodeMemorySize=4096,DataMemorySize=2048}
  24. (
  25. input: port in;
  26. output: port out;
  27. ioCfgOut: port out;
  28. ioCfgInp: port in;
  29. timerCmdOut: port out;
  30. timerInp: port in
  31. )