做数字电路设计的朋友对差分信号的定义应该都不会太陌生,在当前比较流行的高速串行总线上,基本都是使用的差分信号。比如USB,PCIE,SATA等等。大多数的FPGA也都支持差分信号,甚至某些新型号的CPLD也开始支持差分信号了。

那么在FPGA中如何正确定义和使用差分信号呢?在这篇文章里,我们基于ALTERA公司的CYCLONE III系列的FPGA芯片,做一些讨论。

一,差分信号输出

我们先在设计中定义一个名字为DIF_OUT的输出信号。并将UART_CLK时钟赋给它(UART_CLK为串口时钟,大概为115.2kHz)。(该实验是在一个FPGA的项目上添加部分差分信号的设计来做的,会引用到原设计里的一些信号,但在介绍中,只会给出与差分信号实验相关的部分)如下面所示:

module FPGA_TOP(

……

DIF_OUT,

……);

……

output DIF_OUT;

……

assign DIF_OUT = UART_CLK;

endmodule

在设计里,DIF_OUT和其他变量的定义和赋值方式是一样的,没有任何的区别。如果需要将DIF_OUT当做差分信号输出的话,就必须在Pin Planner中对其I/O Standard进行定义。如下图所示,我们可以把I/O Standard定义为1.2V的单端输出信号。

我们也可以把I/O Standard定义为BUS_LVDS类型的信号,这个时候会出现什么情况呢?从下面的图可以看到,系统会在将DIF_OUT定义为Bus LVDS类型的同时,多添加一个DIF_OUT(n)的信号,并且根据DIF_OUT的location自动选定DIF_OUT(n)的location。在Differential Pair里,会显示这两个信号互为差分信号对,也就是说,这是一组差分信号。

那我们看一下这一组差分信号的输出电平。下面是在示波器上抓取的信号波形,可以看到二者的电平是相反的。

再看一下两者的电平值,可以看到,电平是0V,高电平是330mV左右。这是正常的差分信号的电平。

我们再通过实例讨论一下CYCLONE III中定义差分信号时的注意事项。

1. 差分信号对必须按照芯片的定义来配置。

FPGA芯片的管脚定义中,会给出哪两个IO可以当做一对差分信号来使用,如下图中,我们刚才使用了EP3C5E144 BANK3中的IO,DIFFIO_B11p(52)和IO,DIFFIO_B11n(53)来定义DIF_OUT这一对差分信号。

如果我们不这样定义呢,比如说定义DIF_OUT到Pin46上,看会出现什么情况。先定义DIF_OUT到Pin46上,I/O Standard暂且选为2.5V,如下图所示:

然后我们去看I/O Standard的下拉列表,根本就没有Bus LVDS的选项,也就是说,没有办法把这个信号定义为差分信号。如果我们先定义I/O Standard为Bus LVDS,然后去选择location到PIN_46,这个时候会出现下面的对话框,也就是说,没有办法定义这个pin为差分信号。

2. 差分信号所在BANK的IO参考电压(VCCIO)必须设定为2.5V

我们在BANK3添加DP_DATA[7]的信号,location选为PIN_38,I/O Standard选为3.3-V LVTTL(这就意味着BANK3的IO参考电压为3.3V),然后编译设计。软件会报告如下的错误(截图的原因,只给出Error的前半部分):

可以看出,差分信号需要的VCCIO是2.5V。

实际上软件并不知道在实际的系统上该BANK的VCCIO接的电源是多少,只要不定义该BANK的任一IO的I/O Standard为非2.5V的值,编译的时候都会认为该BANK的VCCIO是2.5V。至于说如果VCCIO接了非2.5V的电源,编译后的程序在FPGA上能不能正常工作就不太好讲了。唯一可以确认的是,我实验的结果是VCCIO接3.3V的话差分信号可以正常工作。

3. Location上紧邻着某一对差分信号的信号不能作为单端信号使用

我们把DP_SEL[0]信号的location设定到PIN_51,I/O Standard设定为2.5V,重新编译系统,会看到下面的Error:

也就是说,DP_SEL[0]这个单端信号离DIF_OUT这对差分信号太近了,不能这样分配。我们把DP_SEL[0]定义到BANK3中的location PIN_49上,重新综合,可以发现,软件没有报错,在Pin Planner中,也正确定义了这三个信号,如下图所示:

如果我们选择DP_SEL[0]的location为PIN_50的话,软件仍然会报上面的错误,也就是说,同BANK中,location离差分信号距离小于等于2的信号不能用作单端信号

cpout引脚是干什么的_FPGA中差分信号的定义和使用(一)相关推荐

  1. cpout引脚是干什么的_电源IC欠压保护(Brown-out)功能介绍

    描述 本文来确定本设计案例中使用的电源IC的BO引脚相关的元器件常数.BO引脚是用来设置电源IC BD7682FJ的欠压保护功能的引脚. 什么是欠压保护(Brown-out)功能 欠压保护功能是当输入 ...

  2. cpout引脚是干什么的_单片机引脚的定义与功能详解

    1 产品简介 HC89F003 是一颗采用高频低功耗 CMOS 工艺设计开发的增强型 8 位单片机,内部有 16K Bytes FLASH 程序存储器,256 Bytes IRAM 和 256 Byt ...

  3. cpout引脚是干什么的_A3936芯片引脚图

    A3936芯片采用44脚PLCC封装型式,其引脚排列如图l所示.各引脚的功能如下: 引脚1.2.11.12.13.22.23.24.33.34.35.44(GND):接地端; 引脚3.4.5.6.7. ...

  4. PCB高频电路设计中的差分信号设计

    目录 1.差分信号的定义 2.如何布置差分线路? 3.微带线和带状线的概念 4.布线中常用的匹配方法 1.差分信号的定义 什么是差分布线:差分布线主要是区别传统的信号线对应一根地线的信号传输方式,差分 ...

  5. 差分信号_形象解读差分信号,它比单端信号强在哪?

    一个差分信号是用一个数值来表示两个物理量之间的差异.从严格意义上来讲,所有电压信号都是差分的,因为一个电压只能是相对于另一个电压而言的. 电子学习资料大礼包​mp.weixin.qq.com 一个差分 ...

  6. (PCB系列七)PCB差分信号布线及其要点

    1.差分信号的定义 差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反.在这两根线上的传输的信号就是差分信号.信号接收端 ...

  7. 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题

    EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 本帖最后由 lifree 于 2020-2-5 14:37 编辑 2 ]3 p' D% B4 \  {/ n # V&am ...

  8. 【Rényi差分隐私和零集中差分隐私(差分隐私变体)代码实现】差分隐私代码实现系列(九)

    差分隐私代码实现系列(九) 写在前面的话 回顾 差分隐私的变体 发明变体的动机 最大散度和Rényi散度 Rényi差分隐私 零集中差分隐私 差分隐私变体的组合情况 总结 写在前面的话 书上学来终觉浅 ...

  9. altium 网口差分走线长度_Altium Design 中差分走线的设置

    1.在原理图中,将要设置的差分对的网络名称的前缀取相同的名字,在前缀后面加后缀分别为_N 和_P,并且加上差分对指示.具体操作如下: 2.在原理图界面下,单击 Place>>Directi ...

最新文章

  1. 【基础知识】如何在浏览器中查找元素属性节点
  2. Jerry开发的SAP note工具
  3. 清华大学成立人工智能学堂班,土木类、电子信息类实行全程大类培养
  4. python os.path模块常用方法详解
  5. php获取sessionstorage,关于PHP session 存储方式的详细介绍
  6. IOException: Broken pipe
  7. sql——手机号码归属地、身份证前六位归属地、省市区级联
  8. 0_freeCAD_介绍,下载,语言设置
  9. 教务管理系统设计与实现
  10. 斗地主服务器维护中,天天斗地主真人版进不了怎么办 登录不了解决方案
  11. 计算机毕业设计选题建议
  12. 运用知识图谱技术,赋能多领域应用 ——“未来杯”AI学术联赛总决赛暨颁奖典礼圆满落幕...
  13. TA 认识 unity shader最基本的代码结构与书写01
  14. 计算机操作员 word2003 设置表格的跨页断行属性,不可以,word中的表格属性不勾选“允许跨页断行”为什么还是断行了?-为什么word跨页表格,word表格不能跨页...
  15. PATH,PYTHONPATH 与sys.path的区别
  16. 王者荣耀-数模论文分享(虽然结果我自己都不信)
  17. Unity3d 实现落叶飘效果
  18. linux 挂载4t移动硬盘,Linux挂载移动硬盘
  19. 唐伯虎点秋香之不共戴天铃声 唐伯虎点秋香之不共戴天手机铃声...
  20. 图的存储__十字链表法和邻接多重表法

热门文章

  1. LCT模板(无讲解)
  2. leetcode之二叉树的层序遍历
  3. js 函数实参列表arguments和形参的那点事儿
  4. javascript 中的 call
  5. 选择合适的方法调试程序
  6. 技术不牛如何才拿到国内IT巨头的Offer(转)
  7. Swing中的并发-使用SwingWorker线程模式
  8. 5大AI主题,资助20-30项 | 2022腾讯AI Lab犀牛鸟专项研究计划开放申请中
  9. 清华博士后黄石生:深度神经网络实时三维重建和在线语义分割技术报告
  10. 图神经网络让预估到达准确率提升50%,谷歌地图实现新突破