Axi Manager模拟
笔记
MATLAB®Axi Master已重命名为AXI经理。在软件和文档中,术语“经理”和“下属”替换“主”和“从”。
在将算法部署在FPGA上之前,您可以模拟该算法并执行读写操作以模拟板上的内存或内存映射寄存器。使用提供的Systemverilog读书
和写入
在板上读写内存映射位置的任务。模拟仅适用于Vivado®模拟器,您只能执行行为模拟。
要将Axi Manager IP集成到您的设计中,请参见将AXI Manager IP集成在FPGA设计中。将AXI Manager IP集成到设计中后,创建一个SystemVerilog包装器,其中包括您正在测试的设计(DUT),内存接口生成器(MIG),AXI Manager IP,Clock和Reset Logic。然后,您可以在SystemVerilog测试工作台中实例化包装器并模拟。
HDL包装器创建
为FPGA设计创建包装器。包装器包括所有用户逻辑和FPGA逻辑。包装器的接口包括时钟和重置端口以及可选的DDR3接口或其他板载外围设备。创建和配置Vivado的设计后,导航到Vivado的“源窗口”。在里面来源标签,下设计来源,右键单击设计名称,然后选择创建HDL包装器
。此操作创建了一个名为的HDL文件
在里面Design_name
_wrapper.v
文件夹,哪里Design_name
/hdlDesign_name
是Vivado项目的名称。
Systemverilog测试工作台
HDL Verifier™提供SystemVerilog任务,以与SystemVerilog模拟中的设计交互。创建SystemVerilog包装器后,在SystemVerilog测试工作台中实例化包装器。测试工作台还包括车载IP模型,例如内存模型。向您的DUT驾驶时钟和重置信号。要包括特定于HDL验证器的定义,请导入HDLverifier
通过在测试工作台文件中输入此代码来包装到测试工作台。
导入hdlverifier ::*;
要将数据写入内存位置或从内存位置读取数据,请使用写入
和读书
SystemVerilog任务分别如接下来的两个部分所述。有关使用Axi Manager仿真的示例,请参见使用基于JTAG的AXI Manager访问FPGA内存。
writememory(addr,wdata,burt_type)
SystemVerilog任务
将数据写入仿真中的AXI4内存映射下属。
addr
- 开始操作的开始地址根据AXI Manager IP地址宽度,该地址将零扩展到32或64位。地址必须参考由FPGA板上的Axi Manager IP控制的AXI从属内存位置。有关更多信息,请参阅内存映射准则。
WDATA
- 要写的数据单词默认情况下,测试台将数据写入一个连续的地址块,将每个操作的地址增加。要关闭地址增量模式并将每个数据值写入同一位置,请设置
burst_type
参数为hdlv_axi_burst_type_fixed
。burst_type
- Axi4突发类型指定
hdlv_axi_burst_type_incr
对于增量模式,或hdlv_axi_burst_type_fixed
对于固定模式。在
hdlv_axi_burst_type_incr
模式,Axi Manager从指定地址开始读取来自连续内存位置的数据向量。在hdlv_axi_burst_type_fixed
模式,AXI Manager从同一地址读取所有数据。
redmemory(addr,长度,burt_type)
SystemVerilog任务
在模拟中从AXI4内存映射的下属中读取数据。
addr
- 启动读取操作的地址根据AXI Manager IP地址宽度,该地址将零扩展到32或64位。默认情况下,地址宽度设置为32位。要将宽度设置为64位,请指定
参数axi_addr_width = 64
在HDL测试工作台中。地址必须参考由FPGA板上的Axi Manager IP控制的AXI从属内存位置。有关更多信息,请参阅内存映射准则。长度
- 阅读的位置数量指定要读取的内存位置的数量。默认情况下,测试工作台从连续的地址块读取,从而增加每个操作的地址。要关闭地址增量模式并从同一位置重复阅读,请设置
burst_type
参数为hdlv_axi_burst_type_fixed
。burst_type
- Axi4突发类型指定
hdlv_axi_burst_type_incr
对于增量模式,或hdlv_axi_burst_type_fixed
对于固定模式。在
hdlv_axi_burst_type_incr
模式,Axi Manager从指定地址开始读取来自连续内存位置的数据向量。在hdlv_axi_burst_type_fixed
模式,AXI Manager从同一地址读取所有数据。
内存映射准则
如果Axi Manager IP数据宽度为32位,则存储器为4个字节,地址为4字节增量(
0x0
,,,,0x4
,,,,0x8
)。在这种情况下,0x1
是一个无效的地址,您会遇到错误。如果AXI Manager IP数据宽度为64位,则存储器为8个字节,地址具有8字节增量(
0x0
,,,,0x8
,,,,0x10
)。在这种情况下,0x1
或者0x4
是无效的地址,会发出错误。如果Axi Manager IP数据宽度为32位,则突发类型参数设置为
增量
,地址由4个字节递增。如果Axi Manager IP数据宽度为64位,则突发类型参数设置为
增量
,地址由8个字节递增。请勿使用64位AXI经理访问32位寄存器。