• 0
bino

Connect my IP module

Question

HI ! 

First : I'm a new in FPGA development :( For my experiments, I designed an IP module (in Verilog), which takes 3 inputs (clk, rst, walk[7:0]) and drives in funny way leds. Decided, that it's too much for this to use AXI memory mapped interface and used for control signal only 8-bit vector. My question is : can I use AXI GPIO with 8 bits output and connect only it's output vector to my IP's "walk" ? As I tried, the default value from GPIO works, but couldn't drive this value from the SDK at the address of the AXI GPIO ? Or may be some more clean way ? 

Sorry, forgot : I test the design on Zybo....

Thank you in advance !

design_1.pdf

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Hello,

Looking at the schematic I believe your design should work. The problem could be the C code that you use to drive the AXI GPIO. Have you looked at the examples provided by Xilinx ? I would also recommend that you use the Logic Analyzer too look at the signals or you could connect the AXI GPIO directly to the LEDs and see if the value changes.

Sergiu 

Share this post


Link to post
Share on other sites
  • 0

Thank you, very much for your comment ! Yes, I read and understood connected examples by Xilinx. I have no problems to drive leds directly from SDK via AXI GPIO. But no success to run my IP block (but IP block work fine out of this design). The warning, that worn me a bit is :

WARNING: [BD 41-1306] The connection to interface pin /axi_gpio_0/gpio_io_o is being overridden by the user. This pin will not be connected as a part of interface connection GPIO
when connected 8-bit output of GPIO to IP ... :(

Here is c source from SDK :

#include <stdio.h>
#include "platform.h"
#include <xgpio.h>
#include "xparameters.h"
#include "sleep.h"

int main()
{
   XGpio output;

   XGpio_Initialize(&output, XPAR_AXI_GPIO_0_DEVICE_ID);    //initialize output XGpio variable

   XGpio_SetDataDirection(&output, 1, 0x0);        //set first channel tristate buffer to output

   init_platform();

   while(1){

      xil_printf("Output 64\n\r");

      XGpio_DiscreteWrite(&output, 1, 64);    //write switch data to the LEDs

      usleep(2000000);            //delay

      xil_printf("Output 128\n\r");

      XGpio_DiscreteWrite(&output, 1, 128);    //write switch data to the LEDs

      usleep(2000000);            //delay

   }
   cleanup_platform();
   return 0;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now