记录一个乌龙。。
翻手册的时候没有注意到pre_load_mem的数量参数是byte,想当然也以为要把数据量除以4转化成lines,结果就是仿真的时候读取到后面地址的数据全部返回为XXXX,找了半天AXI通讯的问题结果是初始化函数用错了,谨记。在tb中用zynq初始化ddr数据有以下函数。
·
在tb中用zynq初始化ddr数据有以下函数
pre_load_mem(data_type, start_addr, no_of_bytes)
// [1:0] data_type: Random, zeros or ones. 00-Random, 01-Zeros, 10-Ones, 11-Random
// [31:0] start_addr: Start Address from where DDR should be initialized with data from the file.
// no_of_bytes: Number of databytes to be loaded
pre_load_mem_from_file(file_name, start_addr, Num lines)
// [2047:0] file_name File name(max. 256 characters)
// [31:0] start_addr Start Address from where DDR/OCM should be initialized with data from the file.
// Num lines: Number of lines (each row should match 32 bits)
翻手册的时候没有注意到pre_load_mem的数量参数是byte,想当然也以为要把数据量除以4转化成lines,结果就是仿真的时候读取到后面地址的数据全部返回为XXXX,找了半天AXI通讯的问题结果是初始化函数用错了,谨记。
这个zynq仿真真的很诡异,console里面提示读取数量的bytes实际上应该是lines

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)