Jump to content
  • 0

Custom AXI pheripheral


chaitusvk

Question

12 answers to this question

Recommended Posts

@jpeyron

 

after checking file groups i am not getting synthesis error but i am not able to make SUM correctly sum is always zero 

even i create  axi peripheral with just led out from slv_reg0 ...i am unable to make it work...

i have attached the files ..it is created in VIvado 2019.1 please help me ...

 

at down i have attached ip core 

please check total source at https://github.com/chaitusvk/axi_peripheral

 

 

thank you very much @jpeyron

 

1.png

2.png

3.png

4.png

5.png

 

7.png

8.png

9.png

10.png

11.png

12.png

15.png

16.png

18.png

20.png

axi_adder.zip

Link to comment
Share on other sites

12 minutes ago, D@n said:

@chaitusvk,

You haven't said what your problem was.  What is it your design does that makes you believe it doesn't work?

Dan

@D@n  just i am creating 8 bit adder 

 

i will write  A to one axi_slv_reg

and B to other reg

sum should be in third slv_reg

i am unable to create correct functinality...

thank you @D@n

 

 

Link to comment
Share on other sites

@chaitusvk,

No, I got that much.  What values are you adding that are giving you the wrong answer?

When you add 1+1, you should get two, right?  When you add 7+7 you should get 14, right?  When you add 3+1 you should get 4.  Are you getting these answers?

Similarly when you add 0x53 + 1 you should get 84.  Is this the result you are getting?

Dan

Link to comment
Share on other sites

2 minutes ago, D@n said:

@chaitusvk,

No, I got that much.  What values are you adding that are giving you the wrong answer?

When you add 1+1, you should get two, right?  When you add 7+7 you should get 14, right?  When you add 3+1 you should get 4.  Are you getting these answers?

Similarly when you add 0x53 + 1 you should get 84.  Is this the result you are getting?

Dan

 I am always getting "0"  what ever the input put

there some mistake i am making ....i think so

 

Link to comment
Share on other sites

Just now, D@n said:

@chaitusvk,

Try reading back your adder inputs after writing them.


xil_printf("Inputs to adder: %08x\n", Xil_In32(XPAR_MYIP_ADDER_0_S00_AXI_BASEADDR));

What do you get there?

Dan

@D@n Thank you for sending time dan i am getting what i am writing , 

 

two xil_prints i added first one giving me what i am writing second one giving blank 

i have create different ip like leds are given to lsb of reg_slv not nothing working ...

 

dan.png

dan2.png

Link to comment
Share on other sites

@chaitusvk,

Here's my puzzle --- while I see several (common) bugs in your core (Vivado's AXI-lite demo core has known bugs in it), bugs I'd like to discuss and share, I haven't yet found the bug causing the problem.

Let's try this ... set reg_data_out = -1 (independent of the axi_araddr), and let's just verify that you can read from your core in the first place.  I'm suspecting a couple of things, one possibility being that Vivado hasn't noticed you update the design with the adder, and so it's still building the older design.  (I think "run design automatiion" might help there ...)  Anotherr possibility is that you are accessing your core via the wrong address.  If you can set an LED from the core on any write (if (S_AXI_AWVALID && S_AXI_WVALID) led <= !led;) that would also help determine the same thing.

Dan

Link to comment
Share on other sites

On 9/2/2019 at 5:16 PM, D@n said:

@chaitusvk,

Here's my puzzle --- while I see several (common) bugs in your core (Vivado's AXI-lite demo core has known bugs in it), bugs I'd like to discuss and share, I haven't yet found the bug causing the problem.

Let's try this ... set reg_data_out = -1 (independent of the axi_araddr), and let's just verify that you can read from your core in the first place.  I'm suspecting a couple of things, one possibility being that Vivado hasn't noticed you update the design with the adder, and so it's still building the older design.  (I think "run design automatiion" might help there ...)  Anotherr possibility is that you are accessing your core via the wrong address.  If you can set an LED from the core on any write (if (S_AXI_AWVALID && S_AXI_WVALID) led <= !led;) that would also help determine the same thing.

Dan

@D@n Thank you very much Dan 

 

it is issue with linux system  ...i am using UBUNTU 16.04 and installed drivers by executing install drivers in data directory 

i tried the same example in Windows 7 but vivado 2016.1 it is working fine 

 

I have POST the bug in XLINX FORUM

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...