VCK190 - 如何使用DDR4-DIMM的ECC功能

作者: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了。

最新文章