自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 基于XC7A35T的DDR3 IP核使用

本文介绍了在AX7035B开发板上实现程序运行于DDR的配置方法。由于片上资源有限,需通过QSPI接口从Flash加载代码到DDR。关键点包括:MIG IP配置时需注意sys_rst引脚不能直接连接aresetn,应使用200MHz内部PLL时钟;在Vitis开发中,运行于DDR需额外开发bootloader程序,并修改应用程序链接脚本将代码段定位到DDR地址空间。下载时需勾选格式转换,编译生成elf文件即可,无需担心地址警告提示。具体实现可参考相关开发教程。

2026-01-06 19:36:03 255

原创 XC7A35T-2FGG484I 资源不够同时用DDR3和千兆网

摘要:设计采用4个AXIGPIO、1个AXItimer、1个串口、1个千兆网IP和1个DDR3IP,导致FPGA资源不足(需22696个SliceLUT,仅20800可用)。DRC错误提示建议分析综合结果或改用更大器件。资源有限的FPGA更适合单一功能场景,不宜搭载过多外设。

2026-01-05 14:19:23 256

原创 Altium Designer盲/埋孔设计

盲/埋孔设计

2025-12-02 15:02:31 284

原创 Altium Designer背钻(Back Drilling)设置

Altium Designer背钻(Back Drilling)设置

2025-12-02 14:59:18 373

原创 鲁迅:这个与那个

一 读经与读史【1】一个阔人说要读经【2】,嗡的一阵一群狭人也说要读经。岂但“读”而已矣哉,据说还可以“救国”哩。“学而时习之,不亦说乎?”【3】那也许是确凿的罢,然而甲午战败了,——为什么独独要说“甲午”呢,是因为其时还在开学校,废读经【4】以前。我以为伏案还未功深的朋友,现在正不必埋头来哼线装书。倘其咿唔日久,对于旧书有些上瘾了,那么,倒不如去读史,尤其是宋朝明朝史,而且尤须是野史;或者看杂说。现在中西的学者们,几乎一听到“钦定四库全书”【5】这名目就魂不附体,膝弯总要软下来似的。其实呢,书的原式是改变

2025-08-26 18:42:32 380

原创 急脾气的人

走路看到前面有人磨磨蹭蹭的就想去踢他一脚,让他让开!看到别人干活磨磨蹭蹭的就来气!

2025-08-06 08:46:18 126

原创 信号回流问题带来的噪声干扰案例

摘要:在测试SOC芯片时遇到模拟信号干扰问题,排查发现干扰源来自下载器。初始误判为电源纹波问题,经多次调整滤波电容和开关频率无果。最终确认干扰通过示波器表笔回流导致,测试发现:1)使用接地台式机时干扰消失;2)将稳压源机壳与输出地短接可减小干扰;3)断开示波器地线后干扰彻底消除(但会产生118V危险电势差)。解决方案为:使下载器可靠接地或使用台式机测试。该案例揭示了测试系统中接地路径对信号测量的关键影响,并提醒注意浮地测量的安全风险。(149字)

2025-07-01 20:37:34 774

原创 DAC61416带载测试

摘要:DAC负载测试显示,在±10V量程下,-5V至+5V跳变时间为?μs,-10V至+10V为?μs。码值配置存在轻微偏差。该DAC支持恒流/恒压输出,特性曲线绘制代码通过MATLAB实现,计算不同条件下的功率(p)和电流(c)参数,并使用mesh函数可视化三维数据。测试结果和代码可用于分析DAC在动态负载下的性能表现。

2025-07-01 20:19:27 158

原创 znyq 串口中断调试

需要说明的是函数 XUartPs_InterruptHandler才是真正的中断函数,赛灵思已经帮我们写好了,直接使用即可,里面有对中断源的判断,以及数据的接收处理,UART0_InterruptHandler是回调函数,需要我们自己实现,下面我描述一下调用逻辑,首先是对串口进行初始化配置,包括波特率,工作模式,触发阈值等,然后是对中断进行配置,主要是关联中断函数和中断回调函数,代码如下,实际上有一些基础的配置启动代码已经配置过了,能够通过串口实现对流程的控制,主要是数据的传输流程;

2025-06-25 12:37:06 926

原创 VMware 17 安装ubuntu-18注意事项

摘要:用户在使用i5-12450H处理器和Win11系统的mini主机上,通过VMware17.6.3安装Ubuntu18.04.2时遇到兼容性问题。当分配8GB内存(总16GB)时,在填写用户名密码后会出现错误;将内存降至4GB后问题解决,推测可能是内存不足导致。该Ubuntu版本选择是为适配Vitis2019.2工具链,用户暂未测试更高版本兼容性。

2025-06-17 14:16:04 265

原创 vitis开发使用注意事项总结

XSA文件大幅改动时需重建工程或手动修改lscript.ld文件,否则程序无法运行。使用信号量前必须初始化,未初始化会导致运行时断言错误(如queue.c、port.c报错),尤其在中断函数中提前调用未初始化信号量时易触发该问题。

2025-06-13 18:40:46 392

原创 嵌入式程序存储结构

本文探讨了如何在有限硬件资源下优化内存分配。作者指出,程序由指令(.text)和变量组成,不同CPU对它们的存储方式各异:小型嵌入式CPU(如51单片机)程序运行在flash中,而高端CPU(如ARM Cortex-A/R)则可将程序加载到RAM运行。针对资源紧张的平台,关键在于合理分配变量类型,优化flash和RAM的资源分布。通过这种软硬件协同的设计思路,即使在有限内存条件下也能实现高效运行。

2025-06-11 19:42:56 229

原创 NOR FLASH型号和容量

RW299 512MbRW214 512MbRW141 128MbRW257 1Gb

2025-06-10 18:08:49 223

原创 Zynq multi boot及网口远程更新开发

Zynq multi boot及网口远程更新开发

2025-06-10 15:15:55 1257

原创 zynq远程更新程序

本文分享了赛灵思ZU11EG芯片远程更新程序开发的经验。开发采用Vitis2019.2环境,使用FreeRTOS+LWIP方案,通过UDP将boot.bin写入emmc再烧录至flash。关键注意事项包括:1)硬件上emmc需挂载特定MIO接口才能启动;2)写flash时建议先完整擦除再写入,避免逐段擦写导致数据丢失;3)开发了简易WinForm上位机用于验证,并制定了数据传输协议。作者提醒该方案虽验证通过但仍有优化空间,并愿意分享源码。该经验对于类似嵌入式开发具有参考价值。

2025-06-05 20:34:02 466

原创 Assert failed in file queue.c, line 753

说明要操作的信号量还没被初始化(注册) ,在抛信号量之前要使用sys_sem_new初始化一下。实在程序运行的时候出现的,根据提示找到相关的位置,如果出现这个问题,那么检查一下是不是忘了初始化。

2025-05-30 15:33:42 374

原创 PCB设计自检表

在工作过程中,发现很多新手同学在做硬件设计的时候总是会出现意想不到的问题,有时候需要重新投板才行,其实这里面有两方面的原因,一个是经验问题,新手对整体把握不够,思路不够成熟,没有掌握基本硬件设计方法,或者说套路。对于经验,可以说任何领域都需要不断地学习,多思考,多看书,要对知识充满好奇才行,这样才能有效地积累经验。对于细心问题,其实没有好的方法改进,这是人性的弱点,只能是尽量避免,实践中避免粗心问题的好方式是建立一种流程或者制度,起到约束和提醒的作用,让参与者执行完流程后,能够极大的减少错误。

2025-05-27 22:03:49 509

原创 赛灵思zynq文件系统使用心得

本文讨论了文件系统在嵌入式开发中的作用,指出文件系统是操作系统与存储介质之间的桥梁,负责管理非易失性存储设备上的数据。作者通过赛灵思平台开发经验说明,文件系统移植的关键是适配底层读写函数。文中还分享了一个实际问题:由于PL配置缺失导致EMMC功能异常,提醒开发中要注意硬件配置的完整性。文章强调文件系统与操作系统的独立性,在嵌入式系统中可根据需求灵活选择。

2025-05-27 21:23:56 308

原创 vApplicationMallocFailedHook() called

vApplicationMallocFailedHook() called多半是堆空间不足,

2025-05-19 10:33:16 269

原创 读写BRAM死机问题

BRAM读写死机

2025-05-14 19:39:32 147

原创 BRAM 64bit位宽报错问题

[xilinx.com:ip:blk_mem_gen:8.4-1] /blk_mem_gen_1Block Memory Generator v8.3 version currently does not support Asymmetry between two ports in IP Integrator for the selected data widths.

2025-05-07 15:53:35 340

原创 远程桌面导致Quartus 破解失效

然后添加license,这个地方始终是无法识别到网卡,但是如果在台式机本地操作就没问题,之前的破解也有效,因此推断在远程桌面方式下系统的状态和本地状态不一样,Quartus识别错误,可能是权限问题,如果用第三方的软件不会有问题。版本是 Quartus (Quartus Prime 18.1) Standard Edition。结果就是之前已经破解过的显示过期,30天的期限已到,在笔记本端怎么操作都不行,提示如下。一台台式机,和一台笔记本,用网线直连,然后笔记本通过远程连接连接到台式机,

2025-04-29 19:20:15 411 4

原创 vitis LWIP使用事项

首先是配置编程的模式一般的是socket编程,在这个地方选一下,这样程序的可移植性更好。

2025-04-27 18:58:54 252

原创 PS读写BRAM

根据表现推测这个函数只能用于8位的数据拷贝,至于为什么会有4的间隔,不清楚,推测是按照8位数据增加地址的,BRAM是32位的,增加一个地址就是4个8位,总之这个函数在这个场景下不能用,如果是DDR应该是可以,前提是数据源是8位的。试验了两种操作方式,一个是使用BSP支持的读写操作,其实就是地址映射,或者用C语言的库函数,用BSB的函数时没问题的,但是用memcpy就不行,回读回来的数据如下,这里面有两个问题,2,预期是连续的地址写入,显然存在一个固定间隔;1,我写入的数据是32位的,但显然只写了8位;

2025-04-25 10:14:45 327

原创 BRAM使用注意事项

如果BRAM的位宽是32, 那么在下面的地方需要将位宽改成32,否则数据写入不对。使用BRAM 控制器读写BRAM,框图如下,

2025-04-24 18:16:34 264

原创 vitis驱动不更新问题

更换新的XSA之后,build一下发现驱动里面的内容没变化,比如一些设备地址, 重新build仍然不更新,其中一个解决思路如下,reset 一下BSP,然后再build,

2025-04-24 10:26:49 434

原创 BRAM 控制器调试记录

在双端口条件下,A口只能写,B口只能读,因此,在这个PS框图中根本无法实现对BRAM的读写操作,可以使用不同的控制器操作统一个BRAM ,但是前提是A口对A口,B口对B口,才能实现读写操作,修改后的框图如下,这样操作就没问题,但是一般情况下,BRAM要留一个口给其它模块用,像这样连接只能是PS自己用,作为临时存储用。没看手册,后来看手册发现原来是这样用的,下面这种连接也可以,但是纯粹是给自己找麻烦,读写一个BRAM 得用两个控制器。主要是没看BRAM控制器的使用说明,导致存在误区,框图的设计如下,

2025-04-23 20:26:32 209

原创 WCCA分析

WCCA计算的前提是要确认系统的工作条件,也就是产品按照什么标准进行设计,比如消费级,工业级或车规级,不通的标准对外部应力的要求不同,而我们设计产品的最基本的要求是能够通过这些设计标准所规定的测试。我们在进行计算时就需要按照要求的应力范围进行计算,当然器件选择的时候也要按照标准进行选择,消费级产品就没必要选择车规级器件,但是如果经过计算发现,在要求的应力条件下某些器件性能实在是无法保证,也可以选择车规级,毕竟车规级器件的特性相对好一些。WCCA计算的关键是要获得器件的参数,以及该参数随外部应力的变化规律。

2025-04-15 20:09:07 1263

原创 LWIP协议栈TCP/UDP编程

首先要明确两个概念,服务器和客户端。这里的客户端和服务器端是按照通信过程划分的一个抽象概念,在一个通信过程中,接收方定义为服务器,发送方定义为客户端,并不是按照设备的物理位置和功能划分的,一个socket可以同时应用于服务器和客户端,也就是一个socket可以用于发送和接收,在具体的应用过程中,TCP和UDP由于自身的特点,会有所区别。

2025-04-08 17:55:14 1162

原创 赛灵思vitis+RTL8211FS 网口驱动调试记录

ZNYQ +freeRTOS+ LWIP+RTL8211FS通信调试,解决了Phy setup error 和ping不通的问题

2025-04-02 22:46:02 1591

原创 XILINX FIFO使用关键点

对于复位,新手比较容易出问题,复位不是必须的,根据使用的资源确定,而且是高电平复位,这个地方需要注意,而且复位有一定的时间要求,以慢速时钟为准,至少需要60个时钟。因此,对于复位管脚,能不用就不用,而且有的片子本身就不支持。可以通过控制wr_en选择何时数据有效。

2025-03-24 10:38:23 407

原创 FreeRTOS 调用vTaskDelay卡死问题

vTaskDelay卡死问题

2025-03-19 19:44:30 1817 3

原创 PCB电源布线失败案例

上图是单片机的控制部分,为了下载方便就把单片机的电源增加了个开关,原理图没有任何问题,问题出在了PCB的布局上,如下图所示,最近空闲时间利用嘉立创的EDA画了个音频的板子如下图部分原理图,

2023-01-13 00:22:40 1634

原创 JFET/耗尽型MOSFET转移曲线

由于JFET和耗尽型MOSFET的特性相似,都符合肖克利方程,因此二者的转移曲线和直流工作点的分析相同,方式一是通过肖克利方程和偏置电压设置关系进行方程的解算得到数值解,较为精确,也可以通过图解法进行,绘制出转移曲线和偏置负载曲线,得到两个曲线的交点,图解法比较直观,因此对这种方式进行程序化设计,下面是matlab绘制转移曲线的程序,可根据器件手册进行参数变更,然后根据不同的偏执方案绘制曲线,

2022-12-26 23:14:22 1068

原创 硬件电路接地设计

电路设计中的接地设计

2022-10-26 23:02:05 582

原创 Nios 测试程序

IP 封装NIOS测试程序

2022-10-24 22:24:26 203

原创 LED_TEST-顶层文件

LED_TEST-顶层文件

2022-10-24 22:23:07 278

原创 LED_IP

led IP封装示例

2022-10-24 22:21:40 156

原创 Intel FPGA IP封装/AVALON接口地址/NIOS地址设置

存储器接口IP 的AVALON 总线地址和NIOS 地址关系这里面需要注意的是地址偏移,地址偏移和地址线宽度无关,地址线宽度是地址范围的限制,如上图地址范围从19000~191ff,一共512个地址范围,2^8 2=512, 这里之所以要乘以2,是因为数据宽度是16,包含两个字节,也就是说地址宽度所能表示的寄存器计算单位是以数据位宽为单位的,也就是8位地址线可以表示256个16位寄存器,这些寄存器的地址偏移如下,偏移是以字节为单位的,因此16位的数

2022-10-24 22:19:17 900

原创 MDIO接口FPGA代码

其中start 标志需要用mdc做时钟,可以参考后面的仿真文件。支持 clause 22 标准。

2022-08-03 22:01:08 1385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除