作者:Davis Zhang
在vivado 2021.2的VCK190 boardfile里DDR4-DIMM的DQ width被限制为64bit,不能使能ECC功能。如果需要在VCK190板子上使用DDR4-DIMM的ECC,可以手动修改board file。
具体方法是:
1. 下载vck190 boardfile到本地,找到board.xml,把DQ width增大为72bit,dqs_c/dqs_t/dm的位宽都增大为9bit。修改部分如下。
<port_map logical_port="DQ" physical_port="c0_ddr4_dq" dir="inout" left="71" right="0"> <pin_maps> <pin_map port_index="63" component_pin="c0_ddr4_dq63"/> <pin_map port_index="64" component_pin="c0_ddr4_dq64"/> <pin_map port_index="65" component_pin="c0_ddr4_dq65"/> <pin_map port_index="66" component_pin="c0_ddr4_dq66"/> <pin_map port_index="67" component_pin="c0_ddr4_dq67"/> <pin_map port_index="68" component_pin="c0_ddr4_dq68"/> <pin_map port_index="69" component_pin="c0_ddr4_dq69"/> <pin_map port_index="70" component_pin="c0_ddr4_dq70"/> <pin_map port_index="71" component_pin="c0_ddr4_dq71"/> </pin_maps> </port_map> <port_map logical_port="DQS_C" physical_port="c0_ddr4_dqs_c" dir="inout" left="8" right="0"> <pin_maps> <pin_map port_index="0" component_pin="c0_ddr4_dqs_c0"/> <pin_map port_index="1" component_pin="c0_ddr4_dqs_c1"/> <pin_map port_index="2" component_pin="c0_ddr4_dqs_c2"/> <pin_map port_index="3" component_pin="c0_ddr4_dqs_c3"/> <pin_map port_index="4" component_pin="c0_ddr4_dqs_c4"/> <pin_map port_index="5" component_pin="c0_ddr4_dqs_c5"/> <pin_map port_index="6" component_pin="c0_ddr4_dqs_c6"/> <pin_map port_index="7" component_pin="c0_ddr4_dqs_c7"/> <pin_map port_index="8" component_pin="c0_ddr4_dqs_c8"/> </pin_maps> </port_map> <port_map logical_port="DQS_T" physical_port="c0_ddr4_dqs_t" dir="out" left="8" right="0"> <pin_maps> <pin_map port_index="0" component_pin="c0_ddr4_dqs_t0"/> <pin_map port_index="1" component_pin="c0_ddr4_dqs_t1"/> <pin_map port_index="2" component_pin="c0_ddr4_dqs_t2"/> <pin_map port_index="3" component_pin="c0_ddr4_dqs_t3"/> <pin_map port_index="4" component_pin="c0_ddr4_dqs_t4"/> <pin_map port_index="5" component_pin="c0_ddr4_dqs_t5"/> <pin_map port_index="6" component_pin="c0_ddr4_dqs_t6"/> <pin_map port_index="7" component_pin="c0_ddr4_dqs_t7"/> <pin_map port_index="8" component_pin="c0_ddr4_dqs_t8"/> </pin_maps> </port_map> <port_map logical_port="DM_N" physical_port="c0_ddr4_dm_dbi_n" dir="inout" left="8" right="0"> <pin_maps> <pin_map port_index="0" component_pin="c0_ddr4_dm_dbi_n0"/> <pin_map port_index="1" component_pin="c0_ddr4_dm_dbi_n1"/> <pin_map port_index="2" component_pin="c0_ddr4_dm_dbi_n2"/> <pin_map port_index="3" component_pin="c0_ddr4_dm_dbi_n3"/> <pin_map port_index="4" component_pin="c0_ddr4_dm_dbi_n4"/> <pin_map port_index="5" component_pin="c0_ddr4_dm_dbi_n5"/> <pin_map port_index="6" component_pin="c0_ddr4_dm_dbi_n6"/> <pin_map port_index="7" component_pin="c0_ddr4_dm_dbi_n7"/> <pin_map port_index="8" component_pin="c0_ddr4_dm_dbi_n8"/> </pin_maps> </port_map>
2. 在preset.xml里把DDR4-DIMM datawidth改为72.
<ip_preset preset_proc_name="ddr4_c0_preset"> <ip vendor="xilinx.com" library="ip" name="axi_noc" version="*"> <user_parameters> <user_parameter name="CONFIG.CONTROLLERTYPE" value="DDR4_SDRAM"/> <user_parameter name="CONFIG.MC_NO_CHANNELS" value="Single"/> <user_parameter name="CONFIG.MC_SYSTEM_CLOCK" value="Differential"/> <user_parameter name="CONFIG.MC_MEMORY_SPEEDGRADE" value="DDR4-3200AA(22-22-22)"/> <user_parameter name="CONFIG.MC_COMPONENT_WIDTH" value="x8"/> <user_parameter name="CONFIG.MC_DATAWIDTH" value="72"/> <user_parameter name="CONFIG.MC_INPUTCLK0_PERIOD" value="5000"/> <user_parameter name="CONFIG.MC_INTERLEAVE_SIZE" value="128"/> <user_parameter name="CONFIG.MC_STACKHEIGHT" value="1"/> <user_parameter name="CONFIG.MC_MEMORY_DEVICETYPE" value="UDIMMs"/> <user_parameter name="CONFIG.MC_ROWADDRESSWIDTH" value="16"/> <user_parameter name="CONFIG.MC_RANK" value="1"/> </user_parameters> </ip> </ip_preset>
3. 在vivado tcl console里输入set_param board.repopaths <path to board files>,就可以在新创建的工程里使用修改后的board file了。