草庐IT

FPGA基于AXI 1G/2.5G Ethernet Subsystem实现千兆UDP通信 提供工程源码和技术支持

目录1、前言2、我这里已有的UDP方案3、详细设计方案传统UDP网络通信方案本方案详细设计说明UDP层设计AXIS-FIFOAXI1G/2.5GEthernetSubsystem:输出4、vivado工程详解5、上板调试验证并演示系统配置UDP数据回环测试注意事项6、福利:工程代码的获取1、前言目前网上的fpga实现udp基本生态如下:1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?2:带pin

stm32f103c8t6单片机使用st-link/v2仿真器烧录程序的过程

ST-link/v2仿真器在stm32f103c8t6核心板中烧录程序1、首先,电脑usb接口接上仿真器ST-LINK/V2,查看设备管理器。若连接正常,则出现上图红线部分2、ST-link/v2与stm32f103c8t6的连接,如下图对应引脚相连接即可。3、stm32f103c8t6烧录时单片机必须接电,我一般boot0,boot1都接0(这一步单片机的启动方式没懂)4、烧录程序STM32F103ZET6移植到STM32F103C8T6中第一步打开魔术棒,点击Device,选中STM32F103C8芯片第二步点击Target,晶振频率修改为8.0MHZ第三步将CORE里面的后缀为hd.s的

stm32f103c8t6单片机使用st-link/v2仿真器烧录程序的过程

ST-link/v2仿真器在stm32f103c8t6核心板中烧录程序1、首先,电脑usb接口接上仿真器ST-LINK/V2,查看设备管理器。若连接正常,则出现上图红线部分2、ST-link/v2与stm32f103c8t6的连接,如下图对应引脚相连接即可。3、stm32f103c8t6烧录时单片机必须接电,我一般boot0,boot1都接0(这一步单片机的启动方式没懂)4、烧录程序STM32F103ZET6移植到STM32F103C8T6中第一步打开魔术棒,点击Device,选中STM32F103C8芯片第二步点击Target,晶振频率修改为8.0MHZ第三步将CORE里面的后缀为hd.s的

合宙AIR32F103CBT6刷回CMSIS-DAP固件和DAP升级固件以及刷ST-LINK V2-1固件方法

合宙AIR32F103CBT6刷回CMSISDAP固件和DAP升级固件以及刷ST-LINKV2-1固件方法📌官方介绍文档:https://wiki.luatos.com/chips/air32f103/index.html📍原理图:https://cdn.openluat-luatcommunity.openluat.com/attachment/20220605164915340_AIR32CBT6.pdf🎈相关篇《【开源电路】ST-LINK/V2、ST-LINK/V2-1、DAP-LINK烧录器(已验证)》✨手上购买的这个两块板子已有2个月了,一直放在这着没动,今天想拿出来给其STM32F

基于xilinx的axi-fifo的应用

作为一个有一定工作经验(划水好多年)的FPGA工程师,很多模块都已经学习过或者使用过,但是如果让我重新实现,感觉又是一脸懵。因此,这是我发文档的原因。对于自己来说,这是一个总结归纳的过程,对读者,可能是一次解惑。后期,将会逐渐分享DDR/ETH/SERDES/PCIe/SPI/FFT/FIR等等应用、调试经历。2022.8.4@gz如果有疑惑的地方,可以站内信->共同探讨!概述在FPGA的开发过程中,FIFO几乎是所有工程中都会使用的一个存储器IP。在很多场合,例如数据的跨时域处理,流水线命令等,可以说是最佳选择。普通的FIFO(native),不管是在altera/xilinx/lattic

AXI学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档一、AXI中关于非对齐问题理解        AXI协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。举个例子,总线位宽为32bit时,如果起始地址为0x1002,则产生了非对齐现象。与16bit位宽总线对齐的地址需要能被2整除;与32bit位宽总线对齐的地址需要能被4整除;与64bit位宽总线对齐的地址需要能被8整除。如下图所示:(32位数据的对齐图) 对于非对齐传输,主机会进行两项操作:1.即使起始地址非对齐,也保证所有传输是对齐的。2.在首个transfer中增加填充数据,将首次传输填充至对

Keil 下载报错ST-link connection error解决方法

最近做毕设遇见的这个问题明明之前板子下载的好好的,哪都没动,结果过一晚上就下载不进去了,不要着急不要心焦,按照下面的方法就能解决!首先下载并解压ST-link固件升级软件链接:https://pan.baidu.com/s/1TxhVj0BJ1TaqDt9uFR7Mww 提取码:z9gy点击Windows 文件夹,点击ST-linkUPgrade软件 点击Deviceconnect,(注意:如果失败,就拔下来st-link的USB线,再插上,然后立刻再点击Deviceconnect)若成功,yes>>>会变黑,点击yes 然后打开下载的keil的文件夹位置,按照ARM——STLink——USB

AXI协议容易忽视的细节

多处翻译官方文档IHI0022E_amba_axi_and_ace_protocol_spec.pdf基本的读写操作握手协议AXI具有5个独立的通道,每个通道都使用相同的VALID和READY的握手过程去传输地址、数据、控制信息等。双向握手带来的好处是主机和从机都可以控制传输的节奏。请求方的VALID信号的发出表示着地址、数据、控制信号的信息是有效的。应答方的READY信号的发出表示可以接收上述信号。仅仅当VALID信号和READY信号同时为高电平时,传输才正式发生在T1之后,准备好地址、数据、控制信号VALID,在T2被采样,T3时刻时采样READY信号,完成一次握手,在完成握手之前请求信号

c++ - 如何使用 bind1st 和 bind2nd?

我想学习如何使用绑定(bind)函数。这是想法:我有这个带参数的函数:voidprint_i(intt,std::stringseparator){std::cout我想做:std::vectorelements;//...for_each(elements.begin(),elements.end(),std::bind2nd(print_i,'\n'));但它不起作用!这是我得到的:/usr/include/c++/4.3/backward/binders.h:Ininstantiationof‘std::binder2nd’:main.cpp:72:instantiatedfro

c++ - 如何使用 bind1st 和 bind2nd?

我想学习如何使用绑定(bind)函数。这是想法:我有这个带参数的函数:voidprint_i(intt,std::stringseparator){std::cout我想做:std::vectorelements;//...for_each(elements.begin(),elements.end(),std::bind2nd(print_i,'\n'));但它不起作用!这是我得到的:/usr/include/c++/4.3/backward/binders.h:Ininstantiationof‘std::binder2nd’:main.cpp:72:instantiatedfro