zoukankan      html  css  js  c++  java
  • AXI4的IP的输入配置

    AXI4的IP的输入配置

    1、实验原理

    前面一篇验证中验证了AXI中的data_reg_out是输出缓存器。这里再引入一个slv_reg2作为slv—_reg1的输入输出配置寄存器。这里先实现一个简单的功能:当slv_reg2为16'hffff时,slv_reg1作为输入口,否则slv_reg1作为输出口(输入输出相对主机而言,方便区分)。

    2、实验操作

    (1)硬件设计

    对reg_data_out的配置寄存器:

        always @(*)
        begin
              // Address decoding for reading registers
              case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] )
                2'h0   : reg_data_out <= slv_reg0;
                2'h1   : reg_data_out <= (slv_reg2=='hffff)? BTN : slv_reg1; //slv_reg1;
                2'h2   : reg_data_out <= slv_reg2;
                2'h3   : reg_data_out <= slv_reg3;
                default : reg_data_out <= 0;
              endcase
        end

    在修改模块后需要再次打包,在打包后回到bd设计界面时,会在上面提示更新IP,点击后会在下面弹出IP列表,选择有感叹号的IP,再点击下面的update就可以了。然后生成bit流。这里需要等待一段时间。

    (2)软件设计

    #include "xil_io.h"
    #include "sleep.h"
    #include "stdio.h"
    #include "xparameters.h"
    #define IP_BASE XPAR_MYIP_V1_0_0_BASEADDR
    #define REG0_OFFSET 0
    #define REG1_OFFSET 4
    #define REG2_OFFSET 8
    int main(){
        int BTN;
        Xil_Out32(IP_BASE+REG2_OFFSET,0xffff);
     //Xil_Out32(IP_BASE+REG2_OFFSET,0x0000);
        while(1){
            BTN=Xil_In32(IP_BASE+REG1_OFFSET);
    
            Xil_Out32(IP_BASE+REG0_OFFSET,BTN);
    
        }
    }

    就是多了一个对reg2的输出,通过切换reg2的值确定逻辑判断是否存在。

    3、实验结果

    板级验证符合预期。

  • 相关阅读:
    SPOJ-BRCKTS (括号序列,线段树)
    bzoj 2223 [Coci 2009]PATULJCI
    bzoj 1049 [HAOI2006]数字序列
    bzoj2091 [Poi2010]The Minima Game
    bzoj 1016 [JSOI2008]最小生成树计数
    bzoj5105 晨跑 数论lcm
    bzoj 1211 [HNOI2004]树的计数
    bzoj 1430 小猴打架 prufer 性质
    Swing界面组件的通用属性
    数字调节控件JSpinner的使用
  • 原文地址:https://www.cnblogs.com/electricdream/p/13263021.html
Copyright © 2011-2022 走看看