FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5892 Discussions

A10 GX DEV KIT - PCIE to control SPI core ( 3 wire) IP - Regmap

HungLam
Beginner
997 Views

Hi,

 

I am designing an application similar to PCIe to SPI bridge. I used PCIe HIP and SPI ( 3 wire) peripheral. My design used only bar0 and bar4, and I connect bar4 avmm to spi core avms, PCIe bar4 avmm running at 250Mhz and the same clock to spicore avms. But it was not able to read from host computer via pcie, then I tried to put cross clocking bridge to reduce spicore avms to 125Mhz. It was not successul to control spi core regmap.

 

In design I also included PIO to control 2 LEDs via PCIe, it was fine, but still not able to control spi core regmap. I have double check spi core regmap base address.

 

Do you have any hint? What is max clk I can provide to spi core?

Thanks,

0 Kudos
4 Replies
SengKok_L_Intel
Moderator
777 Views

Hi,

 

There is no specify the MAX clock, but you probably can try to simplify the design by connecting with JTAG MASTER (using system console) or NIOS processor instead of PCIe to debug it. It allows you to easily run with different clock rates. After the simple one is working, then you can change it back to use PCIe and then understand the difference. You might also need to capture signaltap to confirm if all the registers are written correctly.

 

 

Regards -SK

0 Kudos
HungLam
Beginner
777 Views

Hi,

 

It worked with nios, but now we would like to hook SPI core to PCIe memory map for direct command from host pc.

 

I figured out that the problem was with avmm addressing. I am trying to understand, since SPI core using 16 bits bus width, but AVMM from PCIe using 32 bits bus width ( or could be 256 bits bus width).

 

This caused the issue, I am trying to fix it.

 

Thanks for your answer!

 

0 Kudos
Halotem12
Beginner
762 Views

Did you manged to solve 3 wire spi core connection ?

0 Kudos
Hermann
Beginner
534 Views

Hung Lam,

I'm facing similar issues. I have an SPI core (3wire) connected to bar0 of a PCIe hard core in an Stratix IV FPGA. It looks as if data is hold back somewhere before being written through the avalon bus to the SPI controller. For example if I write a sequence of values to the CS register and read it back I always read the previous value ... then reading again I get the value written. I tried other components like memory blocks and one of our custom blocks on bar0 of the PCI bus and they work fine.

I noticed like you that the data bus of the core is 16 bit wide. Addressing it is only possible using the 32 bit addressing scheme meaning every register is on multiples of 4bytes (instead of 2 bytes) It looks - as you suggested - to be an integration issue of platform designers avalon component generation with this core. 

Could you share your solution with us ?

 

Best regards

 

Hermann

0 Kudos
Reply