cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
cfshelor
Visitor
Visitor
6,236 Views
Registered: ‎08-28-2008

OPB IPIF Custom Peripheral DMA operation help

Jump to solution

I am using the OPB IPIF to interface to a custom peripheral that will use the simple DMA to fill and empty the FIFOs.  I cannot find the documentation on the DMA interface signals.  The OPB IPIF (v3.01c) product specification, DS414 October 26, 2006, does not even reference the DMA capabilities of the OPB_IPIF.

 

Can someone tell me where the documentation for the DMA operation is located?

 

Thanks,

 

Charles

 

0 Kudos
1 Solution

Accepted Solutions
Chadn_na
Xilinx Employee
Xilinx Employee
7,331 Views
Registered: ‎08-15-2007
The version of IPIF with DMA capability is opb_ipif_v2_00_h

View solution in original post

4 Replies
golson
Scholar
Scholar
6,228 Views
Registered: ‎04-07-2008

Hi, 

 

I know the XAPP967 Appnote provided some information of the internal DMA in the OPB IPIF.  However,  Since the Latest PLB version 4.6 the DMA

capability was removed in the later IPIF core available for PLB version 4.6. 

 

There is a option to use PLB version 3.4 and this one I think will allow you to use the old IPIF which has the internal DMA.

 

I have been using PLB v4.6 with IPIFs and using a separate component the xps_central_dma.  Since the IPIFs do not have a internal DMA function.

 

Gary

0 Kudos
Chadn_na
Xilinx Employee
Xilinx Employee
7,332 Views
Registered: ‎08-15-2007
The version of IPIF with DMA capability is opb_ipif_v2_00_h

View solution in original post

moraali
Explorer
Explorer
5,896 Views
Registered: ‎12-06-2007

 

Based on the coding below , I can not receive anything from the hyperterminal. How can I rectify the problem , so that I can receive data from the hyperterminal and display it back to the hyperterminal? I tried to debug , but there is no value assign to t . If the coding is wrong, should I use array.

 

 

#include "xparameters.h"
#include "xuartlite.h"


#define UART_BASEADDR XPAR_UARTLITE_0_BASEADDR
#define ESCAPE 0x1b


static void myprintf (char *s)
{
  char t;
 
  while (*s)
  {
   XUartLite_SendByte (UART_BASEADDR ,*s ); // Able to send to Hyperterminal
   s++;
  }
 
  
 do
 {
   /*Problem is here. It should receive data from hyperterminal and display it back.
   But it does not work.How should I rectify it? */
     t = XUartLite_RecvByte(UART_BASEADDR); //Receive
     XUartLite_SendByte (UART_BASEADDR , t ); //Send
    
 } while (t != ESCAPE);
 
}


int main()
{
 myprintf("Good morning");
 
 
 return 0;
}

 

This is the UCF , which automatically generated by using XPS 9.2 

 

Net sys_clk_pin LOC=AE14;
Net sys_clk_pin IOSTANDARD = LVCMOS33;
Net sys_rst_pin LOC=D6;
Net sys_rst_pin PULLUP;
 

## System level constraints
Net sys_clk_pin TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;
Net sys_rst_pin TIG;

 

## IO Devices constraints

#### Module RS232_Uart constraints

Net fpga_0_RS232_Uart_RX_pin LOC=W2;
Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;
Net fpga_0_RS232_Uart_TX_pin LOC=W1;
Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;

0 Kudos
moraali
Explorer
Explorer
5,895 Views
Registered: ‎12-06-2007

Based on the coding below , I can not receive anything from the hyperterminal. How can I rectify the problem , so that I can receive data from the hyperterminal and display it back to the hyperterminal? I tried to debug , but there is no value assign to t . If the coding is wrong, should I use array.

 

 

#include "xparameters.h"
#include "xuartlite.h"


#define UART_BASEADDR XPAR_UARTLITE_0_BASEADDR
#define ESCAPE 0x1b


static void myprintf (char *s)
{
  char t;
 
  while (*s)
  {
   XUartLite_SendByte (UART_BASEADDR ,*s ); // Able to send to Hyperterminal
   s++;
  }
 
  
 do
 {
   /*Problem is here. It should receive data from hyperterminal and display it back.
   But it does not work.How should I rectify it? */
     t = XUartLite_RecvByte(UART_BASEADDR); //Receive
     XUartLite_SendByte (UART_BASEADDR , t ); //Send
    
 } while (t != ESCAPE);
 
}


int main()
{
 myprintf("Good morning");
 
 
 return 0;
}

 

This is the UCF , which automatically generated by using XPS 9.2 

 

Net sys_clk_pin LOC=AE14;
Net sys_clk_pin IOSTANDARD = LVCMOS33;
Net sys_rst_pin LOC=D6;
Net sys_rst_pin PULLUP;
 

## System level constraints
Net sys_clk_pin TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;
Net sys_rst_pin TIG;

 

## IO Devices constraints

#### Module RS232_Uart constraints

Net fpga_0_RS232_Uart_RX_pin LOC=W2;
Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;
Net fpga_0_RS232_Uart_TX_pin LOC=W1;
Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;

0 Kudos