news 2026/5/31 0:55:31

FPGA应用开发和仿真【2.7】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FPGA应用开发和仿真【2.7】

5.4 高速串行接口

并行接口在传输高速信号时容易产生串扰,即相邻的导线因电场耦合而相互干扰。另外对于板间连接,接插件和导线增多会指数级地降低可靠性,因而高速数据传输常用串行形式,电平也常用差分规范,如LVDS。事实上,LVDS等真差分规范大多都用在串行传输中,很少有使用LVDS做纯粹并行传输的。

在高速串行数据传输中,将并行数据转换为串行数据的过程称为串行化,相反的过程称为解串行化,相应的功能单元或器件称为串行器和解串器,合称串行解串器(Serializer/Deserializer,SerDes)。

高速数据在传输时,往往还要同步传输时钟,因为如果不同步传输时钟而是通过在PCB上另行走线分配时钟,些许线长差异将造成高频时钟在源端和末端出现明显的相位差(称为时钟偏斜),从而导致时序困难。

图5-13示意了高速串行传输的过程。

其中PLL为锁相环,用于时钟频率和相位变换。注意其中的位时钟,一般为数据率的一半,即在时钟上升沿和下降沿各同步一次数据,称为DDR(双倍数据率),使用DDR能增加时钟的上升沿/下降沿时间以改善信号完整性。位时钟常常不传输(因为位时钟并不包含帧同步信息),而只传输帧时钟,之后在接收端由锁相环倍频恢复位时钟。

移位寄存器是最简单的串行器和解串器,解串时需要上升沿和下降沿均有效,实际中的串行器和解串器也常用数据选择器和分配器实现。

容易知道,对于并行数据率fDATA、一帧N位的串行DDR数据,串行数据率为fSDATA=N·fDATA,帧时钟频率为

fFCLK=fDATA,而位时钟频率为 。

时钟的传输还可以嵌入到数据之中,这样仅使用一对差分线即可完成数据的同步传输。嵌入时钟的串行传输需要使用特定的编码才能实现,并且会稍稍增加数据量。最常用的编码是8b/10b编码,它将每字节(8位)编码为10位。8b/10b编码还可以保证编码没有直流分量,便于接收端判决电平。8b/10b编码广泛用于各种高速串行传输场合,比如USB3.0、SATA、PCI Express、千兆以太网(部分规范)、DVI、HDMI、DisplayPort等。除8b/10b编码外,还有64b/66b、128b/130b、128b/132b编码,用于更高速的10G以太网、PCI Express 3.0和USB 3.1中。图5-14是嵌入时钟的高速串行传输示意。

大多数FPGA的IO口均支持LVDS高速串行传输,其中要用到的串行器和解串器在开发工具中均会提供,因要用到专用功能单元,并不适宜用Verilog描述。嵌入时钟的高速数据传输单元常称为高速收发器(Gigabit Transceiver),一般由固化的硬件实现,往往只在中高端FPGA中提供。

5.5 UART

5.5.1 UART规范介绍

UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发器,是低速串行数据传输中最常用的数据规范。长距离传输时,常配合RS-232、RS-422、RS-485电平/物理接口规范。板内或短距离传输也常常使用前述的各种单端电平规范。

作为异步传输,UART并不传输用于同步位的时钟,而是事先收发双方约定数据率,逐帧由“起始位”和“停止位”去对齐收发两侧

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 13:09:42

PCB设计后处理:Allegro导出Gerber完整示例

Allegro导出Gerber文件:从设计到制造的“临门一脚”实战指南在PCB设计流程中,最让人提心吊胆的不是布线时的信号完整性难题,也不是电源层分割的复杂拓扑——而是当你终于通过所有DRC检查、完成覆铜更新、确认丝印无误后,准备把心血…

作者头像 李华
网站建设 2026/5/30 9:45:21

ControlNet-Union-SDXL-1.0多模态AI生成技术:从入门到精通完全指南

在当今AI图像生成技术飞速发展的时代,ControlNet-Union-SDXL-1.0以其强大的多模态控制能力,正在重新定义创意生成的可能性。这项技术让每个人都能像专业设计师一样,精准控制AI生成内容的每一个细节。 【免费下载链接】controlnet-union-sdxl-…

作者头像 李华
网站建设 2026/5/28 13:09:45

MCprep完全攻略:Blender中打造专业级Minecraft动画

MCprep完全攻略:Blender中打造专业级Minecraft动画 【免费下载链接】MCprep Blender python addon to increase workflow for creating minecraft renders and animations 项目地址: https://gitcode.com/gh_mirrors/mc/MCprep 想要在Blender中制作出令人惊艳…

作者头像 李华
网站建设 2026/5/29 19:30:13

vivado ip核调试环境准备从零实现

Vivado IP核调试环境搭建实战:从零开始的工程师手记最近在带团队做一款基于ZYNQ的图像采集系统,碰到了一个典型的“逻辑没问题,但就是跑不通”的问题——CPU写寄存器没反应。仿真波形一切正常,可一上板,状态机就不动了…

作者头像 李华
网站建设 2026/5/28 13:09:48

PlayIntegrityFix模块在Android 10以下系统的完整安装指南

对于许多Android用户来说,设备完整性检查失败是一个常见问题。PlayIntegrityFix模块通过巧妙的系统伪装技术,能够有效解决这一困扰。然而,当您尝试在Android 10以下系统安装时,可能会遇到版本兼容性限制。本文将为您提供详细的解决…

作者头像 李华
网站建设 2026/5/30 19:28:58

Keil C51软件安装核心要点:快速理解关键步骤

Keil C51 安装实战指南:从踩坑到精通的完整路径你有没有遇到过这样的场景?刚下载好 Keil C51 的安装包,兴冲冲双击运行,一路“下一步”,结果启动 μVision 时弹出“Cannot find C51 executable”;或者编译工…

作者头像 李华