自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 时序约束(二): input delay约束和output delay约束

在项目中,RGMII的数据输入方式为DDR,源同步输入方式,可以用之前提到的分析模型进行约束。LrMax = Tco max + Td_bd max -(Tc_d + Tc_bd) ------分析建立时间时序LrMin = Tco min + Td_bd min -(Tc_d + Tc_bd) ------分析保持时间时序Clock:时钟,选择rx_clk。Objects:约束目标,选择RGMII输入信号。Delay value:延时时间。

2024-07-02 20:06:46 1912

原创 时序约束(一):时钟的约束

对于时序分析工具来说同样如此,分析工具需要我们去告知时钟的特征,通过添加合理的时钟约束,经过 时序分析工具分析后得到对应的时序分析结果, 用于后期的优化提供数据参考依据。这里我们对项目工程中的rx_clk信号做约束,这个信号是PHY芯片通过引脚传入FPGA的时钟信号,用于iddr模块的采样时钟,并没有经过PLL,因此需要进行时钟约束。值得注意的是,如果基准时钟经过了 PLL, 由于在 PLL 配置界面设置了基准时钟频率等信息,在约束信息里会自动添加基准时钟约束,并且自动会把生成时钟也会添加约束。

2024-06-27 01:00:00 1408

原创 DDR3控制器(一)DDR3 IP调用

MIG IP核(Memory Interface Generator)是Xilinx提供的IP核,专门用于处理存储器接口的生成和管理。它的主要功能是简化和优化FPGA与外部存储器(如DDR SDRAM)之间的数据传输和通信。需要说明的是,DDR3 IP是软核,因此需要占用逻辑资源,在FPGA选型时需要注意。

2024-06-26 10:00:00 2543

原创 时序分析(三):output delay分析

以上的分析是基于我们知道下游芯片的STsu/STh的,但是多数时候我们是不知道这些参数的,这时候可以假设出数据(FPGA输出)的skew,假设 SKEW 的目的是让综合工具知道输出的时钟采样沿不能落在 SKEW 的区域。图中各波形的含义从他们的名字就可以看出,其中Downstream data in指数据到达下游器件的输入引脚,Downstream clock in指时钟信号到达下游器件的输入引脚,这两个信号波形很重要,后边会讲为什么。这里需要强调的是,与input delay分析不同,

2024-06-25 00:15:00 2360

原创 千兆以太网数据发送(三):CRC校验、ODDR

在上一篇中,我们完成了IP校验和、UDP校验和的计算,并将计算结果填充在以太网协议帧中的对应位置,输出数据信号check_data[7:0]和数据有效信号check_en。至此,完成了下图中发送链路模块、gen_frame_ctrl模块和check_sum模块,但是CRC字段都给的0。本文将在此基础上计算出CRC校验和,进一步完善以太网数据包。

2024-06-24 00:15:00 1302

原创 时序分析(二):input delay分析

对于FPGA来说或者对于编译器来说,Td_fi和Tc_fi是已知的(因为他们在FPGA内部),而Tco、Tc_d、Tc_bd和Td_bd是未知的。图中各波形的含义从他们的名字就可以看出,其中Fpga data in指数据到达FPGA的输入引脚,Fpga clock in指时钟信号到达FPGA的输入引脚,这两个信号波形很重要,后边会讲为什么。cycle + Tc_d + Tc_bd + Tc_fi – Tsu - (Tco max + Td_bd max + Td_fi max),结合时序图可知,

2024-06-23 14:12:06 1255

原创 时序分析基础

同样,为了不引起时序违例问题,要求:Th Slack > 0,而Ty = Th + Th Slack,因此,只有当 Ty = Tclk1 + Tco + Tdata + Tcycle - Latch Edge - Tclk2 – Th > Th才能满足时序要求。我们知道,为了不引起时序违例问题,要求:Tsu Slack > 0,而Tx = Tsu + Tsu Slack,因此,只有当 Tx = T + Tclk2 – Tclk1 – Tco – Tdata > Tsu才能满足时序要求。

2024-06-22 08:46:08 1292

原创 千兆以太网数据发送(二):IP、UDP检验和计算

我们设计的以太网整个发送链路如下图所示,在中已经实现了timer模块和gen_frame_ctrl模块,得到UDP的基本帧结构,但是检验和、CRC等字段都给的0。本文将在此基础上计算出IP检验和以及UDP校验和,进一步完善以太网数据包。

2024-06-19 00:30:00 2352 1

原创 硬件学习笔记--电阻篇

例如:电源中初始上电时给电容充电,会产生很高的浪涌电流,需要一个器件在初始上电时阻值很大,最后阻值变小,这个器件就是NTC(例如:8D210,负温度特性)。第一,我们知道电阻的功率越大,封装越大。所以在封装选择时要根据电路的具体功能进行选择,个人认为这也是在封装选择时第一优先考虑的。电路板的空间限制会影响封装的选择,对于紧凑的设计需要选择体积小、尺寸小的电阻封装,如表面贴装电阻(SMD)。尺寸大小还决定焊接难易程度,0805封装就要比0603封装容易焊接的多,而0402封装对焊接手法一起起更高。

2024-06-18 02:00:00 1049

原创 千兆以太网数据发送(一):心跳帧的组建

当秒脉冲到来时,拉高gen_frame_flag信号,开启gen_frame_cnt计数器的技术,当计数到113时停止计数并拉低gen_frame_flag。(按照以太网包结构,以太网帧头为50字节,另外设定心跳帧数据为64个0,所以共有114个字节)tx_data[7:0]和tx_en为输出的心跳包数据,根据gen_frame_cnt计数到不同的数值给tx_data[7:0]赋值,从而组成以太网包。如果心跳帧没有得到预期的响应,设备可以判断链路已经断开,从而采取必要的措施。

2024-06-17 15:26:07 559

原创 千兆网数据接收(二)

在上一篇中,通过iddr_ctrl模块将DDR信号转换为SDR信号,并输出rx_data[7:0]信号和对应的rx_en数据有效信号。本篇将在此基础上对信息进行CRC校验和有效包检测,以达到包过滤的目的。一、为什么要包过滤?在一个系统的发送端(这里指上位机)可能有不同的应用程序,接收端也可能有不同的接收设备。那么在数据接收中就需要考虑两个问题:1.当一包数据到来时(rx_en==1),这一包数据是不是发给我的?2.传来的数据有没有错误?

2024-06-16 13:47:01 1228

原创 千兆网数据接收(一)

基于FPGA实现千兆网通信

2024-06-14 18:07:11 775

空空如也

空空如也

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

TA关注的人

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