关于生成AMBA ip core的GRLIB使用笔记2(哥,断奶了)

合集下载

IPS-1000系列VoIP综合接入系统用户手册V1.05

IPS-1000系列VoIP综合接入系统用户手册V1.05

IPS-1000系列VoIP综合接入系统用户手册版本:V1.05目录1.前言 (1)2.概述 (2)3.系统指标 (3)3.1功能、性能 (3)3.2工作条件 (3)3.3配置 (4)4.结构 (5)4.1VIP板面板图 (5)4.2面板 (5)4.3出线 (6)4.4系列结构标准 (6)5.安装和操作 (7)5.1IPS设置简介 (7)5.2产品安装和呼叫 (7)5.3呼叫 (7)5.4IPS系列编程 (7)6.VIP设置命令(Telnet 远程配置) (8)6.1操作系统登录命令Telnet (8)6.2帮助命令Help (8)6.3显示配置命令Show (9)6.4设置配置命令Set (10)6.5存盘命令Save (10)6.6恢复前次配置命令Load (10)6.7恢复初始配置命令LoadDefault (10)6.8系统重起动命令Reboot (10)6.9退出命令配置Quit (11)7.配置数据 (12)7.1NetWork部分 (12)7.1.1广域网IP (12)7.1.2广域网IP子网掩码 (12)7.1.3广域网MAC值 (12)7.1.4广域网口DHCP模式 (12)7.1.5局域网IP (13)7.1.6局域网IP子网掩码 (13)7.1.7局域网MAC值 (13)7.1.8DNS状态 (13)7.1.9DNS IP (13)7.1.10默认网关IP (14)7.1.11NAT功能 (14)7.1.12NAT端口映射表 (14)7.1.13PPPoE (14)7.1.14PPPoE 用户名 ......................................... 147.1.15PPPoE 用户密码. (15)7.2GateWay部分 (15)7.2.1网关别名 (15)7.2.2网关IP (15)7.2.3网关区号 (15)7.2.4呼入前缀匹配值 (15)7.2.5呼入前缀删除状态 (16)7.2.6设备最大允许话音通道数 (16)7.2.7启用快速呼叫功能 (16)7.2.8Q.931协议端口值 (16)7.2.9RTP起始端口值 (16)7.2.10TCP起始端口值 (17)7.2.11MCC通信定时器 (17)7.2.12网守定时器 (17)7.2.13TCP定时器 (17)7.2.14ALERTING定时器 (17)7.2.15CONNECING定时器 (17)7.2.16RAS重发次数 (18)7.2.17网守状态 (18)7.2.18网守IP (18)7.2.19TUNNEL状态 (18)7.2.20网关路由表 (18)7.3CDR IP部分 (19)7.3.1中央维护台的IP (19)7.3.2普通维护台IP (19)7.3.3设置SNMP 管理站IP (19)7.4GateKeeper部分 (19)7.4.1网守最大支持呼叫数基本属性 (19)7.4.2内部网守状态 (20)7.4.3IRR消息频率 (20)7.4.4RRQ消息频率 (20)7.4.5RRQ消息超时次数 (20)7.4.6IRR消息超时次数 (20)7.4.7GKID (20)7.4.8网守信息表 (21)7.4.9DSP状态 (21)7.4.10语音编码类型 (21)7.4.11传真模式 (21)7.4.12语音包允许延迟时长 (22)7.4.13回声抵消状态 (22)7.4.14静音检测状态 (22)7.5SYSTEM部分 (22)7.5.1系统软件版本 (22)7.5.2T35国家码 (22)7.5.3T35扩展码 (22)7.5.4终端类别 (23)7.5.5产品ID号 (23)7.5.6设备厂家号 (23)7.5.7H.323协议栈版本 (23)7.5.8H.225协议栈版本 (23)7.5.9H.245协议栈版本 (23)7.6Dialedlen部分 (23)7.7IP ECHO部分 (24)7.7.1IPECHO客户端 (24)7.7.2客户机定时发送消息时间 (24)7.7.3服务器所在地址 (24)7.7.4服务器所在端口 (25)7.7.5是否作为服务器 (25)8.关于配置文件的存取 (26)8.1下载VIP配置文件至PC (26)8.2上传PC的配置文件至VIP中: (26)8.3用TFTP升级VIP系统软件 (26)9.维护注意事项 (27)9.1VIP板RUN灯长亮 (27)9.2IPS电话无法呼出 (27)图图5-1面板指示图 (5)表表5-1面板LED定义 (5)1.前言●本手册详细地介绍了IPS-1000系列V oIP综合接入系统(IPS-1016/1160/1240)的结构、工程安装说明、软件设置等,您也可以根据目录及页眉的标题进行选择性地阅读此手册。

grlib说明文档中文版

grlib说明文档中文版

5GRLIB design concept5.1introductionGRLIB是一个可重用IP Core的集合,并分成了多个VHDL库。

每一个库提供了特定厂商的元件或者一系列共享的功能或接口。

在GRLIB设计中使用的数据结构和元件声明都是通过库指定的VHDL包来输出的。

GRLIB是基于AMBA AHB和APB片上总线的,并把该总线用作标准的互联接口。

AHB/APB总线的实现是与AMBA-2.0相兼容的,并附加了额外的“sideband”(边带)信号。

这些边带信号的有三个用途:automatic address decoding,interrupt steering和device identification(a.k.a plug&play support)。

根据AHB/APB 信号的功能,GRLIB的库把这些信号以VHDL records的形式组合在一起。

GRLIB AMBA包的源文件在lib/grlib/amba/下。

所有的GRLIB core都使用同样的data structures来声明AMBA接口,这样相互之间的连接就很容易了。

GRLIB库还包含了一个AHB bus controller和一个AHB/APB bridge,借助这两个模块,可以很快组装成一个全功能的AHB/APB的系统。

下面的部分将描述AMBA总线是怎么实现的以及怎样用GRLIB来建一个SOC设计。

5.2AMAB AHB on-chip bus5.2.1General(概述)AMBA Advanced High-performance Bus(AHB)是一个multi-master的总线,可以以high data rate and/or variable latency的形式来互连各单元。

图5就是一个概念图。

图中连在总线上的单元分为masters(主)和slaves(客),并都受一个全局的总线仲裁器(global bus arbiter)控制。

ARM MP-core启动流程

ARM MP-core启动流程

ARM MP-core 启动流程
1. iROM 启动MP Core 时,通常的做法:(1)让CPU0 执行主要开机流程,
其它的处理器进入WFI.
(在启动时,每个处理器可以透过CPU ID 得知自己是否为CPU0,如果不是,就
进入WFI 的程序代码中.)
即:让AP 进入Sleep
(2) 初始化外部内存与执行系统的初始化
(3) 设定Stack
在DRAM 初始化前,Stack 是建立在SRAM 中的。

(4) 把BootRom 程序代码复制到外部内存中
(5) 重新Mapping 内存位置
(把0 乘以00000000 地址对应到外部内存或I-TCM 如果0 乘以00000000
地址要跑中断表的话(or 中断表对应到0xffff0000))
因为,Cold Reset 时为了顺利开机,把iROM 映射到了0x0000 0000 处.
(6) 把第二阶段的BootLoader 加载到外部内存中or OnChip SRAM.\
(7) 执行第二阶段的BootLoader
2. 如何识别当前是哪个CPU 在执行
执行时期,软件可以透过CPU ID Register 知道目前是MPCore 中哪个处理器
执行该程序代码,
CPU Id 储存在CP15 c0 中,长度为32bits,只能在特权等级(也就是SVC Mode 下)被读取,读取的范例如下程序代码所示:
MRC p15,0,,c0,c0,5; returns CPU ID register 31 12 11 8 7 4 3 0 SBZ Cluster ID SBZ CPU ID 说明如下, (1) Cluster ID:。

ACLLib基础文档

ACLLib基础文档
4. 声音...........................................................................................................................................6
4.1 加载...............................................................................................................................6
4.2 播放...............................................................................................................................6
4.3 停止...............................................................................................................................7
5. 事件...........................................................................................................................................7
1. 主函数.......................................................................................................................................1

python中pathlib模块的基本用法与总结

python中pathlib模块的基本用法与总结

python中pathlib模块的基本⽤法与总结前⾔相⽐常⽤的 os.path⽽⾔,pathlib 对于⽬录路径的操作更简介也更贴近 Pythonic。

但是它不单纯是为了简化操作,还有更⼤的⽤途。

pathlib 是Python内置库,Python ⽂档给它的定义是:The pathlib module – object-oriented filesystem paths(⾯向对象的⽂件系统路径)。

pathlib 提供表⽰⽂件系统路径的类,其语义适⽤于不同的操作系统。

1. pathlib模块下Path类的基本使⽤from pathlib import Pathpath = r'D:\python\pycharm2020\program\pathlib模块的基本使⽤.py'p = Path(path)print() # 获取⽂件名print(p.stem) # 获取⽂件名除后缀的部分print(p.suffix) # 获取⽂件后缀print(p.parent) # 相当于dirnameprint(p.parent.parent.parent)print(p.parents) # 返回⼀个iterable 包含所有⽗⽬录for i in p.parents:print(i)print(p.parts) # 将路径通过分隔符分割成⼀个元组运⾏结果如下:pathlib模块的基本使⽤.pypathlib模块的基本使⽤.pyD:\python\pycharm2020\programD:\python<WindowsPath.parents>D:\python\pycharm2020\programD:\python\pycharm2020D:\pythonD:\('D:\\', 'python', 'pycharm2020', 'program', 'pathlib模块的基本使⽤.py')Path.cwd():Return a new path object representing the current directoryPath.home():Return a new path object representing the user's home directoryPath.expanduser():Return a new path with expanded ~ and ~user constructsfrom pathlib import Pathpath_1 = Path.cwd() # 获取当前⽂件路径path_2 = Path.home()p1 = Path('~/pathlib模块的基本使⽤.py')print(path_1)print(path_2)print(p1.expanduser())运⾏结果如下:D:\python\pycharm2020\programC:\Users\AdministratorC:\Users\Administrator\pathlib模块的基本使⽤.pyPath.stat():Return a os.stat_result object containing information about this pathfrom pathlib import Pathimport datetimep = Path('pathlib模块的基本使⽤.py')print(p.stat()) # 获取⽂件详细信息print(p.stat().st_size) # ⽂件的字节⼤⼩print(p.stat().st_ctime) # ⽂件创建时间print(p.stat().st_mtime) # 上次修改⽂件的时间creat_time = datetime.datetime.fromtimestamp(p.stat().st_ctime)st_mtime = datetime.datetime.fromtimestamp(p.stat().st_mtime)print(f'该⽂件创建时间:{creat_time}')print(f'上次修改该⽂件的时间:{st_mtime}')运⾏结果如下:os.stat_result(st_mode=33206, st_ino=3659174698076635, st_dev=3730828260, st_nlink=1, st_uid=0, st_gid=0, st_size=543, st_atime=1597366826, st_mtime=1597366826, st_ctime=1597320585)5431597320585.76574751597366826.9711637该⽂件创建时间:2020-08-13 20:09:45.765748上次修改该⽂件的时间:2020-08-14 09:00:26.971164从不同.stat().st_属性返回的时间戳表⽰⾃1970年1⽉1⽇以来的秒数,可以⽤datetime.fromtimestamp将时间戳转换为有⽤的时间格式。

ffmpegframegrabber 原理

ffmpegframegrabber 原理

FFmpegFrameGrabber是一个基于FFmpeg多媒体处理库的Java接口,用于从视频文件中抓取帧并处理视频数据。

它可以让开发者在Java应用程序中进行音视频处理、分析和转码等操作。

FFmpegFrameGrabber的工作原理如下:1. 配置FFmpeg库:首先,需要在Java项目中配置FFmpeg库的相关依赖。

这可以通过将FFmpeg库的路径添加到项目的类路径中来实现。

2. 创建FFmpegFrameGrabber实例:在Java代码中,使用FFmpegFrameGrabber类创建一个Grabber实例,该实例表示要处理的视频文件。

3. 打开视频文件:使用Grabber的open()方法打开视频文件。

这将初始化Grabber内部的FFmpeg上下文,并获取视频文件的相关信息,如帧率、分辨率等。

4. 抓取视频帧:使用Grabber的grabFrame()方法从视频文件中连续抓取每一帧的视频数据。

可以控制抓取的帧率,以确定抓取的频率。

5. 处理视频帧:抓取到的视频帧可以进行各种处理操作,如帧级别的图像处理、分析或转码。

可以通过获取帧数据的方式来访问每一帧的像素信息。

6. 关闭Grabber:处理完所有需要的视频帧后,使用Grabber的close()方法关闭Grabber实例,释放资源。

FFmpegFrameGrabber通过封装FFmpeg的底层功能,提供了一个方便的Java接口,使得开发者可以处理视频文件并进行各种操作。

它在Java平台上为多媒体处理提供了强大而灵活的能力。

请注意,以上是对FFmpegFrameGrabber工作原理的概述,实际使用时可能会受到具体的编程环境和使用方式的影响。

如果您需要更详细的信息,建议查阅FFmpegFrameGrabber的官方文档或进一步的开发资源。

RouterOS中文手册1

RouterOS中文手册1

ISP级软件路由器之王RouerOS 宽带接入服务器用户手册――配置指南RouerOS 系列宽带接入服务器配置指南内容摘要一.概述 (3)1.RouerOS 宽带接入服务器的网络接口类型 (3)2.RouerOS 宽带接入服务器具有以下网络功能 (3)二.基本的配置管理 (5)1 1.系统的缺省帐号 (5)1 2.登录方式 (5)1 3.命令行配置的基本操作 (6)1 远程管理-权限管理 (7)1 5.日志管理 (8)1 91 7.系统时间设置 (10)8. 系统热启动 (10)三.物理接口的配置管理 (10)四.查看当前配置 (11)4.1 查看全部配置 (11)4.2 查看子项配置 (11)五.IP 参数配置 (11)1 1. 路径: (11)1 2. 功能: (11)1 3. 配置IP 地址及路由 (12)1 4. 配置Firewall (14)1 5. 配置IP Service,限定远程管理RouerOS 的地址和方式 (16)1 6. 配置Hotspot(WEB 认证) (16)1 7. 配置IP Pool (16)1 8. 启用NAT 后的策略路由配置 (16)六.配置ppp 参数 (21)1. 配置PPP 模板 (22)2. 配置Radius-client (22)七.PPPoE 配置 (23)八.HOTSPOT 配置 (25)九.VLAN 配置 (30)十.VPN 配置 (31)10.1 PPTP VPN (31)10.2 EOIP VPN (32)十一.DHCP 配置 (33)11.1 DHCP Server (33)MAC 地址(及IP 地址)与端口绑定 (34)十二.防火墙配置 (35)12.1 防“冲击波”病毒 (35)十三. 配置文件的备份与恢复 (36)1 1. 显示文件系统 (36)1 2. 备份配置文件 (36)1 3. 恢复配置文件 (37)1 4. 配置文件上载与下载 (37)1 5. 配置复位 (37)1 6. 查看系统资源状况 (37)2 7. 监视端口流量 (37)Reference: (37)一.概述RouerOS 宽带接入服务器是基于嵌入式专用网络操作系统而设计的,具有丰富的网络接口,具备多数常见的网络设备功能,处理能力超群,运行十分稳健,性价比极高。

CDP 使用指南说明书

CDP 使用指南说明书

CDP使用指南2021年05月12日目录1.文档说明 (8)2.CDP平台介绍 (8)2.1.CDP平台简介 (9)2.2.C LOUDERA M ANAGER概览 (10)2.3.C LOUDERA R UNTIME (11)2.4.工具 (11)2.5.设置对基于阿里云部署的CDP的访问权限 (12)2.5.1.配置SOCKS代理 (12)2.5.2.启动SOCKS代理 (12)2.5.3.配置Google Chrome浏览器以使用代理 (13)2.5.4.网络安全组 (14)3.CLOUDERA MANAGER (15)3.1.术语 (15)3.1.1.部署 (16)3.1.2.动态资源池 (16)3.1.3.集群 (16)3.1.4.主机 (16)3.1.5.机架 (16)3.1.6.服务 (16)3.1.7.服务实例 (17)3.1.8.角色 (17)3.1.9.角色实例 (17)3.1.10.角色组 (17)3.1.11.主机模板 (17)3.1.12.网关(Gateway) (17)3.1.13.Parcel (18)3.1.14.静态服务池 (18)3.2.C LOUDERA M ANAGER架构 (18)3.2.1.心跳 (19)3.3.状态管理 (19)3.4.C LOUDERA M ANAGER 管理控制台 (20)3.4.1.Cloudera Manager管理控制台主页 (24)3.4.2.自动登出 (28)3.5.进程管理 (30)3.6.主机管理 (30)3.7.C LOUDERA M ANAGER A GENT (31)3.7.1.cm_processes (31)3.8.资源管理 (32)3.9.用户管理 (33)3.10.安全管理 (33)3.11.使用C LOUDERA M ANAGER监控集群 (33)3.12.C LOUDERA M ANAGEMENT S ERVICE (35)3.12.1.健康测试 (35)3.12.2.指标收集和显示 (36)3.12.3.事件、警报和触发器 (36)3.13.集群配置概述 (37)3.14.服务器和客户端配置 (38)3.15.C LOUDERA M ANAGER API (39)3.16.虚拟专用集群和C LOUDERA SDX (39)3.16.1.分离计算和数据资源的优势 (40)3.16.2.架构 (40)3.16.3.权衡性能 (42)3.16.4.虚拟专用集群的兼容性注意事项 (42)3.16.5.虚拟专用集群的网络注意事项 (47)4.CDP核心组件 (53)4.1.C LOUDERA R UNTIME组件版本 (53)4.2.分布式文件系统HDFS (57)4.3.实时数据库HB ASE (58)4.4.列式存储引擎K UDU (60)4.5.统一资源管理和调度框架 (61)4.6.分布式计算框架–T EZ (66)4.7.数据仓库组件–H IVE (68)4.8.SQL分析引擎I MPALA (69)4.9.HB ASE SQL查询引擎P HOENIX (71)4.10.C LOUDERA整合全文检索引擎 (73)4.11.分布式内存计算框架–S PARK (76)4.12.数据库接入工具S QOOP (78)4.13.C LOUDERA一站式安全管理 (83)4.14.分布式消息队列K AFKA (93)4.15.A PACHE A TLAS (95)5.CLOUDERA安全概述 (98)5.1.概述 (98)5.1.1.安全要求 (99)5.1.2.安全等级 (99)5.1.3.Hadoop安全架构 (100)5.2.认证概述 (101)5.2.1.Kerberos概述 (102)5.2.2.Kerberos部署模型 (103)5.2.3.使用TLS/SSL进行安全的Keytab分发 (109)5.2.4.使用向导或手动过程来配置Kerberos身份验证 (110)5.2.5.集群组件使用的身份验证机制 (110)5.3.加密概述 (111)5.3.1.保护静态数据 (111)5.3.2.保护传输中的数据 (114)5.3.3.Hadoop项目中的数据保护 (115)5.3.4.加密机制概述 (117)5.4.授权概述 (117)5.4.1.Hadoop中的授权机制 (118)5.4.2.与身份验证机制的身份验证机制集成 (119)5.4.3.Hadoop项目中的授权 (120)5.5.治理概述 (121)5.5.1.什么是Apache Atlas? (121)5.5.2.Apache Atlas使用元数据创建血统关系 (121)5.5.3.添加到实体元数据使搜索更加容易 (121)5.5.4.Apache Atlas体系结构 (122)6.CLOUDERA最佳实践 (123)6.1.I MPALA分区 (123)6.1.1.文件计数和文件大小 (123)6.1.2.分区注意事项 (124)6.1.3.指南总结 (126)6.2.I MPALA性能 (126)6.2.1.Kudu RPC (126)6.2.2.设立专门的协调员 (127)6.2.3.按需元数据和元数据管理 (130)6.3.加速S PARK ML应用 (153)6.3.1.Spark ML的原生数学库 (153)6.3.2.启用libgfortran库 (154)6.3.3.启用英特尔MKL库 (156)6.3.4.性能比较 (157)7.故障排查 (159)7.1.安全故障排查 (159)7.1.1.错误信息和各种故障 (159)7.1.2.身份验证和Kerberos问题 (167)7.1.3.HDFS加密问题 (179)7.1.4.Key Trustee KMS加密问题 (181)7.1.5.对Cloudera Manager中的TLS/SSL问题进行故障排除 (182)7.2.YARN、MR V1和L INUX OS安全性 (185)7.2.1.MRv1和YARN:jsvc程序 (185)7.2.2.仅限MRv1:Linux TaskController (186)7.2.3.仅限YARN:Linux容器执行器 (186)7.3.对I MPALA进行故障排除 (187)7.3.1.使用Breakpad Minidumps进行崩溃报告 (188)7.4.对A PACHE Y ARN进行故障排查 (190)7.4.1.在YARN上对Docker进行故障排除 (190)7.4.2.对Linux Container Executor进行故障排除 (200)7.5.对HB ASE进行故障排除 (202)7.5.1.使用HBCK2工具修复HBase集群 (203)7.5.2.Thrift Server在收到无效数据后崩溃 (203)7.5.3.HBase正在使用比预期更多的磁盘空间 (204)7.5.4.对RegionServer分组进行故障排除 (205)7.6.对APACHE KUDU进行故障排除 (206)7.6.1.启动或重启主服务器或者Tablet服务器时出现问题 (206)7.6.2.磁盘空间使用问题 (207)7.6.3.性能问题 (208)7.6.4.可用性问题 (214)7.6.5.象征堆栈跟踪 (216)7.6.6.在多主服务器部署中从死掉的Kudu主服务器中恢复 (218)7.7.对C LOUDERA S EARCH进行故障排除 (218)7.7.1.故障排除 (218)7.7.2.动态Solr分析 (219)7.7.3.其他故障排除信息 (220)7.7.4.找出Cloudera Search部署中的问题 (220)7.7.5.Cloudera Search配置和日志文件 (223)7.8.对H UE进行故障排查 (226)7.8.1.Hue负载平衡器无法在各个Hue服务器之间平均分配用户 (226)7.8.2.无法使用SAML对Hue中的用户进行身份验证 (227)7.8.3.清理旧数据以提高性能 (227)7.8.4.无法使用提供的凭据连接到数据库 (229)7.8.5.在Hue UI上激活Hive查询编辑器 (230)7.8.6.查询执行在Hue中完成,但显示为在Cloudera Manager Impala查询页面上执行 (231)7.8.7.查找Hue超级用户列表 (232)7.8.8.通过Knox访问Hue时,用户名或密码不正确 (233)7.8.9.从Knox访问Hue UI时出现HTTP 403错误 (234)7.8.10.无法从Knox Gateway UI访问Hue (236)7.8.11.引荐检查失败,因为域与任何受信任的来源都不匹配 (239)7.8.12.无法查看Snappy压缩文件 (239)7.8.13.启用SAML时出现“未知属性名称”异常 (241)7.8.14.Impala查询因无效的查询句柄错误而失败 (242)7.8.15.PostgreSQL支持的服务失败或挂起 (243)7.8.16.验证Hue中的LDAP用户时出错 (244)7.8.17.从负载均衡器访问Hue时出现502代理错误 (245)7.8.18.提交Hive查询后,无效的方法名称:“ GetLog”错误 (246)7.8.19.在Hue中提交查询时出现“授权异常”错误 (246)7.8.20.无法更改Hue中的压缩表 (248)7.8.21.从Hue访问“搜索”应用程序(Solr)时出现连接失败错误 (249)7.8.22.从顺化下载查询结果需要时间 (250)7.8.23.启用TLS后,Hue Load Balancer无法启动 (250)7.8.24.无法终止以Kerberized集群运行的Hue作业浏览器中的Hive查询 (251)7.8.25.无法在受Knox保护的集群上的Hue中查看或创建Oozie工作流 (252)7.8.26.1040,“连接太多”异常 (253)8.参考资料 (254)1.文档说明本文档主要是基于阿里云部署的CDP的操作使用和介绍,关于CDP平台的操作和使用信息来源Cloudera官网,大家可以访问https:///cdp-private-cloud-bas e/latest/index.html来获取对应的信息。

[LEON_Grlib_Guide1_0325]grlib安装指南_1103修订

[LEON_Grlib_Guide1_0325]grlib安装指南_1103修订

20101012修订 0.120110324修订 0.2GRLIB IP Library User’s ManualGRLIB IP库 用户指导手册(一)安装指南Version 1.0.22CH Reversion 1.0Jiri Gaisler, Sandi Habinc翻译: ****************Copyright Aeroflex Gaisler, 2010目录内容目录1 简介 (3)1.1 综述 (3)1.2 组织结构 (3)1.3 片上总线 (3)2 安装过程 Installation (6)2.1 安装 Installation (6)2.2 文件组织 Directory organization (7)2.3 宿主机平台支持 Host platform support (8)2.3.1 Linux (9)2.3.2 安装了Cygwin的windows (9)2.3.3 (补充)与Windows下ISE配合的折衷安装方法 (9)1简介1.1综述GRLIB IP 库是一个可重用IP核的完整集合,它是为片上系统(SOC)开发打造的。

这些IP核集中于通用的片上总线周边,采用清晰明了的方法进行仿真与综合。

1.2组织结构GRLIB is organized around VHDL libraries, where each major IP (or IP vendor) is assigned a unique library name. Using separate libraries avoids name clashes between IP cores and hides unnecessary implementation details from the end user. Each VHDL library typically contains a number of packages, declaring the exported IP cores and their interface types.Simulation and syn- thesis scripts are created automatically by a global makefile. Adding and removing of libraries and packages can be made without modifying any global files, ensuring that modification of one ven- dor’s library will not affect other vendors. A few global libraries are provided to define shared data structures and utility functions.GRLIB provides automatic script generators for the Modelsim, Ncsim, Aldec, Sonata and GHDL simulators, and the Synopsys, Synplify, Cadence, Mentor, Actel, Altera, Lattice, and Xilinx imple- mentation tools. Support for other CAD tools can be easily be added.1.3片上总线The GRLIB is designed to be ‘bus-centric’, i.e. it is assumed that most of the IP cores will be con- nected through an on-chip bus. The AMBA-2.0 AHB/APB bus has been selected as the common on-chip bus, due to its market dominance (ARM processors) and because it is well documented and can be used for free without license restrictions. The figure below shows an example of a LEON3 system designed with GRLIB1.4Distributed address decodingAdding an IP core to the AHB bus is unfortunately not as straight-forward as just connecting the bus signals. The address decoding of AHB is centralized, and a shared address decoder and bus multiplexer must be modified each time an IP core is added or removed. To avoid dependencies on a global resource, distributed address decoding has been added to the GRLIB cores and AMBA AHB/APB controllers.1.5Interrupt steeringGRLIB provides a unified interrupt handling scheme by adding 32 interrupt signals to the AHB and APB buses. An AMBA module can drive any of the interrupts, and the unit that implements the interrupt controller can monitor the combined interrupt vector and generate the appropriate processor interrupt. In this way, interrupts can be generated regardless of which processor or inter- rupt controller is being used in the system, and does not need to be explicitly routed to a global resource. The scheme allows interrupts to be shared by several cores and resolved by software.1.6Plug&Play capabilityA broad interpretation of the term ‘plug&play’ is the capability to detect the system hardwarecon- figuration through software. Such capability makes it possible to use software application or oper-ating systems which automatically configure themselves to match the underlying hardware. This greatly simplifies the development of software applications, since they do not need to be custom- ized for each particular hardware configuration.In GRLIB, the plug&play information consists of three items: a unique IP core ID, AHB/APB memory mapping, and used interrupt vector. This information is sent as a constant vector to the bus arbiter/decoder, where it is mapped on a small read-only area in the top of the address space.Any AHB master can read the system configuration using standard bus cycles, and a plug&play operating system can be supported.To provide the plug&play information from the AMBA units in a harmonized way, a configuration record for AMBA devices has been defined (figure 1). The configuration record consists of 8 32- bit words, where four contain configuration words defining the core type and interrupt routing, and four contain so called ‘bank address registers’ (BAR), defining the memory mapping.The configuration word for each device includes a vendor ID, device ID, version number, and interrupt routing information. A configuration type indicator is provided to allow for future evolve-ment of the configuration word. The BARs contain the start address for an area allocated to the device, a mask defining the size of the area, information whether the area is cacheable or pre-fetch- able, and a type declaration identifying the area as an AHB memory bank, AHB I/O bank or APB I/O bank. The configuration record can contain up to four BARs and the core can thus be mapped on up to four distinct address areas.2安装过程 Installation2.1安装 Installation(本系统安装过程演示在RedHat Linux中进行,其他*nix和cygwin等环境应大体相同)GRLIB is distributed as a gzipped tar-file and can be installed in any location on the host system: GRLIB 是以gzip压缩格式发布的,可以在宿主机的任意位置发布。

以太网IP核说明书

以太网IP核说明书

以太网IP核说明书目录1 (3)INTRODUCTION (3)2 (4)IO PORTS (4)2.1 ETHERNET CORE IO PORTS (4)2.1.1 Host Interface Ports (4)2.1.2 PHY Interface ports (6)3 (8)REGISTERS (8)3.1 MODER (MODE REGISTER) (9)3.2 INT_SOURCE (INTERRUPT SOURCE REGISTER) (11)3.3 INT_MASK (INTERRUPT MASK REGISTER) (12)3.4 IPGT (BACK TO BACK INTER PACKET GAP REGISTER) (13)3.5 IPGR1 (NON BACK TO BACK INTER PACKET GAP REGISTER 1) (13)3.6 IPGR2 (NON BACK TO BACK INTER PACKET GAP REGISTER 2).......................................... 错误!未定义书签。

3.7 PACKETLEN (PACKET LENGTH REGISTER) .... 错误!未定义书签。

3.8 COLLCONF (COLLISION AND RETRY CONFIGURATION REGISTER).......................................... 错误!未定义书签。

3.9 TX_BD_NUM (TRANSMIT BD NUMBER REG.) ... 错误!未定义书签。

3.10 CTRLMODER (CONTROL MODULE MODE REGISTER)错误!未定义书签。

3.11 MIIMODER (MII MODE REGISTER) ......... 错误!未定义书签。

关于生成AMBA ip core的GRLIB使用笔记1(哥,断奶了)

关于生成AMBA ip core的GRLIB使用笔记1(哥,断奶了)

本文源于哥,断奶了在学习中做的笔记,希望分享后大家一起学习讨论。

2013/5/13在查看工程发现其中AHB BUS是使用Aeroflex Gaisler(艾尔法斯盖斯勒)公司的LEON 3生成的IP CORE,所以开始研究给予UNIX系统下的LEON 3的使用。

俗话说前人种树,后人乘凉,但是从看代码研究这个AHB是怎么设计到现在,发现在这个AHB总线方面被使用的很少,更别说前人给你种树了,所以我一直都被太阳晒着,弄了一个月了,才知道使用方法。

下面我会把整个AHB总线使用的详细的描述出来,为以后的同学们使用提供帮助。

一.开发系统因为这个GRTOOL是工作在GNU / Linux平台上开发的,所以首先要搭建GNU / Linux 平台,所以首先要搭建Linux平台,搭建方法是在win7下用VMware虚拟机搭建Linux平台。

1.Linux系统简介Linux 是一种计算机操作系统,Linux 是以Unix 操作系统为原型创造的。

自从诞生之日起,它就被设计成一种多任务、多用户的系统。

这些特点使Linux 完全不同于其它著名的操作系统。

事实上,Linux 比您所能想象到更加特别。

与其它操作系统绝然相反的是,没人真正拥有Linux,其大部分开发工作都是由无偿的志愿者完成的。

2.VMware虚拟机简介VMware Workstation 允许操作系统和应用程序在一台虚拟机内部运行。

虚拟机是独立运行主机操作系统的离散环境。

在VMware Workstation 中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。

你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机—这一切不会影响你的主机操作和任何操作系统或者它正在运行的应用程序。

在这里我只简单的介绍怎么搭建Linux平台:首先在VMware官方下载VMware虚拟机软件,安装方法可以百度搜一下,会有相应的安装教程和使用说明,下面是VMware的界面:方法我也不再介绍,网上资源很多,安装后的见面如图:Ubuntu(友帮拓)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。

javacv中ffmpegframegrabber使用时的一些注意事项

javacv中ffmpegframegrabber使用时的一些注意事项

javacv中ffmpegframegrabber使用时的一些注意事项FFmpegFrameGrabber是JavaCV库中用于捕捉视频帧的类。

在使用FFmpegFrameGrabber时,有一些注意事项需要注意,以确保能够正确地使用它来捕捉视频帧。

1. 安装FFmpeg:FFmpegFrameGrabber依赖于FFmpeg库来进行视频帧的捕捉和解码。

确保在使用FFmpegFrameGrabber之前已经安装了FFmpeg,并且能够正确地运行FFmpeg命令。

2. 导入正确的依赖项:在使用JavaCV库时,需要正确地导入相关的依赖项。

确保在项目的构建路径中添加了JavaCV和FFmpeg的相关依赖项,以及所需的其他依赖项。

3. 设置输入源:使用FFmpegFrameGrabber之前,你需要设置输入源的路径或URL。

输入源可以是本地文件路径或是网络视频的URL。

例如:```String videoPath = "path/to/video.mp4";FFmpegFrameGrabber grabber = newFFmpegFrameGrabber(videoPath);```4. 打开输入源:在设置输入源之后,需要调用grabber的`start`方法来打开输入源,以便可以开始捕捉视频帧。

例如:```grabber.start(;```5. 获取视频帧:一旦成功打开了输入源,就可以开始捕捉视频帧。

使用grabber的`grab`方法来获取视频帧。

例如:```Frame frame = grabber.grab(;```6. 处理视频帧:一旦获取到视频帧,就可以对其进行进一步处理。

视频帧可以是图片、音频或其他类型的数据。

你可以将其转换为OpenCV 的Mat对象来使用OpenCV库进行进一步的图像处理。

例如:```OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat(;Mat mat = converter.convert(frame);```7. 释放资源:在使用完FFmpegFrameGrabber后,记得调用grabber 的`stop`方法来释放资源。

nebula graph insert语句

nebula graph insert语句

nebula graph insert语句如何编写Nebula Graph的INSERT语句?在使用Nebula Graph进行数据操作时,INSERT语句是常用的一种操作。

INSERT语句用于将数据插入到图数据库中的指定顶点或边类型中。

本文将一步一步回答如何编写Nebula Graph的INSERT语句。

步骤一:连接到Nebula Graph数据库首先,需要确保已经连接到Nebula Graph数据库。

可以通过Nebula Graph的客户端命令行工具(nebula-console)或者编程语言的Nebula Graph驱动程序(如Python、Java或Go)来连接。

步骤二:选择和创建schema在进行数据插入之前,需要定义数据库中的schema。

Schema定义了图数据库中的顶点和边类型,以及它们的属性。

可以通过执行CREATE TAG/EDGE语句来创建顶点和边类型,并使用ALTER TAG/EDGE语句来修改已有类型的属性。

例如,假设需要插入一个表示人员信息的顶点类型,可以执行以下命令:CREATE TAG person(name string, age int)这将创建一个名为person的顶点类型,并定义了两个属性:name和age。

步骤三:编写INSERT语句接下来,可以编写INSERT语句将数据插入到图数据库中。

INSERT语句可以插入顶点或边,具体取决于要插入的数据类型。

插入顶点数据的基本语法如下:INSERT VERTEX <tag_name> [(<column_name>, ...)] VALUES<value_list>其中,<tag_name>是要插入的顶点类型的名称,<column_name>是要插入的属性列的名称,<value_list>是要插入的属性值列表。

例如,要插入一个名为person_1的人员信息顶点,可以执行以下命令:INSERT VERTEX person(name, age) VALUES "person_1":("John Doe", 30)此命令将在person顶点类型中插入一个名为person_1的顶点,其属性name的值为"John Doe",属性age的值为30。

postgrescolumnreferenceidisambiguous

postgrescolumnreferenceidisambiguous

postgrescolumnreferenceidisambiguous在执⾏函数时会出现该问题解决办法:在查询时为表格指定别名,并且查询字段指定表名如:table.field_name不过说来也奇怪,我就查⼀个表,怎么会出现模糊的字段呢-- 销售报表查询条件,汇总⽅式可能会有多种情况,/*⽉环⽐:1. 每个客户的环⽐,2. 每个销售⼈员的环⽐3. 每种产品的环⽐年同⽐:客户,销售员,产品,基本上不会有三个维度⼀起查看的情况。

数据累加:这个可以在两种表中添加;所以基础表格字段:销售员,客户,产品,时间,销量,销售额根据⽤户选择的条件不同进⾏不同维度的汇总。

需要存储⼀个动态字段:时间类型,统计维度。

传⼊不同的参数返回不同的值,这个感觉需要使⽤函数来实现,返回table*/drop function if exists func_sale_report;create or replace function func_sale_report(par_field varchar, par_date_type varchar,par_date varchar)returns table(field1 varchar,field_value varchar,date_type varchar,date_value varchar,date_year varchar,price_subtotal1 numeric,delivered numeric)as$$beginreturn queryexecute format('select ''%1$s''::varchar,A.%1$s::varchar,''%2$s''::varchar,to_char(A.date, ''%2$s'')::varchar as month,to_char(A.date, ''YYYY'')::varchar as year,sum(A.price_subtotal) as price_subtotal,sum(A.qty_delivered) as qty_deliveredfrom sale_report as A where date>''%3$s''::dategroup by A.%1$s,to_char(A.date, ''YYYY''), to_char(A.date, ''%2$s'')order by A.%1$s,to_char(A.date, ''YYYY''),to_char(A.date, ''%2$s'')', par_field, par_date_type,par_date);end$$ language plpgsql volatile;将就着看吧,⽤excute 执⾏sql 我是⽐较排斥的,但是没办法,有些变量是字段.。

ABP.NetCore使用教程(三)记录数据库脚本日志

ABP.NetCore使用教程(三)记录数据库脚本日志

Core使⽤教程(三)记录数据库脚本⽇志可以跟踪数据库脚本能很好的帮助我们理解ABP , SQL Server Profiler当然是很好的⼯具 , 好像MySQL没有这么⽅便的⼯具这⾥我们讨论⽤⽇志记录的⽅法1, ⾸先我们建两个类来记录EFCore产⽣的脚本⽇志EFLogger.csusing Microsoft.Extensions.Logging;using System;namespace AbpDemo.EntityFrameworkCore.Logger{public class EFLogger : ILogger{public Castle.Core.Logging.ILogger Logger { get; set; }private readonly string _categoryName;public EFLogger(string categoryName, Castle.Core.Logging.ILogger logger){this._categoryName = categoryName;this.Logger = logger;}public bool IsEnabled(LogLevel logLevel) => true;public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception,Func<TState, Exception, string> formatter){//ef core执⾏数据库查询时的categoryName为mand,⽇志级别为Informationvar logContent2 = formatter(state, exception);if (_categoryName == "mand"&& logLevel == rmation){var logContent = formatter(state, exception);Logger.Warn(logContent);}}public IDisposable BeginScope<TState>(TState state) => null;}}View CodeEfLoggerProvider.csusing Microsoft.Extensions.Logging;namespace AbpDemo.EntityFrameworkCore.Logger{public class EfLoggerProvider : ILoggerProvider{public Castle.Core.Logging.ILogger Logger;public EfLoggerProvider(Castle.Core.Logging.ILogger logger){Logger = logger;}public ILogger CreateLogger(string categoryName){return new EFLogger(categoryName, Logger);}public void Dispose(){}}}View Code2, 修改AbpDemoDbContextConfigurer.csusing mon;using Microsoft.EntityFrameworkCore;using Microsoft.Extensions.Logging;namespace AbpDemo.EntityFrameworkCore{public static class AbpDemoDbContextConfigurer{public static void Configure(DbContextOptionsBuilder<AbpDemoDbContext> builder, string connectionString, LoggerFactory loggerFactory){eLoggerFactory(loggerFactory).UseSqlServer(connectionString);builder.EnableSensitiveDataLogging(); //⽇志显⽰脚本参数}public static void Configure(DbContextOptionsBuilder<AbpDemoDbContext> builder, DbConnection connection, LoggerFactory loggerFactory){eLoggerFactory(loggerFactory).UseSqlServer(connection);builder.EnableSensitiveDataLogging(); //⽇志显⽰脚本参数}}}View Code3, 修改AbpDemoEntityFrameworkModule.cs 构建EfLoggerProvider类并提供给配置类使⽤using Abp.EntityFrameworkCore.Configuration;using Abp.Modules;using Abp.Reflection.Extensions;using Abp.Zero.EntityFrameworkCore;using AbpDemo.EntityFrameworkCore.Logger;using AbpDemo.EntityFrameworkCore.Seed;namespace AbpDemo.EntityFrameworkCore{[DependsOn(typeof(AbpDemoCoreModule),typeof(AbpZeroCoreEntityFrameworkCoreModule))]public class AbpDemoEntityFrameworkModule : AbpModule{/* Used it tests to skip dbcontext registration, in order to use in-memory database of EF Core */public bool SkipDbContextRegistration { get; set; }public bool SkipDbSeed { get; set; }public override void PreInitialize(){if (!SkipDbContextRegistration){Configuration.Modules.AbpEfCore().AddDbContext<AbpDemoDbContext>(options =>{if (options.ExistingConnection != null){AbpDemoDbContextConfigurer.Configure(options.DbContextOptions, options.ExistingConnection, DbLoggerFactory);}else{AbpDemoDbContextConfigurer.Configure(options.DbContextOptions, options.ConnectionString,DbLoggerFactory);}});}}public override void Initialize(){IocManager.RegisterAssemblyByConvention(typeof(AbpDemoEntityFrameworkModule).GetAssembly());}public override void PostInitialize(){if (!SkipDbSeed){SeedHelper.SeedHostDb(IocManager);}}private static Microsoft.Extensions.Logging.LoggerFactory _loggerFactory;private Microsoft.Extensions.Logging.LoggerFactory DbLoggerFactory{get{if (null == _loggerFactory){_loggerFactory = new Microsoft.Extensions.Logging.LoggerFactory();//_loggerFactory.AddProvider(new EfLoggerProvider(IocManager.Resolve<Castle.Core.Logging.ILogger>())); _loggerFactory.AddProvider(new EfLoggerProvider(Logger));}return _loggerFactory;}}}}View Code4, 修复AbpDemoDbContextFactory.cs 的报错,传⼊空⽇志类就可以了using Microsoft.EntityFrameworkCore;using Microsoft.EntityFrameworkCore.Design;using Microsoft.Extensions.Configuration;using AbpDemo.Configuration;using AbpDemo.Web;namespace AbpDemo.EntityFrameworkCore{/* This class is needed to run "dotnet ef ..." commands from command line on development. Not used anywhere else */ public class AbpDemoDbContextFactory : IDesignTimeDbContextFactory<AbpDemoDbContext>{public AbpDemoDbContext CreateDbContext(string[] args){var builder = new DbContextOptionsBuilder<AbpDemoDbContext>();var configuration = AppConfigurations.Get(WebContentDirectoryFinder.CalculateContentRootFolder());AbpDemoDbContextConfigurer.Configure(builder,configuration.GetConnectionString(AbpDemoConsts.ConnectionStringName), null);return new AbpDemoDbContext(builder.Options);}}}View Code这样运⾏项⽬, 在Logs.txt中就会显⽰所有的数据库脚本了我对⽇志进⾏了分类存放, 下⾯是参考的 log4net.config<?xml version="1.0" encoding="utf-8" ?><log4net><!-- 全部的⽇志 DEBUG < INFO < WARN < ERROR < FATAL --><appender name="Info" type="log4net.Appender.RollingFileAppender" ><file value="App_Data/Logs/Info" /><appendToFile value="true" /><rollingStyle value="Date" /><datePattern value="yyyyMM\\'Info'yyyyMMdd'.txt'"/><maxSizeRollBackups value="100" /><maximumFileSize value="10000KB" /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><conversionPattern value="%newline%date [%thread] [%-5level] %logger %newline%message%newline"/></layout></appender><!-- SQL --><appender name="Warn" type="log4net.Appender.RollingFileAppender" ><file value="App_Data/Logs/Warn" /><appendToFile value="true" /><rollingStyle value="Date" /><datePattern value="yyyyMM\\'Warn'yyyyMMdd'.txt'"/><maxSizeRollBackups value="100" /><maximumFileSize value="10000KB" /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><conversionPattern value="%newline%date [%thread] [%-5level] %logger %newline%message%newline"/></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="Warn" /><levelMax value="Warn" /></filter></appender><!-- Error --><appender name="Error" type="log4net.Appender.RollingFileAppender" ><file value="App_Data/Logs/Error" /><appendToFile value="true" /><rollingStyle value="Date" /><datePattern value="yyyyMM/'Error'yyyyMMdd'.txt'"/><maxSizeRollBackups value="100" /><maximumFileSize value="10000KB" /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><conversionPattern value="%newline%date [%thread] [%-5level] %logger property: [%property{NDC}] %newline%message%newline"/> </layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="Error" /></filter></appender><!-- 只有Debug --><appender name="Debug" type="log4net.Appender.RollingFileAppender" ><file value="App_Data/Logs/Debug.txt" /><appendToFile value="true" /><rollingStyle value="Size" /><maxSizeRollBackups value="10" /><maximumFileSize value="10000KB" /><staticLogFileName value="true" /><layout type="yout.PatternLayout"><conversionPattern value="%newline%date [%thread] [%-5level] %logger %newline%message%newline"/></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="Debug" /><levelMax value="Debug" /></filter></appender><!--输出到控制台--><appender name="Console" type="log4net.Appender.ManagedColoredConsoleAppender"><mapping><level value="ERROR"><foreColor value="Yellow,HighIntensity" /></level></mapping><layout type="yout.PatternLayout"><conversionPattern value="%newline%date [%thread] [%-5level] %-40.40logger %newline%message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="Error" /></filter></appender><root><appender-ref ref="Warn" /><appender-ref ref="Info" /><appender-ref ref="Error" /><appender-ref ref="Debug" /><appender-ref ref="Console" /><level value="DEBUG" /></root><logger name="NHibernate"><level value="WARN" /> </logger></log4net>View Code。

cglib用法

cglib用法

cglib用法CGLIB是一种动态代理技术,通常用于扩展Java类的功能,而不需要修改原始代码。

本文将介绍CGLIB的基本用法。

CGLIB是什么?CGLIB是Code Generation Library的缩写。

它是一个强大的,高性能的,通用的字节码处理程序,可以将类扩展为在运行时产生的子类。

与Java动态代理(JDK代理)相比,CGLIB更适用于那些没有实现接口或需要实现复杂逻辑的类。

CGLIB的缺点是它可能会引入类加载的问题,如单一的类加载器等。

CGLIB的基本用法1. 引入CGLIB库首先,需要下载CGLIB库,将其包含在类路径中。

例如,在Maven项目中,可以通过以下方式添加CGLIB库:```xml<dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version></dependency>```2. 编写需要扩展的类本例中,我们将扩展一个简单的类 `Person`,该类有一个 `sayHello()`方法。

```javapublic class Person {public void sayHello() {System.out.println("Hello World!");}}```3. 使用CGLIB扩展类创建一个类,该类使用CGLIB动态代理来扩展 `Person` 类。

通过 `Enhancer` 类和`MethodInterceptor` 接口来完成此操作。

```javaimport net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import ng.reflect.Method;public class ExtendedPerson implements MethodInterceptor {private Object target;public Object createProxy(Object target) {this.target = target;Enhancer enhancer = new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(this);return enhancer.create();}以上代码中,`createProxy()` 方法返回CGLIB代理对象,该对象将被用于实际调用Person类中的 `sayHello()` 方法。

CMG 学习心得

CMG 学习心得

CMG 学习笔记!(GEM入门1)关键字输入部分数据组要求:(A)七个不同组(B)数据组应遵循确定的顺序这七个不同的数据组包括:I/O控制油藏描述组分特征岩石流体数据初始条件数值方法控制井数据和循环数据怎样建立数据文件数据其中有四个关键字必须在输入/输出控制部分,*TITLE1,*TITLE2,*TITLE3,*CASEID这四个关键字是可选的,并可以取掉.但是,他们对于辨别不同数据文件很有用.全部标题和标识必须包括在单引号之内.*TITLE1,和*CASEID均在模拟结果文件中使用,该文件用来产生模拟的图形.*TITLE1可以包含40个字符,*TITLE2和*TITLE3每个可以有80个字符.*CASEID最多8个字符!也可以使用两个关键字标识符即'**'插入注释,注释可以出现在数据文件任何地方.现在给大家一个例子:*TITLE1‘Simulation Run #1-2005-11-20'*TITLE2‘Dual porosity problem usi ng the MINC option'*TITLE3'This is a 12*12*10 Cartesian grid system '*CASEID'Run1'**注释部分以后还有内容!!请大家关注!!!CMG学习笔记(GEM入门2)---关于重启文件关于重启文件重启文件是一个二进制文件,初始数据和主要变量按用户指明的频率写入,写重启文件是可以选择的.重启文件可以在以下工作中用到:1)做敏感性分析和历史拟和2)修改井定义3)在运行一个大的长作业之前,做一个短的模拟运行,先看结果是否满意.4)在随后的运行中节约时间.例如,当完成一次模拟运行而且初步结果看起来不错,则需做预测运行由于已经由前次运行创建了一个重启文件,则可以选择其中的中间时间步重启运行,模拟器不需要初始日期启动运行,可以选择时间步继续运行.要做重启运行就要在前次运行是产生.使用*WRST或*RESTART创建文件,他们必须位于输入/输出控制部分.然而,当井工作制度改变时*WRST可以出现在井数据部分,*WRST指示写重启记录的频率。

Serilog日志使用(一).netcore.net5.0

Serilog日志使用(一).netcore.net5.0

Serilog⽇志使⽤(⼀)5.0Serilog可以很好的对.net core 进⾏内置⽇志集成处理其基本配置可以通过外部读取,也可以内部通过代码判断可以使⽤:Serilog.Sinks.Console 将⽇志读取到控制台Serilog.Sinks.File 将⽇志读取到⽂件Serilog.Sinks.MariaDB 将⽇志写⼊数据库需要⽤到(⽀持sqlserver ,Mysql)其它数据库需要安装相应的nuget包,具体可以查阅官⽅⽂档当然还有许多好⽤的Nuget包同时⽀持多种关系型数据库和⾮关系型数据库基本配置WriteTo ⽤于设置⽇志接受器,可以单个也可以多个Log.Logger = new LoggerConfiguration().WriteTo.Console().WriteTo.File("log-.txt", rollingInterval: RollingInterval.Day).CreateLogger();outputTemplate 输出⽇志模板设置.WriteTo.File("log.txt",outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")设置⽇志输出的最⼩粒度等级.MinimumLevel.Debug()输出的⽇志等级可以设置全局,也可以单独设置如下为单独控制⾯板的⽇志等级.WriteTo.Console(restrictedToMinimumLevel: rmation)对内置⽇志输出粒度的重写.MinimumLevel.Override("Microsoft", rmation)json⽂件内容⽰例"Serilog": {"Using": ["Serilog.Sinks.MariaDB"],"MinimumLevel": "Debug","WriteTo": [{"Name": "MariaDB","Args": {"connectionString": "server=localhost;Database=data;Uid=root;Pwd=123456;Port=3306;Allow User Variables=True;", "autoCreateTable": true,"tableName": "Logs","restrictedToMinimumLevel": "Information","batchPostingLimit": 1000, //批量写⼊限制"period": "0.00:00:30","options": {"PropertiesToColumnsMapping": {"Exception": "Exception","Timestamp": "Timestamp","Level": "Level","Message": "Message","MessageTemplate": "MessageTemplate","Properties": "Properties"},//"HashMessageTemplate": true, //是true(默认是false)时,使⽤ SHA256 算法对消息模板进⾏哈希处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文源于哥,断奶了在学习中做的笔记,希望分享后大家一起学习讨论。

2013/5/17
一.GRlib的使用
首先在designs下建立一个工程文件design_one,你可以把你所需要的器件类型design 内的文件复制到这个文件里,例如我要做一个V5的project,那么就可以把leon3-gr-pci-xc5v 这个文件里的文件复制到design_one里面。

然后进入虚拟机,用终端打开design_one文件,执行命令make xgrlib,打开如下界面。

1.红色区域
首先来看Simulation,这个GRlib提供了包括Modelsim、
Nasim(一位台湾人写的加工程序仿真软件)和一些其他公司
提供的仿真工具(我对着些仿真工具也不是太了解,因为只
做过Altera和Xilinx的FPGA,所以只对他们自带的仿真工
具和Modelsim比较了解,而且我们后面的实例只用到
Modelsim。

)选择所需要的仿真工具,如果在Linux下安装
了Modelsim的话,在这里可以run Modelsim。

如果没有也
没关系,他会在共享的工程文件中生成工程文件,这样你就
可以在Linux外部打开这个project。

其他连个选项也是一样的道理、,但是现在AMBA总线还没有设置参数,所以在这里先不要管它,我只是把第一个界面的选项先介绍一下。

2.蓝色区域
这个区域包括器件类型、项目名称、状态显示。

在状态显示里面我们可以看到生成的文件和一些GRlib在做什么操作。

3.紫色区域
prog prom:下载FPGA的prom。

Xconfig:启动配置工具。

Clean:撤销所有设置。

Scripts:产生工程脚本文件。

Distclean:移除所有产生的文件。

Quit:退出程序。

二.Xconfig工具
Xconfig启动配置工具后,我们就可以对工程进行编辑了,如图:
1.synthesis设置
Target technology(目标技术):Xlinx-Virtex为memory and pads选择目标器件,它包含XLINX、Altera的大多数器件。

Infer RAM(翻译成RAM):选择Y,不针对指定器件的综合,由综合工具自动生成。

选择N,指定所选的器件包进行综合。

Infer pads(翻译成pads):选择Y,不针对指定器件的综合,由综合工具自动生成。

选择N,指定所选的器件包进行综合。

Disable asynchronous reset(禁用异步复位):Y禁用,N使用。

Enable scan support(使能扫描支持):Y使用,N禁用,可以通过选择这个选项来使设计是否可测试。

2.Clock generation(时钟产生)
Clock generation:当你选择不同的器件时,它的内部Clock资源也是不相同的。

Clock multiplication factor(allowed values are tech dependent):时钟倍频系数(允许的值是高技术依赖)。

Clock division factor(allowed values are tech dependent):时钟分频系数(允许值是高科技支持)。

Output division factor(1-32):输出分频系数。

Output division factor,2nd clk(0-32,see help):第二个输出时钟系数。

Output division factor,3rd clk(0-32,see help):第三个输出时钟系数。

Enable Xilinx CLKDLL for PCI clock:使能XINLINX CLKDLL为PCI时钟。

Disable external feedback for SDRAM clock:禁用外部SRAM时钟反馈。

Use PCI clock as system clock:使用PCI时钟作为系统时钟。

3.processor(处理器)
Enable LEON3 SPARC V8 Processor(使能LEON3 SPARC V8 处理器)
Number of processors(处理器数量):选择处理器数量。

Force values from example configuration(从配置事例中强制赋值):
Minimal-configuration低性能配置
General-purpose-cfg一般用途配置
High-performance-cfg高性能配置
Custom-configuration自定义配置
下面内容为对这个选项相关的介绍:
LEON3是一种基于SPARC V8(IEEE-1754)架构的32位处理器核。

LEON3主要面对嵌入式应用,具有高性能低复杂度、低功耗等特点。

LEON3处理器核具有以下特性:
●基于哈佛结构的七级流水线
●独立的指令cache和数据cache
●硬件乘除功能
●在线调试功能
●多处理器支持
下图为LEON3的结构框图:
图5-3 LEON3 结构框图
LEON3整数单元实现了完整的SPARC V8标准,包括硬件乘除指令。

寄存器数量可以配置,默认配置为8个,七级流水线结构,带有独立的数据和指令cache接口。

LEON3带有一个可配置的cache系统,具有独立的指令和数据cache。

指令和数据都可以配置为1-4级,每级可以设置为1-256kbyte。

LEON3中可以选择使用一个基于SPARC V8架构的内存处理单元(SRMMU)。

SRMMU实现了完整的SPARC V8 MMU协议,并提供36位物理地址和32位虚拟地址之间的地址映射。

LEON3支持支持SPARC V8架构的中断模型,共有15个异步中断。

中断接口可以产生中断和识别中断。

cache系统实现了一个AMBA AHB主设备用来与cache进行数据的加载和存储。

接口遵照AMBA-2.0标准实现。

LEON3支持多处理器系统,每个处理器有一个唯一的索引可以对处理器进行列举。

3.1 integer unit(整数运算单元)
SPARC register windows(SPARC寄存器窗口):
3.2Floating-point unit
3.3 Cache system
3.4 MMU
3.5 Debug Support Unit
3.6 Fault-tolerance
3.7 VHDL debug settings
4.AMBA configuration(AMBA配置)
Default AHB master(默认AHB主):默认AHB主编号(工作在固定优先级模式下)。

Round-robin arbiter(循环优先级):
AHB split-transaction support(AHB分割交易支持):
Enable full plug&play decoding(启用完整的即插即用解码):
I/O area start address (haddr[31:20])(i/o区域起始地址):
AHB/APB bridge address(haddr[31:20])(AHB/APB桥地址):
Enable AMBA AHB monitor(使能AMBA监视器):
Report AHB errors(报告AHB错误):
Report AHB warnings (报告AHB警告):
Write trace to simulation console(仿真控制写跟踪):5.Debug Link(调试链接)。

相关文档
最新文档