Jump to content
  • 0

Using Pmod IP cores without processor


moe

Question

Newbie here. I own Arty board, Display shield and few Pmods. So whenever I'm trying to find a newbie manual how to use these, I'm hitting Arduino/Microblaze stuff. The thing is, I'm absolutely not interested in any sort of embedded C programming as it looks like a swamp to me. I would rather concentrate on learning pure VHDL.  So I'm asking, is there newbie guidance on how to use the mentioned devices without any kind of processor or all this Digilent stuff just doesn't fit the bill?

 

P.S. I'm considering FPGA as a hobby only so I'm not interested in any sort of marketing material.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

Hi @moe,

We have a couple different types of arty dev boards. Just the verify you have the Arty-A7-35T correct? I would look at the Nexys 4 OOB Demo as well as the link attached above for the Pmod ACL for an example of how to interact with an accelerometer. There is a vhdl project using the Pmod GYRO on the bottom of the resource center here. We are here if you need help.

On a side note: If you are not interested in learning vhdl or verilog to make the display and pmods work then you might want to try the microblaze path. The pmods and the MTDS have ip core completed and verified.Here is a partially completed microblaze project for the Arty-A7-35T and the MTDS, Pmod GYRO and the Pmod ACL2 in Vivado/SDK 2017.4. The vivado portion of the design is done. To use this project you would need to finish the sdk potion of the design.  The Getting Started with Digilent Pmod IPs and the Multi-Touch Display System web pages should be helpful.

cheers,

Jon

 

 

 

 

 

Link to comment
Share on other sites

@moe,

I also have the Arty board and "a few pmods".  You can find my design on GitHub--I call it OpenArty.  The design does not use microBlaze at all, nor does it use the schematic design approach.  It is done entirely in RTL, to include support for the ethernet and the DDR3 SDRAM.

This may or may not work for you, however.  Although the design is entirely open, it was also written entirely in Verilog (not VHDL).  Further, I used a ZipCPU within the design.  As a result, all of the peripherals I created were connected to a wishbone bus, allowing them to be controlled from a CPU, an external host controller, or even your own state machine if that's how you wished to do things.

I've argued on line that the first approach to any CPU-based design should be first building the code to run and be commanded by an external "host" computer--such as a PC.  Even if you have no CPU within your design, you might still find this approach valuable for controlling the components of the design.  I wrote extensively about how to do this on my blog.  You can find the links to those articles here if you would like.

Dan

Link to comment
Share on other sites

Hi @moe,

To use ip cores without a processor you would need to make an axi bus interface which is a complicated task. Being new to fpga's i would suggest to make your own vhdl modules for the pmods if you are not wanting to use microblaze. A few of our pmods have pure hdl projects like the PmodACL and the PmodAD2. One of our community members @hamster has a few pmod projects in vhdl as well here. What pmods are you using? I do not believe the multi touch display shield has a project done in vhdl. I would also look at fpga4fun.com for more vhdl information. 

thank you,

Jon 

Link to comment
Share on other sites

>> as it looks like a swamp to me.

It is a swamp :) but it's good for the dull, boring stuff few people would do for fun.

Don't get intimidated by the need for IP. Often, the main job is to provide very basic connectivity.
There are a number of "gotchas" mostly related to interfacing with a world that refuses to be synchronously digital. Other than that, some things like SPI are very straightforward on an FPGA (I2C maybe somewhat less so). Check the data sheet of the component.

On the other hand, some components (e.g. modern displays, some but not all audio codecs) may be too complex to be worth the trouble. Here the microblaze / ARM core may be even (IMHO) a must-have tool for experimenting without having to change the bitstream all the time.

 

Link to comment
Share on other sites

On 22/03/2018 at 2:51 PM, jpeyron said:

Hi @moe,

To use ip cores without a processor you would need to make an axi bus interface which is a complicated task. Being new to fpga's i would suggest to make your own vhdl modules for the pmods if you are not wanting to use microblaze. A few of our pmods have pure hdl projects like the PmodACL and the PmodAD2. One of our community members @hamster has a few pmod projects in vhdl as well here. What pmods are you using? I do not believe the multi touch display shield has a project done in vhdl. I would also look at fpga4fun.com for more vhdl information. 

thank you,

Jon 

Hi @jpeyron,

Thank you for response but you kind of ruined my last hope:) I thought, at lest pmods are supported, and I only have a problem with the display. Now I now  that all that Arduino compatibility came with a cost.

> Being new to fpga's i would suggest to make your own vhdl modules for the pmods

I don't think I'm capable of doing that yet but I'll definitely look at examples.

> What pmods are you using?

I have, PmodACL2 and PmodGYRO.

Link to comment
Share on other sites

Just a random thought: Getting the data out of accelerometer and gyro, no big deal. RTL can do that.

But what comes next? Dealing with Euler angle special cases in the FPGA fabric? Quaternion math, Kalman filtering etc? Forget it.

This is where microcontrollers come in, or something heavier, preferably floating-point (hint: NEON on Zynq, after heavy prototyping in Matlab or friends).

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...