- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
I am using the quartus pro 23.4 with Asling 23.4.1
I have used the avalon_slave bus in my own module. After building the BSP and I try to run the IORD_32DIRECT (base_address) or even IOWD_32DIRECT(base_address, data)
and I found there are 8 read/ write pulse when I use the signal tap analyser to check on it.
See anyone have idea on this issue. Thank you very much.
Best regards,
Paul
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Paul,
Just to confirm, are you using Nios V?
Could you go into more details, for example PD system?
Best regards,
Sho
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sho,
Thanks for your reply and I am using the Nios V and below is the Nios V and the corresponding Avalon_ext_bus_32x64k module with the port information in the previous post.
Best regards,
Paul
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sho,
I try to make the thing simple. The connection my own module avalon_timeout2 to the Nios V CPU in the platform design as show in the pic (PD.png)
For the avalon_timeout2 is used to access the memory in below VHDL code (sorry that please ignore the name of the module "timeout", as I just quickly modify it)
Then, in the Ashling IDE, I just try to write and read the memory. However, the output are also abnormal by this simple try.
IOWR_32DIRECT(AVALON_TIMEOUT2_0_BASE,0x0,0x00000001); //write address 0 with data 1
uint rddata = IORD_32DIRECT(AVALON_TIMEOUT2_0_BASE,0x0); //read address 0
IOWR_32DIRECT(AVALON_TIMEOUT2_0_BASE,0x4,0x00000004); //write address 0x04 with data 0x04
rddata = IORD_32DIRECT(AVALON_TIMEOUT2_0_BASE,0x4); //read address 0x04
when I run the 1st IOWR_32DIRECT(AVALON_TIMEOUT2_0_BASE,0x0,0x00000001), it seem the read pulse is triggered, address is changing.... (waveform.png)
when I run others 3 code. There are no trigger in the signal tap analyser. It make me confuse....
Do you have any idea on this ?
Thanks
Paul
The VHDL code for avalong_timeout2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Paul,
Looking at the VHDL code, it seems to me that there is no part which causes such errors.
Could you check if the memory address you access is correct?
What are the address of the memory you want to r&w (configured on Platfor Designer), and AVALON_TIMEOUT2_0_BASE?
Best regards,
Sho Yamamoto
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sho,
Thanks for your response.
In the platform design the base address from 0x00100000 to 0x0013ffff for the 16bit address on the avalon bus.
This time the abnormal is different. When I use the IOWR_32DIREC function, the read pulse is appear. It is very strange.
However, I try to change the address bus width to 12 bit, the base address 0x00058000 to 0x0005bfff. The signal capture from signal tap analyzer become normal.
Best Regards,
Paul
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Paul,
You mean you can now see correct waveform on signal tap by changing address bit width?
Best regards,
Sho Yamamoto
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sho,
yes, If I try to change the address bus to 12 bit in my custom module. Then, it work properly.
However, it need 16bit address in my module in my application.
Best regards,
Paul
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Paul,
Could you confirm the following?
- Please decrease the clock to for example 50MHz and run? I'm wondering if the design meets the timing.
- What is the frequency of JTAG? Please see if decreasing it to 6MHz works.
- What is the target memory you are trying to access? Is it a custom memory?
Best regards,
Sho Yamamoto
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sho,
Thanks of your reply. According to your suggestion
- Please decrease the clock to for example 50MHz and run? I'm wondering if the design meets the timing.
Try to decrease the clock with lower frequency e.g it give the same situation.
- What is the frequency of JTAG? Please see if decreasing it to 6MHz works.
Yes, I tried to use the lower clock rate on JTAG with 6MHz, it also give the same situation.
- What is the target memory you are trying to access? Is it a custom memory?
My target is to access the custom module (custom made interface with 16bit address bus - as there are different register or memory in this interface)
I am look on the Nios V cache memory. It seems that it use 32bytes (8 words) per cache line. Don't know it is related to the cache memory to give multiple read/write pulse.
Thanks
Best regards,
Paul

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page