FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6343 Discussions

Qsys On-chip memory access

anil_naik
Employee
781 Views

Hi All,

 

We have Qsys design with JTAG to Avalon Master Bridge and On-chip memory targeted to MAX10 Dev Board.

Could not access memory through system console. seeing following error

SEVERE: master_read_memory: This transaction did not complete in 60 seconds. System Console is giving up.

 

anil_naik_0-1626407365568.png

Could access JTAG loopback, sample clock, sample reset from system console.

 

Any help will be really useful.

Thank you

 

0 Kudos
7 Replies
sstrell
Honored Contributor III
763 Views

(Platform Designer, not Qsys)

Did you set up the master service path in System Console and claim the service?  What are the commands you've issued in System Console?

0 Kudos
anil_naik
Employee
735 Views

Hi sstrell

 

Thanks for the Response

I have set the master service and claim the path. I have used below commands in system console also pasted response.

Using Max10M50DA dev kit.

Pin loc clock is     M8  (25MHz)

Pin loc reset_n is D9 

% set jd_path [lindex [get_service_paths jtag_debug] 0]
/devices/10M50DA(.|ES)|10M50DC@1#USB-1/(link)/JTAG/(110:132 v1 #0)/phy_0
% jtag_debug_sample_clock $jd_path
1
% jtag_debug_sample_clock $jd_path
0
% jtag_debug_sense_clock $jd_path
1
% jtag_debug_sample_reset $jd_path
1
% jtag_debug_loop $jd_path [list 1 2 3 4 5 6 7 8 9 10]
0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a
% jtag_debug_reset_system $jd_path

% jtag_debug_sample_reset $jd_path
1
% set ocram 0x0
0x0
% set m_path [lindex [get_service_paths master] 0 ]
/devices/10M50DA(.|ES)|10M50DC@1#USB-1/(link)/JTAG/(110:132 v1 #0)/phy_0/master
% set c_path [claim_service master $m_path ""]
/channels/local/(lib)/master_1
% master_read_32 $c_path $ocram 1
error: master_read_32: This transaction did not complete in 60 seconds. System Console is giving up.
while executing
"master_read_32 $c_path $ocram 1"

 

Thanks

0 Kudos
sstrell
Honored Contributor III
709 Views

Your $ocram Tcl variable becomes a string variable because of the "x", so that's probably why the command is failing.  Just put the address itself in the master_read_32 command to test.  If you're going to need a variable for this address in a script, you'll probably need to do some Tcl "finagling".  I like the Tcl reference here: http://tmml.sourceforge.net/doc/tcl/index.html

0 Kudos
anil_naik
Employee
691 Views

Thanks for sharing Tcl reference.

I have tried with below command as well but still errored out

master_read_memory $c_path 0 32 

 

Do we need valid quartus license for program and debug?

 

0 Kudos
sstrell
Honored Contributor III
683 Views

You don't need a license for this.  Could the design be stuck in reset?  You got 1 back from the jtag_debug_sample_reset command.

0 Kudos
anil_naik
Employee
674 Views

Yes. I did get 1 back from jtag_debug_sample_reset command

I have pasted commands and responses below.

 

% jtag_debug_sample_clock $jd_path
0
% jtag_debug_sample_clock $jd_path
1
% jtag_debug_sample_reset $jd_path
1
% jtag_debug_reset_system $jd_path

% jtag_debug_sample_reset $jd_path
1
% set m_path [lindex [get_service_paths master] 0]
/devices/10M50DA(.|ES)|10M50DC@1#USB-1/(link)/JTAG/(110:132 v1 #0)/phy_0/master
% set claim_path [claim_service master $m_path ""]
/channels/local/(lib)/master_1
% master_read_32 $claim_path 0 1
error: master_read_32: This transaction did not complete in 60 seconds. System Console is giving up.
while executing
"master_read_32 $claim_path 0 1"

0 Kudos
anil_naik
Employee
671 Views

Changed the clk pin from 25MHz board clock to 50MHz clock. 

Now able to read and write to memory

% master_read_32 $claim_path 0 1
0x00000000
% master_write_8 $claim_path 0x0 0xe

% master_read_32 $claim_path 0 1
0x0000000e

 

Thank you very much for your support

0 Kudos
Reply