axi_crossbar IP使用说明

Posted light-weight-ip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axi_crossbar IP使用说明相关的知识,希望对你有一定的参考价值。

总体简介


图例是2X3的配置

主要特性

▲支持Master、Slave接口数量配置
▲支持全连接、部分连接
▲支持多threads、多issue效率匹配
▲支持输入BURST最大数量匹配
▲支持Master、Slave接口寄存,优化时序
▲支持Region、User、Secure配置

一些参数描述

DATA_WIDTH:
默认值为32,AXI数据宽度。

ADDR_WIDTH:
默认值为32,AXI地址宽度。

S_ID_WIDTH:
默认值为8,Slave port ID 宽度
M_ID_WIDTH:
默认值为8+clog2(8),Master port ID宽度,多出的clog2(8)为响应路由

Sxx_THREADS:
默认值为2, 允许同时出现的不同ID数量, 若是Master只能发出一种ID,这里设置为1,可以节省资源。

Sxx_ACCEPT:
默认值为16, 允许缓存的数据长度,若是Master不能支持burst传输,这里的长度设置为1,可以节省资源。

Mxx_ISSUE:
默认值为4,Masterxx 最大连续issue的请求个数,有可能连续issue多个AW/AR command。

Mxx_BASE_ADDR:
默认值为0,Masterxx入口起始地址。

Mxx_ADDR_WIDTH:
默认值为M_REGIONS32’d24, Masterxx地址宽度。它与Mxx_BASE_ADDR共同决定了Masterxx的地址空间。

Mxx_CONNECT_READ:
默认值为Master_NUM1’b1,其可以配置Master可以可以读到某Slave。

Mxx_CONNECT_WRITE:
默认值为Master_NUM1’b1,其可以配置Master可以可以写到某Slave。

Sxx_*_REG_TYPE:
默认值0,1:允许S接口使用简单BUF,2:运行接口使用skid buffer,可以提升效率和时序。

Mxx_*_REG_TYPE:
默认值0,1:允许M接口使用简单BUF,2:运行接口使用skid buffer,可以提升效率和时序。

感悟

axi crossbar需要结合自身SOC系统的heavy程度,选择合适的配置,否则会对芯片的面积、时序带来负面影响。相较于总线,上层架构的设计对系统性能的影响是最大的,因此需要首要考虑。。

使用新浪IP库获取IP详细地址

使用新浪IP库获取IP详细地址

<?php
class Tool{
    /**
     * 获取IP的归属地( 新浪IP库 )
     *
     * @param $ip String        IP地址:112.65.102.16
     * @return Array
     */
    static public function getIpCity($ip)
    {
        $ip = preg_replace("/\s/","",preg_replace("/\r\n/","",$ip));
        $link = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$ip."&t=".time();
        $ipJson = self::httpCurl($link);
        preg_match("/\"country\":\"(.*)\"/Uis",$ipJson, $match1);
        preg_match("/\"province\":\"(.*)\"/Uis",$ipJson, $match2);
        preg_match("/\"city\":\"(.*)\"/Uis",$ipJson, $match3);
        return array(
            ‘country‘=>self::ucode2zh($match1[1]),  // 国家
            ‘province‘=>self::ucode2zh($match2[1]), //
            ‘city‘=>self::ucode2zh($match3[1])      // 城市
        );   
    }

    /**
     * Curl方式获取信息
     */
    static public function httpCurl($url) 
    { 
        $curl_handle = curl_init(); 
        curl_setopt($curl_handle, CURLOPT_URL, $url); 
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2); 
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1); 
        curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); 
        $file_content = curl_exec($curl_handle); 
        curl_close($curl_handle); 
        return $file_content; 
    }

    /**
     * 将unicode编码转化为中文,转化失败返回原字符串
     * 
     * @param $code String      unicode编码
     * @return String
     */
    static public function ucode2zh($code)
    {
        $temp = explode(‘\u‘,$code);
        $rslt = array();
        array_shift($temp);
        foreach($temp as $k => $v)
        { 
            $v = hexdec($v);
            $rslt[] = ‘&#‘ . $v . ‘;‘; 
        }
        
        $r = implode(‘‘,$rslt);
        return empty($r) ? $code : $r;  
    }
}

获取IP地址类使用实例

<?php
$ipStr = Tool::getIpCity(‘112.65.102.16‘);
print_r($ipStr);

# 返回结果
Array ( [country] => 中国 [province] => 上海 [city] => 上海 )

 

以上是关于axi_crossbar IP使用说明的主要内容,如果未能解决你的问题,请参考以下文章

使用新浪IP库获取IP详细地址

动态IP能否使用HSS

手机如何修改ip地址,使用全国动态ip呢

如何使用Python实现爬虫代理IP池

如何用ip访问网站

兔子IP教你解决日常使用过程中ip被封锁IP被限制的几种方法