自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Stm32的4G模块实现内网透传通信(代码后附)

基于Stm32的4G模块实现内网透传通信

2022-10-25 09:33:19 8646 2

原创 FPGA的PL端使用1G/2.5G Ethernet PCS/PMA or SGMII核实现SFP千兆以太

FPGA的PL端使用1G/2.5G Ethernet PCS/PMA or SGMII核实现SFP千兆以太在实现SFP千兆以太网传输时需要使用Tri Mode Ethernet MAC之间通过GMII接口连接或者PS端直接输出GMII接口。这里采用PL端实现,因此选择Tri Mode Ethernet MAC选项。SFP使用的是千兆以太网,也就是使用1000BASEX模式,需要将速度设为1G。选择1000BASEX模式。有些PHY芯片也支持SGMII模式,根据实际硬件来进行设置。使用FPGA芯

2022-05-09 15:39:51 6156 3

原创 FPGA中testbench特殊调试语句用法

FPGA中testbench特殊调试语句用法1、 三态信号inout在testbench中定义为wire型变量,利用assign语句来实现数据的读写wire a; //将双向接口变量定义为wire型reg b ; //定义一个reg型的中间变量,作为双向口的输出寄存reg c ; //定义输出使能,用于控制传输的方向assign a = (c)?b:1'bz;2、 仿真模块控制语句$stop //中断运行仿真,modelsim中可以通过窗口控制继续仿真$st

2022-03-15 15:04:40 847

原创 Xilinx 7系列FPGA中CLB结构和内部资源使用

Xilinx 7系列FPGA中CLB结构和内部资源使用7系列FPGA内部资源更加的更富,性能更强悍,最吸引人的就是28nm工艺使得相同的逻辑资源功耗降低50%,这是一个很大的提升,在单板硬件上仅仅降低50%的功耗就能避免一大部分的问题。7系列逻辑资源和之前系列是一致的都是采用ASML架构,主要分为可编程逻辑资源、可编程I/O资源和布线资源这三大部分。1、 CLB可配置逻辑资源CLB可以说是FPGA最基本的一个模块,常用的查找表、选择器、触发器、进位链都是属于CLB的内部资源。一个CLB包含两个SLIC

2022-03-14 10:37:40 1798

原创 FPGA实现CAN通信CRC校验

FPGA实现CAN通信CRC校验检验本质上是CRC检验生成多项式理解CRC校验,首先需要了解生成多项式的概念,生成多项式也就是发送方和接受方约定的一个除数而已,发送方和接收方都使用这一个相同的除数进行模2运算,计算结果相同则说明传输数据没有问题,而如果计算结果不同可能传输的数据就出现了问题,目的就是为了保证数据传输的可靠性。上面提到的模二计算本质上就是异或运算,相同的位为0,不同的位为1,也就是不考虑进位、错位的二进制加减法运算,例如:10011011 + 11001010 = 01010001.常

2022-03-12 10:59:51 2311

原创 FPGA实现SPI 协议

SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。SPI 通讯设备之间的常用连接方式见图 1。SPI 通讯使用3 条总线及片选线,3 条总线分别为SCK、MOSI、MISO,片选线为 SS,它们的作用介绍如下:(1) SS ( Slave Select):从设备选择信号线,常称为片选信号线,也称为NSS、CS,以下用N

2022-03-12 10:35:39 7763

原创 AXI DMA收发数据过程和时序关系

AXI DMA收发数据过程和时序关系VIVADO中利用DMA进行大数据量传输能有效减少CPU开销,进而实现大数据量从PL端到PS端的DDR内或者外部网口等接口到DDR内。然而在CPU控制DMA传输过程时不可能像PL端那样能实现精准的时序控制,为了实现整个DMA数据传输的有效进行,需要明白数据传输的整个过程。以下面工程为例来对传输过程进行描述。如上图所示主要是完成PS端数据通过DMA到axis_data_fifo中,然后把axis_data_fifo中数据通过DMA传输到PS端,实现数据的回环传输。首

2021-11-10 11:17:55 2534

原创 FPGA实现数据组播传输

FPGA实现数据组播传输单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。广播(broadcast):是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种

2021-07-07 09:21:30 1403

转载 2021-06-23组播学习之——IGMP Snooping总结

原文:https://blog.csdn.net/lickylin/article/details/25241829组播学习之——IGMP Snooping总结一、数据结构对于实现一个子层功能,最主要的就是数据结构的建立。对于igmp snooping来说,我们需要建立的数据结构之间的关系是1、一个组播组可以与多个桥端口关联2、一个桥端口可以与多个组播组关联3、一个桥端口只与一个桥关联4、对于桥端口而言,有lan侧桥端口与wan侧桥端口之分5、组播组数据项之间如何进行链接(可以通过链表实现等

2021-06-23 16:58:04 428

转载 组播学习之——IGMP协议简介

CSDN文章转载地址组播学习之——IGMP协议简介IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。IGMP协议(IPv4) 和MLD协议(IPv6)用来帮助主机指定对那些组感兴趣(加入哪一些多播组),以及确定来自某些特定源的报文应该被接收还是过滤掉。为了实现这一目标,主机需要向本地子网的组播路由器发送一些报文来向组播路

2021-06-23 16:55:02 5099

原创 高速FPGA时序约束设计分析: IO延时约束方法(3)

FPGA时序约束分析:IO延时约束方法在多路数据同步设计时经常需要源同步,在设计源同步时经常会用到IO延时约束,特别是在时钟频率比较高的情况下对输入数据和时钟关系进行约束是很有必要的。在针对常见的DDR数据输入时约束如下:# Center-Aligned Double Data Rate Source Synchronous Inputs ## For a center-aligned Source Synchronous interface, the clock# transition is a

2021-06-03 11:10:17 615

原创 多通道CIC抽取滤波器Vivado CIC IP核实现实现(3)

多通道CIC抽取滤波器Vivado CIC IP核实现实现(3)前面写了CIC滤波器原理实现MATLAB仿真CIC抽取滤波器MATLAB仿真和FPGA实现(1) https://blog.csdn.net/qq_40052606/article/details/109207645?spm=1001.2014.3001.5501和FPGA代码的实现 CIC抽取滤波器MATLAB仿真和FPGA实现(2)https://blog.csdn.net/qq_40052606/article/details

2021-04-22 18:18:59 4785 2

原创 FPGA实现CAN通信

FPGA实现CAN通信1、CAN协议物理层和协议层2、传输的波特率3、FPGA实现思路4、FPGA实现代码1、CAN物理层和协议层CAN与串口类似,都是异步通信,利用两根差分线来进行信号的传输。在多节点进行数据传输时主要分为遵循ISO11898标准的高速短距离闭环形式和遵循ISO11519标准的低速远距离开环网络。这两种形式主要是在硬件设计时根据实际应用情况加入120欧姆或者2.2千欧姆电阻。在CAN通信时信号逻辑和平时常用的电平表示不太一样,根据标准电平表示形式如下图:CAN报文类型

2021-04-20 10:55:32 14820 65

原创 DDS载波信号生成

DDS载波信号生成DDS IP核详细介绍Xilinx直接数字频率合成(DDS)IP核用来实现面向多种应用的正弦波信号源。DDS包括一个相位生成器和一个SIN/COS查找表,可以单独使用或组合使用。DDS IPcore包含Phase Generator和SIN/COS查找表两部分,这两部分可以单独使用,也可以组合使用。DDS的结构如下:DDS Core 的结构如下:由两部分构成,即Phase Generator和Sin/Cos LUT。Ipcore的接口情况如下图所示:CORE Ge

2021-04-13 16:04:55 2496 2

原创 FPGA设计流程

FPGA一般的设计流程FPGA一般采用自上而下的设计方法,从系统的设计需求开始,划分为一系列的二级单元模块,然后再把二级单元模块根据模块需求划分为下一层次的基本单元,依次进行划分到最基础的模块或者IP直接实现为止。设计阶段主要行为需求定义阶段根据需求完善设计说明,定义并详细描述功能需求、接口、性能以及设计裕量。(甚至可以预估可能遇到的问题)结构设计阶段功能实现的具体技术;选择器件厂商、器件型号和开发工具;定义系统架构,考虑系统可升级维护性;分割固定的功能模块与可编程模块;定

2021-02-22 11:30:03 397 2

原创 MATLAB(DOS)直接调用wireshark抓包程序和UDP抓包丢包解决方法

MATLAB(DOS)直接调用wireshark抓包程序和丢包解决方法在利用千兆以太网进行数据通信时需要了解数据的传输过程,而wireshark作为一款比较好用的网络抓包工具 在工作中经常使用。但是使用wireshark的UI界面抓包存在一个很大的问题,就是在抓取过程中存在着连续丢包现象,针对这个问题在使用中根据wireshark抓包的原理进行了好多次的测试得到了一些经验能避免丢包现象。在使用wireshark抓包时一般存在一下两种方式1、 直接使用wireshark的UI界面进行数据的抓包直接使用

2021-01-07 16:23:33 2904

原创 ZYNQ:中断控制器和串口的使用

ZYNQ:中断控制器和串口的使用使用串口进行数据发送是代码调试的基本操作,而对串口配置是基本的要求,在对串口配置时涉及到串口收发和中断的使用。在进行初始化配置时需要对以下三个模块进行配置:1、系统异常初始化配置。2、中断控制器初始化配置。3、串口初始化配置。分别完成上面三个模块的配置基本上能实现串口的数据收发。1、系统异常配置。系统异常是一个很特殊的情况,系统异常一般发生在处理器执行一条指令时检测到一个出错条件的发生,比如被0除出错的条件。通俗点讲异常就是ARM指令执行的错误。系统异常初始化配

2021-01-04 18:18:27 1887 4

原创 IEEE1588(PTP)协议实现精确授时

IEEE1588(PTP)协议实现精确授时1、绝对时间信息的获取IEEE1588 协议,又称 PTP( precise time protocol,精确时间协议),能够实现准确的时间授时,其基本功能是使分布式网络内的最精确时钟与其他时钟保持同步。一般是采用BDS或者GPS接收到准确的绝对时间,然后利用网络通信通过1588协调来实现分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行亚微秒级同步。在对设备进行授时时一般采用以下拓扑。(这篇主要对卫星授时架构和1588协议原理进行分析,下篇对1588

2020-12-31 13:04:08 7222 1

原创 ZYNQ:MIO、EMIO、IO的区别和灵活使用

ZYNQ:MIO、EMIO、IO的区别和灵活使用在使用ZYNQ上ARM cortex-A9平台时首先面临的就是对IO进行操作,总的来说对IO操作无怪乎两种方式,一种是直接对GPIO寄存器进行操作,这样程序效率高,但编写代码困难;另一种是调用SDK工具提供的API接口函数。在实际使用时ZYNQ又把GPIO分成MIO、EMIO和PL端的IO这三种类型,在刚刚接触时会因为这三种IO的不同配置和使用方式而影响后续的学习,这里针对三种IO进行详细的说明使用方法。首先要明白这三种IO的物理属性,简单的说1、MI

2020-12-03 11:48:56 4820

原创 1PPS+TOD高精度时间同步

1PPS+TOD高精度时间同步1、系统架构介绍常见的时间同步接口规范有1588V2时间同步、1PPS+TOD时间同步这两种方式,而在实际的项目使用中采用的是时间同步设备与承载设备直接使用1588V2时间同步接口协议,而承载设备和应用设备之间采用1PPS+TOD时间同步接口协议。系统使用的架构如下:与北斗系统进行时间同步采用的是:武汉星旗科技的XQ-750时间同步设备。这个设备硬件时间戳分辨率小于10ns,背靠背授时精度可达100ns的级别。时间同步设备通过北斗卫星得到准确时间,然后通过1588V2协

2020-11-11 18:47:56 23987 1

原创 CIC抽取滤波器MATLAB仿真和FPGA实现(2)

CIC抽取滤波器MATLAB仿真和FPGA实现(2)CIC的FPGA实现其实非常简单,但是要想输入输出与MATLAB仿真结果一致就需要一定的技巧和结构变化。CIC理论基础在上个文章里面进行了描述。在进行FPGA实现时需要明白CIC本质就是一个加法运算。其离散表达式有两种,1、 传统的分别实现积分环节和梳状环节.但是这里需要注意的是这两个环节都是不稳定系统,转化到FPGA逻辑表述就是积分环节是一个无限累加的过程,这样就需要不断的增大位宽来放置数据的溢出,微分环节需要不断的去做减法。这样会导致数据的溢

2020-10-21 19:27:24 2180

原创 CIC抽取滤波器MATLAB仿真和FPGA实现(1)

CIC抽取滤波器MATLAB仿真和FPGA实现(1)设计理想滤波器目标:1、滤波器在有效频段内纹波满足设计要求。2、抽取或内插处理后在有效频段内不产生混叠。3、滤波器实现简单,需要资源较少。这个文章主要讲CIC理论基础,下个文章讲FPGA实现。级联积分梳状滤波器又称CIC。这是多速率信号处理中一种结构简单的滤波器,只需要加法器和寄存器即可实现,可以灵活的设置抽取因子和插值因子,并且CIC是一种基于零点和极点相消的FIR滤波器。CIC是由积分器和梳状滤波器组成。积分器可表示为(太多公式了只能截图发出来)

2020-10-21 19:15:39 4861

原创 一阶LC滤波器算法的仿真和FPGA实现

一阶LC滤波器算法的仿真和FPGA实现滤波器设计是一个很麻烦的事情,在实际的项目设计时一般都是利用数字滤波来代替模拟滤波,但是数字滤波有时候需要很多资源也很难达到仅仅需要一个电容和电阻实现的模拟滤波电路。在实际的数字滤波器设计时基本的滤波算法都是根据LC模型来进行推导和演变来的。针对LC滤波这里把物理模型进行详细的推导建模,并利用仿真软件进行仿真,这样能有直观的感受。1、 高频截至的LC电路模型一阶RC低通滤波器的硬件电路如图:首先根据基尔霍夫定律写出这个RC无源网络的动态方程。对上面模型仿

2020-09-19 13:24:42 2354 2

原创 DDR时序约束常见的ERROR

DDR时序约束常见的ERROR时钟约束,在约束的模块中未找到定义的变量,这个一般是在IP核例化中出现,需要把原始文件加入到工程中。ERROR:ConstraintSystem:59 - Constraint <NET “u_hight_pass/sys_clk_ibufg” TNM_NET = “SYS_CLK”;> [src/top.ucf(721)]:NET “u_hight_pass/sys_clk_ibufg” not found. Please verify that:

2020-09-16 09:40:15 4480

原创 高速FPGA串并收发器SERDES实现ADS6445的AD转换

高速FPGA串并收发器SERDES实现ADS6445的AD转换在使用TI公司四通道、14Bit、最大速率125M的ADS6445。利用Xilinx V5系列器件的串行收发控制器ISERDES的原语来实现数据的接收。(1)ADS6445基础知识和配置ADS6445是一款很强大的AD转换芯片。最高支持125M采样速率,共有四个采样通道,模拟输入支持LVCMOS, LVPECL, LVDS时钟输入。芯片输入差分时钟作为芯片的主时钟。通过芯片内部PLL进行倍频输出数据时钟和帧时钟。模拟参考电压VCM作为模数转

2020-08-20 10:10:47 2949

原创 高速FPGA时序约束设计分析(2)

高速FPGA时序约束分析:时序约束语法规则(1)高速FPGA调试时都会面临时序违约的问题,而稳定的时序能够使得系统再高低温以及异常环境下稳定可靠运行,因此时序约束不仅仅是为了满足系统高速运行的要求,也为了满足系统可靠运行。时序约束有下面常用的约束语法有一下几种。(1)FROM-THRU-TO约束。(2)PERIOD约束。(3)TIMESPEC约束。(4)TNM约束。(5)TNM_NET约束。(6)TPSYNC约束。(7)TPTHRU约束。(8)TSidentifier约束。(9)OFFS

2020-08-08 16:01:48 1110 1

原创 基于FPGA的DP83867IRRGZ网络芯片的配置和调试过程问题记录

在对DP83867IRRGZ网络芯片进行调试时出现一些异常,这是在调试中出现的异常的记录。现这些问题已经得到解决,主要是通过软件调制来解决,但是硬件存在的问题已经定位,下一版本硬件再进行更改。解决思路在我的博客文章“利用FPGA实现UDP网络高速可靠传输”中有详细的描述,并通过实际测试实现600M连续传输。利用wireshark测试百万包丢包率是1.3包。有需要详细了解的可以留言。链接是https://blog.csdn.net/qq_40052606/article/details/106954894。

2020-08-08 11:38:10 3354 1

原创 高速FPGA时序约束设计分析(1)

FPGA时序约束分析:时序路径分类FPGA的时序路径对时序系统的稳定性有着很重要的作用,不同的时序路径对时钟和逻辑电路有着不一样的要求,时序路径确定后系统的最小时钟周期即可确定。确定的时序路径对系统时钟周期和系统的鲁棒性有着很大的影响。FPGA系统中时序路径一般分为6类:(1)Clock-to-Setup路径(2)Clock-to-Pad路径(3)Clock Input路径(4)Pad-to-Setup路径(5)Clock-Pad-to-Output-Pad路径(6)Pad-to-Pad路径

2020-08-08 10:47:29 527

原创 FPGA实现CORDIC算法

FPGA实现CORDIC算法CORDIC(Coordinate Rotation Digital Computer)是坐标旋转数字计算机算法的简称,这是一种数学计算的逼近方法,可以通过一系列的加减和移位操作来实现,非常适合计算机硬件实现。在实际运用中常用来求解反正切等三角运算,也就是用在三角函数的运算问题。CORDIC原理的推导可以在圆周系统下利用旋转模式来实现。由上图可知向量OP和向量OQ可分别用式1和2表示利用和差化积公式可得到把式1带入式3中可知从式4中可以得到Q点的位置坐标。接下来

2020-07-25 14:10:08 1746

原创 FPGA实现DDRIP核高速读写(3)

FPGA实现DDRIP核高速读写(3)在前面两个讲了DDR的基本工作原理和仿真,这里来实现数据的读写。高速的读写要参考官方文档UG086.这里有对申请的IP核结构有着详细的解释。DDR官方IP主要有时钟部分、用户接口部分、控制部分和驱动部分组成。下图是采样外部参考时钟的DDR2内存控制核的结构。这里大部分工作都已经在IP核内实现,用户只需要在用户接口层来对IP进行控制即可。上图中左侧接口为用户接口,这些接口的意义如下图所示:在DDR2控制中时钟是一个很重要的部分。由于DDR2时钟频率较高,采用双

2020-07-18 15:25:04 1642

原创 FPGA实现DDR高速读写(2)

FPGA实现DDR高速读写(2)在完成IP核申请后需要对IP进行仿真,看看DDR的读写工作的基本原理。在进行代码仿真前需要对DDR SDRAM的基础架构和工作机制进行了解,然后对DDR进行仿真。一、DDR功能框图上图就是SDRAM芯片的其中一个型号的功能框图。上面的功能框图里可以知道主要由输入输出IO口控制、模式寄存器、存储阵列、写入/读出控制、写入缓冲FIFO这几部分组成。对于DDR我们首先需要知道他的存储阵列的大小。SDRAM的地址线是分时复用的,也就是说他的行地址和列地址线是复用的,SDRAM

2020-07-13 17:30:20 4431

原创 FPGA实现DDRIP核配置(Memory Interface Solutions)

FPGA实现DDRIP核配置(Memory Interface Solutions)DDR读写控制分三个文章来写,一部分写DDR的IP核配置,一部分写DDR的读写基本的过程和仿真,最后写读写控制的实现和需要注意的问题。同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。简单粗暴点说这个东西就是存储数据的。数据的读写速率对系统性能有很大的影响。在使用FPGA的过程中DDR是避免不开的一个高速

2020-07-11 15:23:37 3623

原创 基于FPGA的IIC的软硬件设计

基于FPGA的IIC的软硬件设计IIC是多主设备的总线,IIC没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线——serialdata(SDA)和serial clock(SCL)。IIC协议规定:1、每一支IIC设备都有一个唯一的七位设备地址。2、数据帧大小为8位的字节。3、数据(帧)中的某些数据位,用于控制通信的开始、停止、方向(读写)和应答机制。IIC数据传输速率有标准模式(100kbps)、快速模式(400kbps)和高速模式(3.4Mbps),另外一些变种实现了低速模式(

2020-07-01 18:59:46 805

原创 FPGA数字信号截位分析和位宽设计

FPGA数字信号截位分析和位宽设计FPGA数据在进行乘加过程中会面临这数据位宽变大的问题,然而硬件资源是有限的,需要对数据最终位宽进行设计,这就会面临着位宽的选择和如何截位的问题。对多位数据进行截位处理,是一个从高量化精度向低量化精度的转换过程,由于量化位数的减少,产生截位误差,导致运算结果在时域上出现直流分量,频域出现由谐波失真造成的尖峰,降低了信号的无杂散动态范围。比如:模拟信号经过16位ADC量化后变为数字信号,且数据类型为整型,且均采用补码形式表示如按照16 bit 量化,则15 =0000

2020-06-30 16:24:12 5277 2

原创 利用FPGA实现UDP网络高速可靠传输

利用FPGA实现UDP网络高速可靠传输FPGA数据处理中常用的一些IP核有网口ETH核、DDR核、CORDIC核、DDS核、加法器、乘法器、滤波器IP、FFT等IP核,这些IP核熟练使用能减少很多工作量和提高代码的稳定性。这些IP核的配置比较简单,但是如何正确使确是个很大的问题。最近一直在用网口、DDR、DDS、CORDIC这些IP。一下子很难把这些IP的用法全部写完,后续会一个一个的去介绍。1、网口IP的框架结构和配置验证我用的是XILINX的Virtex-5系列的芯片,这里就以这个配置为例。这里些

2020-06-25 09:48:33 7324 4

原创 FPGA系统异步复位同步释放设计

FPGA系统同步复位异步释放设计FPGA逻辑设计属于硬件范畴,不是简单的代码实现,更需要有很多的硬件知识积累。1.1 寄存器和锁存器要理解时序电路需要理解里面的两个基本单元寄存器(register)和锁存器(latch)。寄存器:又叫触发器(flip flop),也可以说成D触发器。寄存器是边沿触发,就是在时钟翻转的时候才对输入端采样,然后经过触发器内部电路延时输出采样结果。因此触发器是依存于触发信号(时钟信号)来实现数据的传输,这样在时序优化时能够很好的去做定量优化。锁存器:这是个电平敏感元件,

2020-06-25 09:24:54 496

空空如也

空空如也

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

TA关注的人

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