- 博客(70)
- 资源 (19)
- 收藏
- 关注

原创 AXI Quad SPI读写Flash做远程升级
目录简介AXI Quad SPI IP设置寄存器说明AXI Quad SPI支持的通用命令读flash id读flash 数据擦除扇区写flash 数据注意事项简介 本文简要介绍xilinx 7系的AXI quad spi IP核的使用,主要用于读写boot用的flash(n25q128为例)做在线升级用。本文会略去很多细节,主要是因为我也没有搞得很懂,其次是很多细节可以在其他博客找到介绍。目前为止,我只尝试了使用axi lite接口配置寄存器...
2021-11-06 13:03:47
13918
26
原创 Precoding
它是一种利用前后码元相关性,而在很大程度上避免误码扩散的编码技术。此顺序的基本原理是,在具有一个或两个retimer的Link中,不同的Link段可能具有开启或关闭预编码。让我们考虑一个示例系统,在根端口和端点之间有一个计时器说明这一点。在上游方向上,端点在它的发送通道上有预编码Retimer Receiver需要它,但是从根端口到根端口的Retimer Link段已经预编码关闭在其接收端不需要预编码。
2025-04-23 11:18:53
138
原创 pcie 8b10b 加扰scramble
加扰在mac中完成,是可选关闭的,8b10b编码一般在phy中完成。加扰的作用是将序列伪随机化,将数据变化周期变成,让能量分散在更广的频谱上。,如果mac发送这串数据,经过8b10b编码后,它将以间隔10b的方式重复发送,能量将会聚集在某个频点附近,从而造成严重的EMI噪声。我们需要在编码前将数据与一串伪随机的数据做异或,pcie gen12中加扰就是与一串216bit的数据进行异或,那么每8b重复一次的数据就会变成每216bit重复一次,能量就分散开了。PCIe加扰使用了1个LFSR实现。
2025-04-23 10:56:47
179
原创 dc balance
DC平衡仅用于128b/130b编码,且只跟踪ts1和ts2的平衡。DC平衡 = 已发送的1的数量 - 已发送的0的数量。每个lane必须独立跟踪,并且收发方向至少要跟踪511位的差。计数器在计数满511时,应饱和而非反转。例如,检测到513bit的差异时,跟踪到511时饱和,如果未来将其减少2,那么计数器变为509。DC平衡置0条件。
2025-04-22 15:23:49
365
原创 vcd波形转仿真激励
我们使用vivado的ila抓取波形后,常常希望用该波形作为激励参与仿真。稍微复杂的项目中手动输入的工作量巨大,几乎是不可能采取的方式。我的方法是保存ila波形为vcd格式文件,用python解析vcd文件,转换成仿真激励的代码。替换成真实clk,把不需要的force语句删除(选择某个单词,全选,全选当前行,删除)。值得注意的是,信号名称有时候是1个字符,有时候是2个字符。简单说,这个代码就是提取了信号名称,计算时间偏移。开头的内容,找到信号名字和位宽。本方法我已应用许久,还是比较好用的,推荐给大家。
2025-03-25 20:47:41
265
原创 wsl2使用备忘
Port 22 # 端口号 ssh服务默认都是22,设置成22的话,ssh连接的时候不用在指定 -p。PasswordAuthentication yes # 是否允许使用密码登录。
2025-02-22 10:39:09
275
原创 迈洛思Mellanox MCX455A-ECAT 100G IB卡驱动安装
参考链接 https://zhuanlan.zhihu.com/p/74082377。
2025-02-12 21:52:52
774
原创 夜空中最亮的星
00:52.000] 我祈祷拥有一颗透明的心。[01:10.000] 每当我找不到存在的意义。[02:30.000] 我看见划分开黑夜的黎明。[03:06.000] 我祈祷拥有一颗透明的心。[03:24.000] 每当我找不到存在的意义。[00:36.000] oh夜空中最亮的星。[01:03.000] 给我再去相信的勇气。[01:19.000] oh夜空中最亮的星。[01:56.000] oh夜空中最亮的星。[02:23.000] 我要破碎有你的梦境。[02:35.000] 我看见清澈明亮的你。
2024-12-24 15:07:40
382
原创 2.6 Ordering and Receive Buffer Flow Control
流控FC用于防止接收缓存溢出,和满足2.4章节提到的序要求。注意,流控机制是由请求者跟踪链路另一端的可用缓存/队列空间实现的。如下图所示。流控作用于链路两端,并非端点到端点。流控不意味着请求已经到达它的最终点。流控与数据完整性机制是正交的(可以理解不相干),数据完整性是为了在发送和接收器之间实现可靠的信息交换。流控可以视为TLP流从发送器到接收器是完美的,因为数据完整性机制保证了损坏和丢失的TLP通过重传机制被纠正,见3.6章节。每个VC通道都有独立的流控credit池。
2024-12-24 14:02:25
628
原创 7.9.17 Readiness Time Reporting Extended Capability
在指示的情况下,允许软件在等待此功能中公告的时间后向设备或功能发出请求,并且无需等待其他地方所需的(更长)时间。综上,RTR的功能是告诉软件,该设备复位后,多长时间就能准备好,不需要额外等。或者设备有不同的模块,在不同的配置后,再复位,设备准备就绪的时间是不一致的。如果上述条件不适用,则Function的行为不由RTR功能去诶多功能,必须按照其他地方定义的方式做出响应(包括,例如 无响应或者具有配置状态的响应)。只要以相同方式运行的同一设备没有更改,软件就可以缓存此功能的值,并使用这些缓存的值。
2024-09-06 17:10:25
886
原创 VC_Spyglass_verdi_UserGuide T-2022.06 中文翻译
点击Verification下的CDC, CDC/RDC, Lint,在data view视图中会显示检查的概要情况。这个界面下可以选择和两种视图。如果是CRC/RDC检查的消息摘要,还有多个导出按钮。
2024-07-18 15:27:29
2332
原创 PCIe协议翻译【第三章】【Data Link Layer Specification】
数据链路层是事务层和物理层之间的中间组件。它的主要职责是提供可靠的机制,用于在链路上的两个组件之间交换事务层数据包(TLP)。
2024-07-16 14:39:39
1175
原创 PCIe总线的序
假设A和B都给对方连续发送NP报文导致对端NP buffer满了,只有本地cpl发送出去了,本地np buffer里的NP才会减一,buffer才会空一点,对面的NP才能再发送一个过来。完成报文不能穿越写。如果完成报文能穿越写,就可能先读到flag为1,但此时写数据还未更新,软件取数据就出错了。生产者写了一笔数据到内存,又写了1个flag=1到另一个内存地址,若后一个写穿越了前一个写,软件轮询到flag后可能前一个写还未到达,软件就会取到未更新的数据。完成报文和完成报文之间没有序的要求,可以相互穿越返回。
2024-07-12 14:14:10
1165
原创 bat调用anconda环境运行python
右键Anaconda Prompt (anaconda3)打开属性,找到目标中的内容。拷贝出 “/K” 后面的字符串,编写如下的bat文件。
2023-07-19 12:38:29
1497
原创 xilinx 7 series GT COMMON
这一点可以看源码,追溯到gtpe2 channel原语上,看到TXSYSCLKSEL为2'b00,就表示用的pll0,当然2bit选择不同位置,具体看手册就明白了。那么我就改变一下思路,先设置ip和global模式,再把它的is manage属性去掉,手动修改aurora ip核的gtp原语上的TXSYSCLKSEL和RXSYSCLKSEL为2'b11,选择pll1输入,然后将gt common的pll1输出到aurora ip核上的pll1,把aurora ip核上的pll0固定接0。
2023-04-12 23:04:17
2313
13
原创 ubuntu 18.04
1.mv /etc/apt/sources.list /etc/apt/sourses.list.backupvi/etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse.
2022-06-17 09:19:24
463
原创 zynq linux 相关
1.kernel源码https://gitcode.net/mirrors/xilinx/linux-xlnxhttps://gitcode.net/mirrors/xilinx/linux-xlnx2. uboot源码https://gitcode.net/mirrors/xilinx/u-boot-xlnxhttps://gitcode.net/mirrors/xilinx/u-boot-xlnx3.gcc交叉编译器Arm GNU Toolchain | GNU-A Downloads – Ar
2022-02-16 23:01:40
525
原创 7系列XADC调试记录
1.XADC需要供电1.8V,AGND需要可靠接地,不能接电容。2.仿真时需要添加design.txt文本到仿真工程目录下,而非design sources。不然会出现仿真eoc soc常低现象。3. axi lite接口和drp接口查看手册不一样,前者pg019后者ug480,两个需要结合起来看。pg019描述了axi 寄存器地址,ug480描述如何换算。4.axi lite接口时,0x200地址是温度,计算value*503.975/65535-273.15。0x204是vccint,计算v
2022-02-09 16:23:32
947
原创 Sublime SystemVerilog安装
1.下载sublime sublime对个人是免费使用的。下载地址是:Download - Sublime Text2.安装插件①ctrl shift + P调出控制台,输入install,选择Install Package。②安装好后,重复①,进入安装插件界面。③对verilog开发,常用的插件有:Verilog, system Verilog,Verilog gadget,Verilog-automatic,alignment,④切换中文。安装插件chineseLo...
2022-01-01 16:02:41
1588
2
原创 axi4
awlen 突发传输的次数。burst len=awlen+1awsize 突发大小。每拍突发传输的字节数 1.2.4.8.16.32.64.128awburst突发类型 00fixed 01 incr 10wrap 11rsvwstrb写数据有效字节bresp写响应,写传输的状态
2021-07-27 14:46:40
287
原创 vivado利用write_project_tcl重建工程
vivado工程动辄几百MB,用git管理所有编译文件是极其浪费和不方便的。以下描述讲解如何用write_project_tcl生成gen_prj.tcl,在用sourcegen_prj.tcl生成完整工程。 我常用的目录结构如下:ip_core里放所有IP生成文件,包括bd文件。在生成ip时是可以更改location的,你可以新建ip时就将location修改到ip_core下,也可以建完工程后,在vivado工程中移除该ip,再将该ip文件夹拷...
2021-07-14 00:20:24
3690
原创 quaruts/vivado 执行tcl自动添加编译版本信息
1.quartus#!/usr/bin/tclshset d [clock format [clock seconds] -format {%Y-%m-%d %H:%M:%S}]puts stdout $dpost_message -type critical_warning "compile time is: $d"set dat [clock format [clock seconds] -format {%Y%m%d}]set tim [clock format [clock .
2021-06-20 15:34:18
1656
原创 右键添加sublime快捷方式
1.使用python添加注册表key。# -*- coding: utf-8 -*-"""Created on Sat May 1 00:18:14 2021@author: weiyi"""import osimport win32apiimport win32conDIR = []DIR.append(u'C:\Program Files')DIR.append(u'C:\Program Files (x86)')DIR.append(u'D:\Program Fil
2021-05-01 00:46:39
161
1
原创 AD打印位号图
1.输出gerber文件。2.选择顶层的丝印,Paste和Solder层。OPS+Keep。点确定。3.打印预览时选延伸,根据PCB形状纵向或者横向打印即可。4.底层打印时,OPS+Keep+镜像即可。
2021-03-27 13:34:15
2891
原创 anaconda修改国内源
1.打开/创建%APPDATA%\pip\pip.ini2.修改内容[global]# trusted-host = mirrors.ustc.edu.cnindex-url = https://mirrors.ustc.edu.cn/pypi/web/simple
2021-03-14 10:45:09
418
原创 Python CAD
1.隐藏图层 doc1 = acad.ActiveDocument doc1.Utility.Prompt("AutoCAD Win32 zdt deal\n") print(doc1.Name) acad.ActiveDocument.ActiveLayer = acad.ActiveDocument.Layers.Item("面积系数") acad.ActiveDocument.ActiveLayer.LayerOn =False print(a...
2020-12-26 12:01:34
283
原创 system verilog 三段式状态机和interface
1.结构体和C语言类似,system verilog定义的package,也是一个sv文件,需要被工程当作文件一样添加。如果是inclue的文件,要在工程中设置搜索路径,否则在引用时要用相对工程启动文件的路径。在其他sv文件中,"import dma_define::*;"在最前面添加即可。package dma_define;//M9K max 256*36 72bit//130bittypedef struct packed { logic sop ; .
2020-11-02 22:21:19
1940
原创 petalinux zynq7000从安装到PS加载PL bin文件
1.安装vivado 2019.1,安装petalinux 2019.1。其他版本同理,去DocNav下看UG1144,找到对应版本支持的linux系统。Ubuntu Linux Workstation/Server 16.04.5, 16.04.6, 18.04.1,18.04.02 (64-bit)2.vmware安装ubuntu 16.04虚拟机,安装VM ware tools,以便...
2020-03-22 11:21:28
3006
4
带fifo的Verilog uart模块(单.v文件)
2018-04-18
安卓TCP client和TCP sever 开发示例
2015-12-11
stm32f+ucos+uip+ds1307+dh11+ili9341
2015-12-11
Verilog IIC读MPU6050-融合滤波-单轴-代码-随笔
2016-09-03
MAX14830参考配置代码
2018-04-14
HC05-蓝牙设置上位机-开放源码v1.1
2016-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人