当前位置:首页 > AXI学习
图3-4 选择AXI4-Lite
图3-5 设置2个寄存器,因为需要控制DIP和LED
图3-6 选择需要的信号
图3-7 在IP列表中出现设计的IP:AXI_LITE_CUSIP
3.2AXI-Lite IP功能设计
图3-8 自定义IP路径
自定义IP设计完后,需要为其编写功能代码,在如图3-8路径中,有一个vhdl文件夹,自定义IP设计生成的HDL代码默认是由VHDL编写的。 其中有两个文件:axi_lite_cusip.vhd和user_logic.vhd,如图3-9所示为AXI-Lite IP接口信号图,其中文件axi_lite_cusip.vhd实现AXI-Lite IPIF模块的功能,文件user_logic.vhd实现User IP Design模块的功能,因此自定义IP的功能代码主要在user_logic.vhd文件中编写。此处的设计Xilinx就比Altera更人性化了, 在Altera的NiosII自定义外设设计时,类似axi_lite_cusip.vhd和user_logic.vhd的接口文件都需要工程师自己编 写,而Xilinx相当于为工程师提供了一个模板,只需要添加相应的功能代码就可完成设计,这样大大减少了工作量,工作效率得到提高。
图3-9 AXI-Lite IP接口信号图
下面来看一下user_logic.vhd里面有什么奥秘,如图3-10所示为模块参数,其中参数C_NUM_REG表示寄存器的数量,在本设计中 设置了两个,一个用于读取DIP拨码开关状态值,另一个用于控制LED灯;如图3-11所示为模块接口信号,其中BUS2IP_**表示从AXI- Lite总线输入到IP的信号,包含时钟信号BUS2IP_CLK、复位信号BUS2IP_Resetn、数据信号Bus2IP_Data、字节使能信号 Bus2IP_BE、读使能信号Bus2IP_RdCE、写使能信号Bus2IP_WrCE;而IP2BUS_**表示从IP输出给AXI-Lite总线 的信号,包含数据信号IP2Bus_Data、读确认信号IP2Bus_RdAck、写确认信号IP2Bus_WrAck、错误确认信号 IP2Bus_Error。
图3-10模块参数 图3-11 模块接口信号 功能模块需要加入的功能为两部分,对应两个寄存器,如表1所示为两个寄存器的映射。 表1 两寄存器映射 寄存器 reg0 reg1 使能信号 BUS2IP_RdCE=“10” BUS2IP_WrCE=“01” 对应地址映射 C_BASEADDR C_BASEADDR+0x4 功能 只读 只写 reg0是读取DIP拨码开关状态值功能,因此是一个读寄存器操作,首先需要加入DIP拨码开关的输入端口,如图3-12所示,相关功能代码如图3-13所示。 图3-12 加入端口
共分享92篇相关文档