Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

Problem with ssram

Altera_Forum
Honored Contributor II
1,125 Views

Hello Everyboby. I'am a beginers so every information will be helpful for me.  

My problem is associate with ssram placed on the nios development board cyclon II edition ep2c35. 1) I have seen thet board description (ssram chip) provides by Altera is not conform with electrical schematic diagram. 2) If I try to use the ssram component as a program memory nios II ide give me information such like thet:  

 

" Using cable "USB-Blaster [USB-0]", device 1, instance 0x00 

Pausing target processor: OK 

Reading System ID at address 0x00001000: verified 

Initializing CPU cache (if present) 

OK 

 

Downloading 00200000 ( 0%) 

Downloaded 1KB in 0.0s  

 

Verifying 00200000 ( 0%) 

Verify failed between address 0x200000 and 0x20029B 

Leaving target processor paused " 

 

It doesn&#39;t matter whitch example program I use. The only change is in range of address. Please help me. Best regards Marcin. http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/dry.gif
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
405 Views

hi, 

 

i have the same errors when i forget to connect the ssram-clk! ...maybe this will help? 

 

regards, 

martin
0 Kudos
Altera_Forum
Honored Contributor II
405 Views

Don&#39;t forget to put a phase shift on the ssram clock with respect to the clock you are using on the Avalon interface. So lets say you want to run the SSRAM at 100MHz. You should supply a clock within SOPC Builder to the memory component at 100MHz, but also send a phase shifted version of that clock of -3.38ns. This is so that the data is lined up properly to be sampled on the Avalon clock. 

 

And yes remembering to hook up the clock helps too, not that I&#39;ve ever done that ... more than four times http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/smile.gif
0 Kudos
Altera_Forum
Honored Contributor II
405 Views

Hi, thanks a lot for yours response, but i don&#39;t forget to put a phase shift, and connect clock to ssram. My ssram work properly as well. I verified it by run example hardware & software progrm prowides by Altera. My problem have started since i wont to make my own nios project from the beginning. I used all setings from thet old project and nothing. Maybe i overlloked sonethink, but i don&#39;t now what. I read users manual to ssram fron SOPC Builder and i found information that Desired Tco (Avalon to SSRAM clock) should be -2.0ns but i don&#39;t now where i can make it. 

Maybe someone have idea what is wrong.  

Thanks, Marcin. http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/unsure.gif
0 Kudos
Altera_Forum
Honored Contributor II
405 Views

Hi again. Success!!! http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/biggrin.gif . My friend (leszekd) found solution. As BadOmen wrote it was problem witch timing settings, but it is little bit more complicate. You have to open file which has got extension QSF and paste there under the ssram fitter assignments ssram timing and current_strength setings. 

 

# Dropping ssram drive strength# ------------------------- 

 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to data_to_and_from_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to address_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to adsc_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to bw_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to chipenable1_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to outputenable_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to bwe_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to ssram_adsp_n 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to ssram_adv_n 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to sram_clk 

 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to adsc_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to bwe_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to chipenable1_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to data_to_and_from_the_ext_ssram 

set_instance_assignment -name TSU_REQUIREMENT "6 ns" -from * -to data_to_and_from_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to outputenable_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to address_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to bw_n_to_the_ext_ssram 

set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" 

set_instance_assignment -name PARTITION_HIERARCHY no_file_for_top_partition -to | -section_id Top 

 

Many thanks for you all. See you again Marcin
0 Kudos
Altera_Forum
Honored Contributor II
405 Views

 

--- Quote Start ---  

hi, 

 

i have the same errors when i forget to connect the ssram-clk! ...maybe this will help? 

 

regards, 

martin 

--- Quote End ---  

 

 

Hi 

 

I do have the same problem. But what did you mean? To what do I need to connect the ssram-clk?
0 Kudos
Altera_Forum
Honored Contributor II
405 Views

 

--- Quote Start ---  

Hi again. Success!!! . My friend (leszekd) found solution. As BadOmen wrote it was problem witch timing settings, but it is little bit more complicate. You have to open file which has got extension QSF and paste there under the ssram fitter assignments ssram timing and current_strength setings. 

 

# Dropping ssram drive strength# ------------------------- 

 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to data_to_and_from_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to address_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to adsc_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to bw_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to chipenable1_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to outputenable_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to bwe_n_to_the_ext_ssram 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to ssram_adsp_n 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to ssram_adv_n 

set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to sram_clk 

 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to adsc_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to bwe_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to chipenable1_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to data_to_and_from_the_ext_ssram 

set_instance_assignment -name TSU_REQUIREMENT "6 ns" -from * -to data_to_and_from_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to outputenable_n_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to address_to_the_ext_ssram 

set_instance_assignment -name TCO_REQUIREMENT "3.3 ns" -from * -to bw_n_to_the_ext_ssram 

set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" 

set_instance_assignment -name PARTITION_HIERARCHY no_file_for_top_partition -to | -section_id Top 

 

Many thanks for you all. See you again Marcin 

--- Quote End ---  

 

 

Hi 

 

I also have a problem with the SSRAM. What did you mean with "under the ssram fitter assignments ssram timing and current_strength setings." 

Where do I have to paste the file?
0 Kudos
Altera_Forum
Honored Contributor II
405 Views

 

--- Quote Start ---  

Hi 

 

I also have a problem with the SSRAM. What did you mean with "under the ssram fitter assignments ssram timing and current_strength setings." 

Where do I have to paste the file? 

--- Quote End ---  

 

If you go to your project folder, there is a file called: <project_name>.qsf . You can open this file with a texteditor such as notepad.  

There (I think on a random location, but bottom prefered since then you can easily find it back :)) you can post these commands. 

But you can also set the current strenght in the pin planner (which is the normal way to do things). 

Right click in the bottom part of the pin planner (where all the pin assignments are made), hit right mouse button -> customize colums -> add the current strength tab. You might also want to add the slew rate tab. 

You can set the TRI-STATED part by right clicking your device in the entity tab in the top right corner of the project. Select 'Device...' -> Device and pin options -> Unused pins -> As tri-state with weak pull-up. This makes sure that the unused pins don't 'send' out a 1 or a 0 to the outside influencing your device. You should pretty much always chose this option. 

 

As for the timing settings. You useally make those contrains in the .SDC file (Timequest), but this might work as well, I have no idea about that (I've only worked with SDRAM so far). 

 

The last command should already be the last line in your .qsf file.
0 Kudos
Reply