cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
zan_zhan@amat.com
Adventurer
Adventurer
435 Views
Registered: ‎01-24-2018

Quad SPI's C_FIFO_DEPTH doesn't match the definition in TCL script of IP generation

 

All,

 

I am using below tcl to generate a quad spi ctrl which is used to work with STARTUPE3 to access external qspi flash.


create_ip -name axi_quad_spi -vendor xilinx.com -library ip -version 3.2 -module_name axi_quad_spi_0

set_property -dict [list CONFIG.C_SPI_MEMORY {3} CONFIG.C_USE_STARTUP {1} CONFIG.C_USE_STARTUP_INT {0} CONFIG.C_SPI_MODE {2} CONFIG.C_NUM_SS_BITS {1} CONFIG.C_SCK_RATIO {2} CONFIG.C_FIFO_DEPTH {256} CONFIG.C_XIP_MODE {0} CONFIG.C_TYPE_OF_AXI4_INTERFACE {0}] [get_ips axi_quad_spi_0]

generate_target {instantiation_template} [get_files ./my_vivado_cores/my_vivado_cores.srcs/sources_1/ip/axi_quad_spi_0/axi_quad_spi_0.xci]
generate_target all [get_files ./my_vivado_cores/my_vivado_cores.srcs/sources_1/ip/axi_quad_spi_0/axi_quad_spi_0.xci]

create_ip_run [get_files -of_objects [get_fileset sources_1] ./my_vivado_cores/my_vivado_cores.srcs/sources_1/ip/axi_quad_spi_0/axi_quad_spi_0.xci]
launch_runs -jobs 16 axi_quad_spi_0_synth_1

set ip_files [get_files -compile_order sources -used_in simulation -of_objects [get_files axi_quad_spi_0.xci]]
foreach file $ip_files {
puts "[get_property LIBRARY $file] $file"
}

 

In generated data files, I can observe the parameters as shown below.

spirit:referenceId="BUSIFPARAM_VALUE.SPI_CLK.FREQ_HZ">100000000</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.SPI_CLK.PHASE">0.000</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.Async_Clk">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DUAL_QUAD_MODE">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">kintexuplus</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FIFO_DEPTH">256</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INSTANCE">axi_quad_spi_inst</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LSB_STUP">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_SS_BITS">1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_TRANSFER_BITS">8</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SCK_RATIO">2</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SELECT_XPM">1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SHARED_STARTUP">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SPI_MEMORY">3</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SPI_MEM_ADDR_BITS">24</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SPI_MODE">2</spirit:configurableElementValue>
<spirit:configurableElementValue

 

After finishing whole design's synthesis, I found the different C_FIFO_DEPTH (Depth = 16 instead of 256) of this SPI IP in Vivado.

SPI_C_FIFO_DEPTH.png

 

Question1:

Why FIFO depth of IP in Vivado Gui is different from the definition of Tcl script and .xci file?

 

Question2:

In my tcl script and the generated .xci file, I saw C_SPI_MEMORY = 3, but can not find the explanation in pg153.

What does C_SPI_MEMORY = 3 mean?  

What does C_SPI_MEMORY = 2 mean?  

What does C_SPI_MEMORY = 1 mean?  

What does C_SPI_MEMORY = 0 mean?  

 

 

Thank you very much in advance!

 

Yours Sincerely,

 

 

 

 

 

 

0 Kudos
0 Replies