cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
melexia
Observer
Observer
455 Views
Registered: ‎04-02-2019

Custom AXI peripheral register 0 showing fixed data even without writing anything

Jump to solution

Hello all,

I have designed a custom AXI peripheral. It is supposed to take 32-bit data from PS using AXILite port and use it to drive other output ports (some internal logic involved). When I add the IP in my block diagram it gets assigned an address 0x43C10000. When I want to write some data on this address using SDK, it shows that there is already some data written on this address 0x00000100. I try to overwrite the address but nothing is working.

I also tried to assign different address spaces to the IP such as 0x43C20000, but this address also shows the same data written over it. 

When I prepare the AXI IP, I use the slave registers to read the data comping from PS.

 
 

// Add user logic here
assign Data_load = slv_reg0[15:0];
assign Enable = slv_reg0[16];

 

I am not writing anything on the register, still, I do not know why it is showing the fixed data. On the power on itself, there is a data.

Does anyone have any idea why this must be happening?

 

Thanks

 

  

 

0 Kudos
1 Solution

Accepted Solutions
melexia
Observer
Observer
428 Views
Registered: ‎04-02-2019

Hello

Thank you for your reply. I found the error, the variable I was using to store the value of slv_reg0, was assigned a fixed value 0x100 at some other place in the code. I was just looking up to slv_reg0 before, that is why I think I missed it.

 

Thanks

View solution in original post

0 Kudos
2 Replies
dgisselq
Scholar
Scholar
448 Views
Registered: ‎05-21-2015

@melexia ,

Have you used an initial statement to define initial values for your registers?  If it doesn't match the initial value, then you are either not reading from your design as you think you are, or you are reading from somewhere else in memory.

Just for debugging, feel free to set axi_rdata to a constant, just to see if you can read that constant.

Don't forget, though, that Xilinx's AXI-lite implementation is broken.  Use it at your own risk.

Dan

0 Kudos
melexia
Observer
Observer
429 Views
Registered: ‎04-02-2019

Hello

Thank you for your reply. I found the error, the variable I was using to store the value of slv_reg0, was assigned a fixed value 0x100 at some other place in the code. I was just looking up to slv_reg0 before, that is why I think I missed it.

 

Thanks

View solution in original post

0 Kudos