PCIe 协议规定 TLP 中的 data payload 是 1DW(特殊情况此处不介绍)对齐的,因此在使用 addr 的 TLP 中省略了 addr[1:0],为了指示 DW 中的有效字节,PCIe TLP header 使用 First/Last DW Byte Enables 表示 data payload 的首个/最后一个 DW 中的哪些 byte 是有效的。对应字节的 byte enable 为 1 则表示字节有效。
Arm 架构虚拟化扩展(Virtualization Extension)是在 2010 年作为 ARMv7 架构的一部分引入的,它为虚拟化提供了架构支持。在此之前,ARM 系统上的虚拟化解决方案都是基于半虚拟化(paravirtualization)的,并没有被广泛使用。不过随着 Arm CPU 的性能不断提高,并从智能手机和平板电脑等移动设备向传统服务器进军,人们对 ...
在数字电路设计中,加法器与减法器是最基本且应用带有场景的运算模块。addsub模块是一个适用于广泛场景的加减法实现,支持加法和减法操作,并通过自定义参数提供两种不同的实现方式。以下将对该模块进行分析。
在进行 PCIe 调试过程中我们时常需要执行 retrain 操作。retrain 命令是让 PCIe 链路先退出 Link 状态(ltssm==L0),ltssm 会进入 recovery 状态,然后再次进入 L0 状态。
通过总线将各个 IP 通过总线连接起来的 SoC 芯片是未来的大趋势,也是缩短芯片开发周期,抢先进入市场的常用方法。如何确保各个 IP 是否正确连接到总线上,而且各 IP 的地址空间分配是否正确,是一件很棘手的事情。本文提出了一种新方法,可以解决 SoC 总线验证的诸多困难,既简单又快速地完成 SoC 总线功能验证。
Arm 架构为了支持虚拟化做了些扩展,称为虚拟化扩展(Virtualization Extensions)。原先为 VT-x 创建的 KVM(Linux-based Kernel Virtual Machine)适配了 Arm 体系结构,引入了 KVM/Arm (the Linux Arm hypervisor)。KVM/Arm 没有在 hypervisor 中引入复杂的核心功能,而是利用了 Linux 内核中现有的功能进行适配。KVM/Arm...
UCIE 协议主要包括 protocol 层,Adapter 层和 PHY 层。Protocol 层复用 CXL,PCIE 或自定义的 stream 流格式。
1.循环循环的性能是由以下因素决定:循环内进行的工作;在循环中进行的检查,以确定它是否可以退出;在循环内进行的工作应该保持在最低限度,并且对循环边界进行的检查应该具有最低的开销。典型例子如下:例子 1:在循环开始之前将变量设置为数组的大小,可以节省每次迭代时计算 a.size()的开销。例子 2:在循环中搜索数...
UVM 中,phase 机制是一个基本而又非常核心的特性之一,uvm phase 将验证环境的运行划分为不同的阶段,如 build, configue, reset, main 等。每个 phase 阶段可对应着环境或者 DUT 的初始化或者处理过程。
vim 是一个 Unix 文本编辑器,它以快速高效而闻名,是在终端中运行的小应用程序(当然也有图形界面),它最主要的特点是完全可以通过键盘控制,而不需要菜单栏或鼠标。
随着数据传输速率的不断提高以及应用场景的日益复杂,PCIe 需要更精细化的机制来管理和调度数据的传输,以满足不同类型数据(如实时性要求高的控制信息、大容量的数据文件等)的差异化需求。PCIe 虚拟通道(VC , Virtual Channels)应运而生,它是一种在物理 PCIe 链路基础上,通过逻辑划分创建出的多个独立的数据传输通...
✎ 编 者 按打造的一个基于 python 得时序图绘制工具 wavedraw,让绘图变得更符合习惯。
编 者 按 对于那些喜欢先写代码再写文档的小伙吧,寄希望于直接把仿真的波形直接贴到文档上作为接口时序图,又嫌弃波形文件太丑的小伙伴,那么可以尝试下wavedraw的VCDParser,直接将VCD文件转换为可用于wavedrom生成波形的json文件,支持只选择某个时间窗范围内的波形提取。
DLLP 只用于链路两端的数据链路层通信。DLLP 的主要用途是 TLP 流量控制,链路初始化,电源管理,事务层与物理层之间信息传递等。与 TLP 不同的是,DLLP 不需要路由,只是在一条链路的两端传递。
虚拟化是现代计算机领域不可或缺的一种技术,它让公开的虚拟资源等于被虚拟化的底层物理资源,通常是使用多路复用、聚合和模拟中的一种或多种基本技术实现。等效性、安全性和性能是衡量虚拟化的三个重要标准。Gerald Popek 和 Robert Goldberg 在 1974 年就确立了一个指令集架构(ISA)是否支持虚拟化的基本要求。直到今天...
在构建复杂的 sequence 序列的时候,我们经常会用到 m_sequencer 和 p_sequencer,并且在很多资料中都提到两者实际指向的是同一个对象,那么为什么要同时存在他们两个,存在一个不就够用了吗?为此,本文通过示例说明下两者之间的关系。
编 者 按在 github 上看到的一个开源工具 protocol,是采用 python 进行编写,通过打包成命令行的形式,主要用于通过 ASCII 码来绘制网络报文协议,效果颇为不错,在其源代码的基础上进行了改写,以适用于不同的应用场景。
在 Linux 中,我们经常使用 remove 和 rescan 命令对 PCI 设备进行操作,常常用于设备调试和故障排查。
scp 是一个基于 SSH(Secure Shell)协议的文件传输工具,用于在本地计算机和远程计算机之间安全地复制文件。它通过加密传输数据,确保数据传输过程中的安全性。scp命令有如下特点:
小编最近在做逻辑综合时,总在 Verilog HDL 以及 SDC 内见到 SERDES 时钟以及相关约束,为了揭开 电串行器/解串器 Serdes 的神秘面纱,小编查阅了相关资料和论文,并在此文中对 SERDES 进行介绍讨论,同时介绍一种采用光电集成技术的,即采用光 SerDes 而非电 SerDes 的高速收发器。