<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Legal transactions for AXI FIXED mode</title><link>https://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/47688/legal-transactions-for-axi-fixed-mode</link><description> Hello, 
 I am currently using AXI with burst type of FIXED for writing into a fifo. its data bus width is 32 - bits. 
 1. So i wanted to know whether AWSIZE of 64-bits and greater are legal or no. If it is legal then how should the data be stored in</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Legal transactions for AXI FIXED mode</title><link>https://community.arm.com/thread/167652?ContentTypeID=1</link><pubDate>Thu, 24 Sep 2020 10:24:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:5ffa5aed-cb67-4b94-bc47-687c119c1b31</guid><dc:creator>Utkarsh S</dc:creator><description>&lt;p&gt;Thank you so much for the explanation. Cleared a lot of my doubts.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Legal transactions for AXI FIXED mode</title><link>https://community.arm.com/thread/167629?ContentTypeID=1</link><pubDate>Wed, 23 Sep 2020 12:21:25 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a9db573b-43cf-4098-a374-8974e512bccd</guid><dc:creator>Colin Campbell</dc:creator><description>&lt;p&gt;If your slave, whatever it is, has a data bus width of 32-bits, it wouldn&amp;#39;t be illegal to signal a 64-bit transfer to it, but presumably you&amp;#39;d have a &amp;quot;downsizing&amp;quot; bridge component between the 64-bit bus and the 32-bit bus on your slave, and it would then generate suitable 32-bit transfers.&lt;/p&gt;
&lt;p&gt;So for a FIXED burst type, each 64-bit transfer is accessing 2 32-bit values, so when &amp;quot;downsized&amp;quot; you would probably then have a series of INCR2 transactions.&lt;/p&gt;
&lt;p&gt;Looking at your FIFO example, as you maybe want both of these 32-bit transfers in the INCR2 transaction to access the same 32-bit FIFO location, I guess you&amp;#39;d ignore AxADDR[2:0]. So a 64-bit write transfer actually writes twice to the FIFO, and a 64-bit read returns two 32-bit FIFO values merged into 1 64-bit read data.&lt;/p&gt;
&lt;p&gt;Or, if the 64-bit source is aware that the target slave is only 32-bits wide, perhaps it is writing with WSTRB set to 0x0F or 0xF0 so that only 32-bits of valid data is signaled, and then the &amp;quot;downsizing&amp;quot; logic simply has to route the relevant half of the 64-bit data bus to the 32-bit FIFO slave.&lt;/p&gt;
&lt;p&gt;The better solution though would be for the master accessing the FIFO to just use 32-bit access requests, and then there isn&amp;#39;t any doubt as to what data is read or written.&lt;/p&gt;
&lt;p&gt;For your second question, it seems to be missing the point of what a FIFO is. It is a single address memory buffer which stores a number of data values. If you performs multiple writes to the FIFO, each one enters the FIFO chain of registers. When you then read from the FIFO, the first data written (the &amp;quot;first in&amp;quot; part of FIFO) is the first data read out (the &amp;quot;first out&amp;quot; part of FIFO). Multiple writes do not overwrite previous data written, unless the FIFO is then full.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>