2202_75442154
码龄2年
关注
提问 私信
  • 博客:14,755
    14,755
    总访问量
  • 29
    原创
  • 62,683
    排名
  • 99
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2022-11-24
博客简介:

2202_75442154的博客

查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    184
    当月
    1
个人成就
  • 获得127次点赞
  • 内容获得3次评论
  • 获得154次收藏
创作历程
  • 25篇
    2024年
  • 1篇
    2023年
  • 3篇
    2022年
成就勋章
TA的专栏
  • PCIE学习
    1篇
  • 软件无线电
    3篇
兴趣领域 设置
  • 编程语言
    c++
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

一个计算频率的模块

原理是我们已知频率为FRQ的时钟clk每1/20秒翻转一次,这样得到的每次上升边缘就是1/0秒。被测试的时钟meas_clk在1/10秒内数数,数到到多少,之后再传到clk时钟域,输出出来。另外设置了1/4秒的看门狗,当时meas_clk丢失,超过1/4秒没有更新,就触犯看门狗电路自动更新输出0.当外部meas_clk有频率信号接入时,每1/10秒就会输出更新一下时钟计数,这里的计数是输入meas_clk的1/10。可以在编译时候有跨时钟区域的警告,可以通过设置虚假路径来解决。
原创
发布博客 2024.11.22 ·
389 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件

用户使用这个三个文件生成BOOT.BIN时候往往用SDK的用户界面,分别选择这三个文件之后生成。其实这种方法实际上是先生成了一个.BIF文件,这个BIF记录了上述三个文件的路径,以及处理器的型号等。这里我们可以用文本打开.BAT文件和BIF文件,修改文件路径,设置输入文件和输出文件boot.bin的路径。另外在批处理文件里看到的ping指令,实际就是延迟几秒,让用户看到运行结果。另外bootgen.exe的运行需要用到一些动态库,我也挨个挑选出来放在bootgen.exe所在目录。
原创
发布博客 2024.11.22 ·
269 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

上电产生复位信号的verilog代码

【代码】上电产生复位信号的verilog代码。
原创
发布博客 2024.11.09 ·
140 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

产生周期脉冲的代码

如果clk时钟是100M,CNTR参数设置为100*1000*1000时候,每秒产生一个脉冲。
原创
发布博客 2024.11.09 ·
139 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

发一个VERILOG描述的单时钟的FIFO

【代码】发一个VERILOG描述的单时钟的FIFO。
原创
发布博客 2024.10.09 ·
169 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

AD原理图生成引脚约束文件的小工具

前端时间做的,先上代码,以后有空解释用途。下面这个是将每行进行排序的小工具。
原创
发布博客 2024.10.02 ·
129 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

发一个FPGA串口显示的小工具

后续有空再发一下怎么用的说明。
原创
发布博客 2024.09.11 ·
377 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

PCIE两次BAR之间读间隔是2~3uS

下图是反复进行BAR0寄存器轮询的LOG,可见延迟应该在2~3uS。
原创
发布博客 2024.09.04 ·
160 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

PCIE调试记录 有关H2C的速率分析

PCIE的速度分析记录
原创
发布博客 2024.08.27 ·
219 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

PCIE驱动学习之5:UL读接口分路代码

【代码】PCIE驱动学习之5:UL读接口分路代码。
原创
发布博客 2024.07.25 ·
95 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

驱动学习之12 控制pcie_ram_to_wr的模块

这里看到逻辑还是很简单的,首先是请求,之后状态机运转允许开始写操作后,就读RAM将数据读走发出。从这篇就开始正式写自己的驱动代码。这个BLOG写一段将FIFO里面内容根据指令写到指定的PC内存地址的代码,调用的是pcie_ram_to_wr这个代码。2,要接收上面模块给的传输命令,上面模块给出要传输的开始地址和长度,这个控制模块将大的数据块分成小的一点点传输给PCIE。1,首先是有要发送的数据接口,我们这里不用RAM接口用FIFO接口。3,要有控制这个pcie_ram_to_wr的接口。
原创
发布博客 2024.07.23 ·
251 阅读 ·
5 点赞 ·
0 评论 ·
1 收藏

PCIE驱动学习11 尝试实现DMA从板卡写PC操作

之前已经实现到了BAR0寄存器的读写。PC对PCIE板卡的控制就是以BAR0的寄存器作为窗口的。我们接下来分析驱动中从FPGA写到PC的实现。简单写一下自己之前就总结出来的几个知识点:1,PC访问板卡通过BAR0寄存器。2,板卡自主的搬运数据。3,板卡搬运数据用的地址是32位,用户空间地址64位,这需要在驱动程序里面对应起来。4,我们在驱动里获取的32位的地址,通过对bar0寄存器的写操作告知FPGA。我们实验中读动作的产生也是通过操作BAR0寄存器来产生。
原创
发布博客 2024.07.19 ·
437 阅读 ·
5 点赞 ·
0 评论 ·
12 收藏

驱动学习之11 去掉了UART相关部分的驱动

【代码】驱动学习之11 去掉了UART相关部分的驱动。
原创
发布博客 2024.07.18 ·
127 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

PCIE驱动学习 最基本的一个PCIE驱动项目

在GITHUB上搜PCIE驱动找到这个最简单的,也可以编译过的。里面只有一个C文件和一个makefile。下载下来直接make就可以编译过。可以基于这个驱动做些练习。
原创
发布博客 2024.07.17 ·
382 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

驱动设计学习之9精简驱动代码

抓了一下ILA波形发现写寄存器在10个时钟单位 读寄存器在100个时钟单位这样。下面这是精简的驱动代码,
原创
发布博客 2024.07.17 ·
200 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

使用SPI口配置的VERILOG代码

【代码】使用SPI口配置的VERILOG代码。
原创
发布博客 2024.07.13 ·
182 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

PCIE驱动学习之8 对几个基本的verilog模块的分析

PCIE模块出来的是AXIS接口,这里面转成了UL接口。这个UL接口是FPGA逻辑内部反复出现大量使用的,我琢磨UL应该是作者规定的USER LOCAL 的缩写:用户本地接口。注意这个模块是双向的:从PCIE收数据也发数据跟PCIE,发数据给用户也从用户那里收数据给PCIE发出。第二个时钟域的输出就是第一个时钟域计数器的输出,这个输出保证了使用格雷码进行了时钟域的穿越。这里模块管理着接收的处理。可以发送给PC数据请求,也可以收到数据输出,带地址的形式输出出去(在这个设计中给了fifo_mem_tx模块)。
原创
发布博客 2024.07.05 ·
534 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

PCIE驱动学习之7

五 7月 5 11:00:41 2024] xtrx: buf[11]=ffb40000 [virt 000000001fae67c0] => ffb40fff。[五 7月 5 11:00:41 2024] xtrx: buf[15]=ffb00000 [virt 00000000cf0d6251] => ffb00fff。[五 7月 5 11:00:41 2024] xtrx: buf[17]=ffae0000 [virt 00000000b1ca9eba] => ffae0fff。
原创
发布博客 2024.07.05 ·
723 阅读 ·
6 点赞 ·
0 评论 ·
20 收藏

PCIE驱动学习之6 FPGA中相关中断相关接口的分析

在驱动学习之4,一起看了在驱动层中断的设置以及处理中断处理函数的设置。这里我们简单看看FPGA中关于中断部分。上图是用户模块的接口。这里面的输入对应的PCIE模块的输出,上面的输出对应PCIE模块的输入。上面的模块就是PCIE的模块具体的介绍我们看看UG477。首先我们看RTL图,找到中断相关的接口。
原创
发布博客 2024.07.05 ·
169 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

PCIE驱动学习之5

rx在申请缓冲区时候还调用了xtrx_update_rxdma_len这个函数,我们看到实际就是写入了长度给FPGA的寄存器。这里看到根据硬件GP_PORT_RD_HWCFG寄存器确定版本号并确定是进行单独一个长度寄存器的设置还是甚至全部的长度寄存器。上述分析似乎能看到驱动和FPGA之间的交互,但是没有看到用户的应用程序是如何跟驱动交互的。我们要在FPGA里面实现FPGA自主的收发,就要告诉它一组收发的地址和长度。这里的 xtrx_readl和xtrx_writel是读写FPGA内部的寄存器的。
原创
发布博客 2024.07.04 ·
444 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏
加载更多