cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
7,724 Views
Registered: ‎11-14-2008

How to connect a VHDL block to opb_gpio?

Jump to solution

Thanks in advance for any help!!! 

 

2)  connecting the opb_gpio directly to my VHDL block... but still, i don't have any clue on how to do it

1)  create a VHDL block containing an instance of opb_gpio and my VHDL block (i don't know how to do it)

I have considered 2 solutions:

I can i realize it?

The schematic is something like this: MICROBLAZE<--->OPB_BUS<--->opb_gpio<---->My_VHDL_Block<--->External port

I need to make a connection between the output of IP opb_gpio (channel1) to a VHDL block that i have done. That block is then connected an external port.

Hello. I'm a beginner in EDK. I'm currently using XPS 8.2.

 

 

BEGIN of TEXT

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Contributor
Contributor
9,102 Views
Registered: ‎01-06-2009

You want to use gpio, but not to drive/read external pins, but to drive/read inputs/outputs of a standard vhdl block? Ok. Then you should be able to use opb_gpio unmodified.

 

You just need to wrap your vhdl module in a pcore.

 

Not an issue. Please follow these steps. (I'm following along in EDK 10.1, so it is possible the steps will be slightly different. )

  1. First you should have an ISE project in which the vhdl module in question is the top level module.
  2. Be sure tosythsize this module. (This ensures that a .prj file will be in the directory, and that the module does not conatin errors).
  3. In the Platform Studio window, select "Create or import perhiperal" from the Hardware menu.
  4. Select Import Exister perhiperal, and click next.
  5. leave the selection at "to existing XPS project" and click next.
  6. Enter the name of the top level entity of the vhdl projectand click next.
  7. Choose the "use an XST projec" option, and bowse to the correct .prj file, then click next.
  8. Verify the file list and then click next. If the name of the top-level vhd file does not match the name you entered a few screen backs,
    you will get a warning. If the file does not contain an entity with the same name you entered you will get an error.
  9. Uncheck the select bus interface box, and click next.
  10. uncheck the select and configure interupts box and click next.
  11. Verify the list of ports and then click next.
  12. Finally click finish.

At this point you should be able to find the new pmod in the IP catalog. Add it to the project, and connect it all up on the ports tab.

 

That should do it.

View solution in original post

6 Replies
Highlighted
Explorer
Explorer
7,713 Views
Registered: ‎11-13-2007

In EDK, go to Hardware-Create or Import Peripheral"

Choose create templates...

Give it a name, destination, etc.

When you get to the bus interface page, check the box near the bottom to "Enable OPB and PLB v3.4 bus interfaces", then choose OPB.

You'll have to choose what sort of interface bits and pieces you want, but when you're done, this will give you an interface framework that's not to difficult to understand.

 

Good luck.

Highlighted
Observer
Observer
7,671 Views
Registered: ‎11-14-2008

Thanks for your reply.
I was wondering how can i realize my Own gpio on OPB bus without using the prebuilt Xilinx opb_gpio device (which i cannot modify to add my own VHDL block).
Could you help me again?
Thank you in advance!
     Giacomo

0 Kudos
Highlighted
Contributor
Contributor
9,103 Views
Registered: ‎01-06-2009

You want to use gpio, but not to drive/read external pins, but to drive/read inputs/outputs of a standard vhdl block? Ok. Then you should be able to use opb_gpio unmodified.

 

You just need to wrap your vhdl module in a pcore.

 

Not an issue. Please follow these steps. (I'm following along in EDK 10.1, so it is possible the steps will be slightly different. )

  1. First you should have an ISE project in which the vhdl module in question is the top level module.
  2. Be sure tosythsize this module. (This ensures that a .prj file will be in the directory, and that the module does not conatin errors).
  3. In the Platform Studio window, select "Create or import perhiperal" from the Hardware menu.
  4. Select Import Exister perhiperal, and click next.
  5. leave the selection at "to existing XPS project" and click next.
  6. Enter the name of the top level entity of the vhdl projectand click next.
  7. Choose the "use an XST projec" option, and bowse to the correct .prj file, then click next.
  8. Verify the file list and then click next. If the name of the top-level vhd file does not match the name you entered a few screen backs,
    you will get a warning. If the file does not contain an entity with the same name you entered you will get an error.
  9. Uncheck the select bus interface box, and click next.
  10. uncheck the select and configure interupts box and click next.
  11. Verify the list of ports and then click next.
  12. Finally click finish.

At this point you should be able to find the new pmod in the IP catalog. Add it to the project, and connect it all up on the ports tab.

 

That should do it.

View solution in original post

Highlighted
Observer
Observer
7,645 Views
Registered: ‎11-14-2008
Thank you guys! I got it and it works!
0 Kudos
Highlighted
Contributor
Contributor
6,519 Views
Registered: ‎02-25-2009

I did the similar flow for another ISE project which just counter X time clock and then flip the LED.

I can create the IP and see it in IP Catalog. However, I can not drag the IP to the bus interface. I also tried right click the IP and choose "ADD IP", still nothing happens.

 

Am I missing anything?

0 Kudos
Highlighted
Observer
Observer
6,495 Views
Registered: ‎03-30-2009

"I did the similar flow for another ISE project which just counter X time clock and then flip the LED.

I can create the IP and see it in IP Catalog. However, I can not drag the IP to the bus interface. I also tried right click the IP and choose "ADD IP", still nothing happens.

 

Am I missing anything?"


So I had the same issue today when trying to modify the existing tft controller ip that is provided by the xilinx EDK. I'm not 100% if this was the issue, but I had named my custom IP the same name as the Xilinx TFT IP, xps_tft, so maybe EDK got confused that there were two identically named IPs somewhere in the repositories. All I did was change the name of the top level module of my custom IP, and thus the name of the custom IP I imported, and that fixed the problem!

 

Hope this helps, let me know what happens!

0 Kudos