cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tomray
Observer
Observer
8,274 Views
Registered: ‎03-27-2014

How to modify the certain word in one write burst operation?

Jump to solution

In my experiment, the UI Data Width = 512 bit, the memory is distributed as:

address 0(the first burst):  [D0 D1 D2 D3 D4 D5 D6 D7]

address 8(the second burst):[E0 E1 E2 E3 E4 E5 E6 E7]

the width of word Di (i = 0,…,7) is 64 bit。

Now I want to modify the word D0 to A0,so I set the user interface as follows:

app_en = 1;

app_cmd = 3’b000;

app_addr = 0; // the address is alignment for burst 8

app_wdf_data = [A0 X X X X X X X];

app_wdf_mask = 0x00_ff_ff_ff_ff_ff_ff_ff;

app_wdf_wren = 1;

app_wdf_end = 1;

Now the question is: if I want to modify the word D1 to A1, then how to set the user interface above. I set the user interface like this:

app_en = 1;

app_cmd = 3’b000;

app_addr = 1; // this address is not alignment for burst 8

app_wdf_data = [X A1 X X X X X X];

app_wdf_mask = 0xff_00_ff_ff_ff_ff_ff_ff;

app_wdf_wren = 1;

app_wdf_end = 1;

Is this correct ? Could anyone give me some advice ?

0 Kudos
1 Solution

Accepted Solutions
vsrunga
Xilinx Employee
Xilinx Employee
14,082 Views
Registered: ‎07-11-2011

Hi,

 

Yes if you want to just mask words within a UI width/ memory burst yes you just need to assert the mask signal correctly, app_addr remains the same for that specific address

---------------------------------------------------------------------------------------------
Please do google search before posting, you may find relavant information.
Mark the post - "Accept as solution" and give kudos if information provided is helpful and reply oriented

View solution in original post

0 Kudos
3 Replies
vsrunga
Xilinx Employee
Xilinx Employee
8,269 Views
Registered: ‎07-11-2011

Hi,

 

App_wdf_mask = 512/8 = 64,  so each mask byte implies one user word

Assuming your D0 corresponds to Zeroth word, D1  first word and so on...

App_wdf_mask Bits [0:7] corresponds to D0

App_wdf_mask Bits [15:8] corresponds to D1

 

So you have to set app_wdf_mask = 0xff_ff_ff_ff_ff_ff_ff_00;  to write only D0  and mask other words similarly

you have to set app_wdf_mask = 0xff_ff_ff_ff_ff_ff_00_ff;  to write only D1  and mask other words.

 

You can run a quick simulation and compare written and read datas for confirmity.

 

Hope this helps

 

Regards,

Vanitha

---------------------------------------------------------------------------------------------
Please do google search before posting, you may find relavant information.
Mark the post - "Accept as solution" and give kudos if information provided is helpful and reply oriented
0 Kudos
tomray
Observer
Observer
8,248 Views
Registered: ‎03-27-2014

How about app_addr ?

It's the same for write D0 and D1 ? 

For the words in the same burst, the app_addr is not needed to be modify ? Just modify the app_wdf_mask ?

 

0 Kudos
vsrunga
Xilinx Employee
Xilinx Employee
14,083 Views
Registered: ‎07-11-2011

Hi,

 

Yes if you want to just mask words within a UI width/ memory burst yes you just need to assert the mask signal correctly, app_addr remains the same for that specific address

---------------------------------------------------------------------------------------------
Please do google search before posting, you may find relavant information.
Mark the post - "Accept as solution" and give kudos if information provided is helpful and reply oriented

View solution in original post

0 Kudos