1.��ԴrtlԴ��
2.DDR 学习时间 (Part I - OS1):DDR IP 开源实现 DDR5 PHY 数据通路
3.GPGPU架构学习仓库导航
4.verilator安装使用
5.RTL8111H-PCIE网卡ARM驱动构建
6.FPGA千兆网 UDP 网络视频传输,开源基于RTL8211 PHY实现,源源提供工程和QT上位机源码加技术支持
��ԴrtlԴ��
Google计划与SkyWater合作,码开开源首个可制造的开源PDK——SkyWater PDK,并提供完全免费的源源芯片制造流程。
生产一颗芯片包括芯片设计、码开css 分页 源码 下拉制造、开源封装和测试等环节,源源其中设计和制造最为关键,码开而制造则是开源最复杂的一环。
制作芯片首先需要RTL(电阻晶体管逻辑电路),源源还需要从代工厂获得工艺设计套件(PDK),码开这需要足够的开源资金支付制造费用。
PDK即工艺设计包,源源包含设计规则、码开模拟模型、单元规格、数据文件,连接IC设计公司、代工厂和EDA公司。PDK是将RTL转化为物理芯片的关键步骤,也是流程开源的难点。要制造自己的芯片,必须有一套开源且可制造的PDK。
谷歌的Tim Ansell宣布,Google将与SkyWater合作,开源首个可制造的PDK——SkyWater PDK。设计完成后,Google将完全免费生产芯片,无需承担高昂的制造成本。
Google成立于年9月4日,由拉里·佩奇和谢尔盖·布林共同创建,是一家跨国科技企业,主要业务包括互联网搜索、云计算、广告技术等,同时开发并提供大量基于互联网的产品与服务。
年3月日,Google宣布关闭在中国大陆的搜索服务。年8月日,企业架构调整并创办Alphabet公司,成为其子公司。flink1.13源码年月日,谷歌在北京成立AI中国中心。
世纪,人工智能被认为是引领第四次工业革命的关键,亚马逊、谷歌、微软、阿里、百度等企业...
无人驾驶在人工智能和互联网技术发展下迅速成为汽车行业焦点,但随着时间推移,无人驾驶...
证券时报·数据宝筛选出关于中国芯片、光刻机、国产操作系统、手机射频、电容电阻、EDA等...
中国科技近年来发展迅速,引人自豪。但...
消博会指的是消费类展览会,展品广泛,涉及各类消费品。哪些更值得去?...
芯片品牌大全为你展示芯片行业的大部分知名品牌,如果你想了解芯片品牌,这里不容错过...
DDR 学习时间 (Part I - OS1):DDR IP 开源实现 DDR5 PHY 数据通路
DDR 学习时间 (Part I - OS1):DDR5 PHY 开源实现详解
本期介绍的是 Github 上一个由 Ain Shams University (ASU) 学生完成并由企业 Si-Vision 赞助的 DDR5 PHY 数据通路开源项目。该项目专注于 DFI 5.0 接口的 DDR PHY 实现,涵盖写操作、CRC 校验和相关 DRAM 命令。
利用 System Verilog 开发,此项目经过 DC 综合及 Formality 验证,并在 FPGA 上验证功能。PHY 的核心功能包括生成 DQS 信号、pre-amble、inter-amble 和 post-amble,以及在 DFI 时钟多倍频率模式下,实现 MC DFI 数据相位到 PHY 时钟域的转换。此外,该项目还实现 CRC 校验,为写数据计算并附上 CRC 值。
PHY 与 MC 和 DRAM 的连接结构如图所示。项目设计包含五个关键模块来实现上述功能:Frequency ratio、Command Address、Write Manager、在线客服java 源码Write FSM 和 CRC 模块。
Frequency ratio 模块根据 dfi_freq_ratio 信号指示的频率比,将 MC DFI 多相位信号转换到 PHY DFI 接口。Command Address 模块将 DFI 的 dfi_address 和 dfi_cs 信号转换为 DRAM 上的 CA 和 CS 信号,并支持 MR write 和 DRAM write 命令。Write Manager 模块则将 DFI 的 dfi_wrdata 信号转换为 DRAM 的 DQ 信号,并发送 CRC 值。Write FSM 模块负责状态跳转,实现 Preamble/Interamble/Postamble 与有效的写信号和 CRC 信号。CRC 模块使用 DDR5 ATM-8 多项式生成 CRC,支持 x4/x8/x device。
项目文件结构全面,包含文档、RTL 代码、Testbench、FPGA 实现(报告、代码、Testbench、比特流、XDC)与综合脚本与报告。文档涵盖整个项目的 Presentation、架构设计、设计实现、时序图和 FPGA 实现。完整的 RTL 代码包括顶层与各子模块,Testbench 覆盖多种场景,包括不同的 Preamble 长度、DRAM 器件和 CRC 使能情况。
项目实现功能有限,仅包含 DDR5 PHY 的数字写数据通路,未包括 Pad 和 delay lane 等模拟模块。验证主要通过灌激励观察波形验证基本功能,未使用 DRAM、DFI model 或 VIP。项目文档和完整代码与 Testbench 提供了类似项目有用的参考。使用 TSMC nm 工艺进行综合,适合学术性实现,但与产业界相距较远。
总结,本期介绍了 DDR5 PHY 的开源实现项目,项目展示了从设计到验证的网页源码如何下载全面流程,提供了 FPGA 实现参考。后续将探索更多 DDR IP 开源实现,为更完善、工业界使用价值更高的 DDR IP 项目打下基础。
GPGPU架构学习仓库导航
《GPGPU架构学习仓库》专栏文章提供导航,涵盖NVIDIA与AMD的GPGPU架构概览、CL级Simulator、CUDA、RTL开源项目等内容。
NVIDIA架构自年第一代Tesla系列开始,历经年产品迭代,至今已包括最新发布的Hopper。1.5年前,为理解年新发布产品,文章作者进行了全面调研。此专栏旨在通过回顾NVIDIA GPU架构历史,加深对Hopper架构的深入理解。
AMD的GPGPU架构从年的GCN1到年的CDNA3,共历时八代,文章综合了各代架构发展的资料,供读者参考与讨论。
《AMD gem5 APU Simulator》介绍使用Machine ISA设计GPGPU模拟器的方法,帮助读者了解GPGPU模拟设计的思路与过程。
文章探讨了NVIDIA CUDA的发展与支持,旨在提升读者对GPGPU架构细节的理解与CUDA Kernel优化能力。
开源项目G,基于年CC1.0设计,使用VHDL编写,可在FPGA上运行,作为学习GPGPU架构实现的资料。
MIAOW项目尽管已有7年未更新,但仍作为学习GPGPU架构实现原理的参考资料。
HBM(High Bandwidth Memory)相关文章将普及其基础与发展史,有助于理解和消化当前以及未来GPGPU架构。
NVLink起源于HPC超算需求,但在不断增长的LLM训练推理任务推动下,持续发展并迭代。文章提及Infinity Fabric与PCIe技术在相关领域的讨论。
本专栏持续更新,提供更多有关GPGPU架构的知识与资源。
verilator安装使用
Verilator,小纸片注入源码一个开源的Verilog模拟工具,其主要用途是验证RTL设计。要使用它,首先需要安装。以下是详细的安装步骤:
从Verilator的官方网站开始,官网提供了包管理器安装教程。我们这里推荐采用一生一芯推荐的版本,即5.,以确保兼容性和稳定性。
在安装前,确保已安装所有必要的依赖包,这包括但不限于各种库和工具。这些基础组件的安装是verilator成功运行的关键。
接下来,利用git克隆你的项目代码。当代码被下载到本地后,会在桌面生成一个名为"verilator"的文件夹。进入这个文件夹,然后开始编译,特别指定使用5.版本。
编译完成后,检查安装的版本,以确认verilator已正确安装。这一步至关重要,因为版本不匹配可能会影响模拟的准确性和效率。
最后,安装一个波形查看器,如GTKwave,它能帮助我们更好地理解和分析模拟结果。这个工具与verilator的配合,将极大提升调试和验证的效率。
通过以上步骤,你将能够成功地安装并使用Verilator进行RTL设计的验证工作。
RTLH-PCIE网卡ARM驱动构建
最近在探索 Linux 内核中网口部分的代码,特别关注的是 PCIe-Switch/Eth 控制器,它利用 MSI-X 中断和 DMA 完成数据包的接收与发送。本次驱动的构建采用 RealTek 的 RTLH-PCIE Ethernet Controller,该控制器内部集成了一对 MAC 和 PHY,实现单个 // 网络接口。
本次驱动的构建平台是使用 RK 实现,数据收发通过 DMA-PCIE 进行。为了全面理解 PCIe 网卡驱动的注册和数据包处理流程,我们参照芯片手册构建了一套 RTLH 的驱动代码。
编写 PCIe 驱动的首要步骤是识别总线下设备的唯一性标识信息,即 PCIe 配置空间中的设备 DeviceID 和厂商 VendorID。通过使用 lspci 工具箱读取 PCIe 网卡前 字节的配置字,确定关键信息。工具箱获取的信息如下:Class 为 的设备是 RK 内置的 PCIe-RC 节点,VendorID:0x1D、DeviceID:0x;Class 为 的设备是外置 PCIe 网卡配置空间的信息,VendorID:0xEC、DeviceID:0x。
接下来,构建标准 PCIe 设备驱动框架,该框架包含基本的注册和初始化步骤。PCIE 设备的注册使用 module_pci_driver 结构体,其入参为 pci_driver 结构体。在内核初始化过程中,相应的驱动被注册到内核中。
在完成基础驱动框架后,接下来需要参照芯片手册构建网卡驱动的特定部分。
在完成基础驱动框架和参照芯片手册构建特定部分之后,我们的 RTL 的驱动已经具备了初步可用的能力,在 PCI 驱动、ifconfig 等操作下,可以正常识别出该驱动并将其暴露在 sysfs 中。
PCI 驱动注册后,在最后一个驱动列表中即可看到注册的驱动。ifconfig 操作下可以看到获取的 MAC 地址与通过 MMIO 读取获取到的 MAC 地址一致。
此外,驱动还需要实现中断处理和网络通信包的上送,包括实现 MSIX 中断注册和测试。内核网口测试中,注册 net_device 结构体实现内核网口控制,引入 NAPI 机制提高网络通信效率。测试显示,当打开内核收包功能并触发大量数据报文传输时,会触发内核的 NAPI 机制进行数据包收取。测试包括 ARP 收包、端口计数功能等。
最后,代码开源部分已准备就绪,等待部署到 gitee 平台。
FPGA千兆网 UDP 网络视频传输,基于RTL PHY实现,提供工程和QT上位机源码加技术支持
前言:
探索使用FPGA实现千兆网UDP视频传输,本文采用基于RTL PHY芯片的设计,提供完整工程源码与QT上位机源码。本文主要针对FPGA开发者的实践指南,特别强调UDP协议栈的实现与优化。
设计思路框架:
本文设计的FPGA系统基于RTL PHY实现千兆网UDP视频传输,包含视频源选择、OV摄像头配置、动态彩条生成、UDP协议栈实现、IP地址与端口配置、QT上位机显示等功能。通过顶层的宏定义选择视频源,支持动态彩条与OV摄像头。
视频源选择与配置:
系统提供两种视频源选择:一是使用廉价的OV摄像头模组;二是内置动态彩条模拟视频,适用于无摄像头或无法接入摄像头的情况。选择逻辑通过顶层宏定义实现,默认选择OV摄像头。
OV摄像头配置与采集:
支持x分辨率的OV摄像头配置,输出RGB或RGB格式的视频数据,配置通过verilog代码模块实现。系统集成摄像头配置与视频采集功能,为视频传输提供稳定数据源。
动态彩条生成:
动态彩条模块可配置不同分辨率与参数,用于无摄像头输入时生成模拟视频数据。动态彩条通过FPGA内部产生,提供灵活的视频源选择。
UDP协议栈实现:
系统采用非开源的UDP协议栈,与Tri Mode Ethernet MAC三速网IP配合使用。协议栈提供用户接口,简化UDP协议实现,支持接收校验和检验、IP首部校验和生成、ARP请求与响应等功能。
数据缓冲与发送:
使用数据缓冲FIFO组实现UDP数据的高效传输,通过AXI-Stream接口与Tri Mode Ethernet MAC互联,支持时钟域与数据位宽转换,确保高效数据传输。
IP地址与端口号修改:
协议栈允许用户修改IP地址与端口号,适应不同网络环境的配置需求。
Tri Mode Ethernet MAC与RTL PHY移植:
设计使用Xilinx官方的Tri Mode Ethernet MAC IP核,针对RTL PHY进行移植优化,包括时钟域转换与数据位宽适配。移植注意事项包括版本一致性、FPGA型号调整、DDR配置与引脚约束修改等。
QT上位机与源码提供:
系统集成与QT上位机通信的用户接口,提供兼容x与P分辨率的QT上位机源码,支持视频抓取与显示功能。用户可根据需求修改代码以适应更高分辨率。
工程移植与调试:
本文提供详细的工程移植指南,包括vivado版本、FPGA型号、资源消耗与功耗分析。针对不同vivado版本、FPGA型号与DDR配置的移植策略,确保工程在不同环境下的稳定运行。
上板调试与演示:
本文指导开发板的连接与调试步骤,包括开发板与电脑的物理连接、IP地址配置与验证过程。通过ping测试确保网络连通性,提供静态与动态演示视频,直观展示视频传输流程。
福利与获取:
本文提供工程源码的获取方式,包括某度网盘链接分享。用户需通过私信或指定方式获取源码文件,以适应不同需求与环境的FPGA千兆网UDP视频传输项目。
优雅地做数字设计!开源免费轻量级vscode+iverilog+gtkwave仿真框架全流程手把手搭建教程!
为了跳出Vivado图形界面的舒适区,我尝试了使用轻量级的iverilog编译器和gtkwave波形工具,并在VSCode中进行数字电路设计的全流程开发教程。 对于那些:希望避免安装大型软件如Vivado或Modelsim,尤其是对开源免费的iverilog感兴趣的课程作业者;
初学者,想要专注于verilog硬件描述语言编程,无需过多工具调试,仅需查看波形;
寻求更高效、简洁仿真流程的设计师,无论对现有工具是否满意。
首先,下载iverilog。在Windows上,访问bleyer.org/icarus,确保勾选添加到PATH。在Linux中,各发行版都有,如Ubuntu、Arch Linux和OpenSuse,自行查找安装。 接下来,检查环境安装是否成功,通过命令行输入相关指令,显示帮助信息即安装成功。若遇到问题,可以寻求帮助或私信咨询。 在VSCode中,创建一个舒适的开发环境,安装支持SystemVerilog的扩展。将工作目录设置为包含rtl和sim文件夹的子目录,并根据个人喜好组织文件结构。样例项目可以从我的GitHub获取,如移位寄存器实现。 仿真流程的实现从编译开始,使用iverilog的基本命令,通过终端执行。在tb文件中加入dumpfile代码生成波形文件,然后通过vvp运行查看结果或gtkwave查看波形。建议创建一个脚本文件,自动化这些步骤,便于调试和修改。 脚本文件根据不同操作系统编写,只需根据tb模块名称和波形文件名进行调整。这样,无论何时新建工程,只需设置目录和修改脚本,就能快速启动仿真过程。 尽管整体环境轻量且便捷,但仍需注意gtkwave在Win可能的显示问题和模块查看限制,可能需要进一步研究dumpvars命令来优化。本文提供了一个初步的解决方案,但还有优化空间。花多元,手搓迷你主机,可运行Ubuntu和Android系统,全开源了
探索低成本迷你主机的魅力
这款迷你主机以泰山派开发板为核心,不仅是一款创新的PC设备,还具备扩展功能,可变身手机。它的初衷在于通过实践Linux开发,提供学习乐趣和便利。硬件设计与亮点
包含两块扩展板:EXP扩展板提供额外接口,如USB、SATA和网口,采用SL2.0A HUB芯片实现1转4功能;IO扩展板则增加了散热风扇、扬声器和GPIO接口。
通过精心设计的散热和接口布局,确保稳定性和扩展性。
适配LCD屏幕,可通过SPI接口进行初始化,支持触控功能。
硬件实现与注意事项
USB3.0接口需修改为USB2.0以避免与SATA冲突,同时注意选择正确的硬盘尺寸和协议。
GMAC网口使用RTLF芯片,按照官方扩展板设计连接。
软件部分
STM驱动简单易懂,液晶屏通过spi初始化。
Android系统可与Ubuntu..6编译,支持外接显示器和触摸驱动的自定义。
组装与学习历程
作者在星火计划中获奖后,花费两个月业余时间完成了这款迷你主机,经历从初识Linux的挑战到深入研究的过程。开源精神与感谢
作者感谢立创开源平台、吴工和陈工的支持,鼓励更多人加入开源生态,共同进步。