主要内容

AXI Manager仿真

请注意

MATLAB®AXI master已被重命名为AXI manager。在软件和文档中,术语“经理”和“下属”分别取代了“主人”和“奴隶”。

在将算法部署到FPGA上之前,您可以模拟算法并对板上的模拟内存或内存映射寄存器执行读和写操作。使用提供的SystemVerilogreadmemory而且writememory对板上的内存映射位置进行读写的任务。仿真只适用于Vivado®模拟器,您只能在其上执行行为模拟。

要在设计中集成AXI管理器IP,请参见在FPGA设计中集成AXI Manager IP.在您的设计中集成了AXI管理器IP之后,创建一个SystemVerilog包装器,其中包括您的在测设计(DUT)、内存接口生成器(MIG)、AXI管理器IP、时钟和重置逻辑。然后可以在SystemVerilog测试台中实例化包装器并进行模拟。

HDL包装器创建

为FPGA设计创建包装器。包装器包括所有用户逻辑和FPGA逻辑。到包装器的接口包括时钟和复位端口,以及到内存或其他板上外设的可选DDR3接口。在Vivado中创建和配置设计之后,导航到Vivado中的Sources窗口。在来源选项卡,在设计来源,右键单击设计名称并选择创建HDL包装.此操作创建一个名为design_name_wrapper.vdesign_name/高密度脂蛋白文件夹,design_name是Vivado项目的名称。

SystemVerilog试验台

HDL Verifier™提供SystemVerilog任务,在SystemVerilog模拟中与设计交互。创建SystemVerilog包装器之后,在SystemVerilog测试台中实例化包装器。测试台架还包括机载IP模型,例如内存模型。驱动时钟和复位信号到你的DUT。要包括特定于HDL验证器的定义,请导入hdlverifier通过在测试台架文件中输入此代码来打包到测试台架。

进口hdlverifier:: *;

要将数据写入内存位置或从内存位置读取数据,请使用writememory而且readmemorySystemVerilog任务,详见接下来的两个部分。有关使用AXI管理器模拟的示例,请参见使用基于jtag的AXI Manager访问FPGA内存

writememory (addr, wdata burst_type)SystemVerilog任务

在模拟中将数据写入AXI4内存映射的下属。

  • addr—写操作的起始地址

    该地址为零,扩展到32位或64位,具体取决于AXI管理器IP地址宽度。该地址必须指向由FPGA板上的AXI管理器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管理器从连续的内存位置读取一个数据向量,从指定的地址开始。在HDLV_AXI_BURST_TYPE_FIXED模式下,AXI管理器从同一地址读取所有数据。

readmemory (addr、长度、burst_type)SystemVerilog任务

在模拟中从AXI4内存映射的下属读取数据。

  • addr—读操作的起始地址

    该地址为零,扩展到32位或64位,具体取决于AXI管理器IP地址宽度。缺省情况下,地址宽度为32位。要将宽度设置为64位,请指定参数AXI_ADDR_WIDTH = 64在HDL测试台架上。该地址必须指向由FPGA板上的AXI管理器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管理器从连续的内存位置读取一个数据向量,从指定的地址开始。在HDLV_AXI_BURST_TYPE_FIXED模式下,AXI管理器从同一地址读取所有数据。

内存映射指南

  • 如果AXI管理器IP数据宽度是32位,内存是4字节对齐的,地址有4字节增量(0 x00 x40的混合体).在这种情况下,0 x1是一个无效的地址,您将得到一个错误。

  • 如果AXI管理器IP数据宽度是64位,内存是8字节对齐的,地址有8字节增量(0 x00的混合体0 x10).在这种情况下,0 x10 x4是无效的地址,将发出错误。

  • 如果AXI管理器IP数据宽度为32位,则破裂类型参数设置为增量时,地址增加4个字节。

  • 如果AXI管理器IP数据宽度为64位,则破裂类型参数设置为增量时,地址增加8字节。

  • 不要使用64位AXI管理器访问32位寄存器。

相关的话题