parallel NOR S29AS016J programming issue

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
user_4106501
Level 1
Level 1

Hi,

I want to create a controller for s29as016j, and I run the RTL simulation to get some sense of the characteristic of s29as016j (access time 75ns) first.

The NOR flash was preloaded with a pattern and I try to do some programming.

When I send the program command {Addr, data} = {0x555,0xAA} {0x2AA, 0x55} {0x555, 0xA0} {0x3, 0x3742}    (programming the location 0x3-16bit, with the value 0x3742)

The value which be programmed was changed to 0xFFFF_FFFF, not the value I want.

And the RY signal was not pull high back.

Should I send a RESET before programming it during the simulation? or anything i don't know... osz

Any help would be appreciated.

s29as016j_0502.png

0 Likes
1 Solution

Hi,

Table 18.4 on page 45 of the datasheet gives typical value of twhwh1 parameter.

pastedImage_0.png

It matching with the typical value mentioned in page 51 of the datasheet.

pastedImage_1.png

There is no updated model available.

Thanks and Regards,

Sudheesh

View solution in original post

0 Likes
8 Replies
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hi,

How long are you waiting for the RY/BY# signal to become HIGH after programming?


Thanks and Regards,Sudheesh

0 Likes

Hi SudheeshK,

There extend more than 10 us (tWHWH1 is 6us) after the programming command in my simulation, but RY/BY# keep LOW still.

0 Likes

Hi,

To help you further with this case, we would like to know below information.

  1. Model version
  2. Are you using SDF or not? 
  3. What are the steps that you followed to reproduce the issue? Please explain in detail.

Thanks and Regards,

Sudheesh

0 Likes

1. the model version is 1.1

sim_model_ver.png

2. i did not use SDF, just a RTL simulation.

3.  I edit a verilog list file as system.f  { +ncaccess+r  ./tbw_100m.v ./nor_s29as016j.v }

and execute the following:

3.1.

ncverilog -f system.f -timescale 1ns/10ps

3.2.

verdi -sv -f system.f -ssf system0.fsdb

thanks.

0 Likes

Hi,

Sorry for the delay in our response. Please find our comments below.

As per the waveform you attached, you are performing a word programming operation (command = 0xA0). Maximum time required for word programming operation is 150us (datasheet page: 51, https://www.cypress.com/file/217491/download ). So, can you wait for more time after word programming operation and check if RY/BY# signal become HIGH or not? Alternatively, you can read the location being programmed until DQ6 bit stops toggling to make sure that the programming operation is finished. Please let me know if you need any clarifications.


Thanks and Regards,
Sudheesh

0 Likes

Hi,

Yes, I am trying to perform a word programming (BYTEn = 1) to write 0x3742 to the word address 0x3 (byte address 0x6~0x7).

As I extend the simulation period to 175us, I found that the low byte 0x42 was programmed into the address 0x6, BUT the high byte DID NOT when about 150us20190523_cypress.png.

The ready signal RY turn into Hi-Z, is it right? @@"

0 Likes

As you said, the max time required for programming a word is 150 us, but what is the different between it and the tWHWH1 (datasheet page 45)? it is just 6us.

BTW, is there any update for the simulation model? Thanks.

0 Likes

Hi,

Table 18.4 on page 45 of the datasheet gives typical value of twhwh1 parameter.

pastedImage_0.png

It matching with the typical value mentioned in page 51 of the datasheet.

pastedImage_1.png

There is no updated model available.

Thanks and Regards,

Sudheesh

0 Likes