• 0

Custom AXI pheripheral


Question

12 answers to this question

Recommended Posts

  • 0

@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

Edited by chaitusvk
Link to post
Share on other sites
  • 0
12 minutes ago, [email protected] 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

@[email protected]  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 @[email protected]

 

 

Edited by chaitusvk
Link to post
Share on other sites
  • 0

@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 post
Share on other sites
  • 0
2 minutes ago, [email protected] 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

 

Edited by chaitusvk
Link to post
Share on other sites
  • 0
Just now, [email protected] 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

@[email protected] 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 post
Share on other sites
  • 0

@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 post
Share on other sites
  • 0
On 9/2/2019 at 5:16 PM, [email protected] 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

@[email protected] 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 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