平时积累的FPGA知识点(4)

文章讨论了如何在ZYNQFPGA中使用EMIO或MIO控制其他模块,解释了关于XDC文件中的约束设置以及由此引发的严重警告。在RGMII转换设计中,提到了ODDR和IDDR的使用,以及对时钟和数据信号的IOB约束。另外,文章还涉及了跨时钟域设计中的脉冲宽度要求,并提到了综合阶段的警告处理策略。
摘要由CSDN通过智能技术生成

1 怎么用ZYNQ输出控制其他模块吗?在xdc里面定义了引脚就可以了吗?

回答:

用emio或者gp接口,如果是控制fpga芯片外部信号,用mio。

用FPGA端控制直接引出来,用ARM控就用MIO或者EMIO就行,EMIO直接在BD里面引出来加上约束就行

2 这个严重警告是怎么回事呢?

我是在做一个 rgmii转 gmii 的一个功能,在 发送方向,我是 将 进来的 gmii tx data 经过 一个 oddr,然后再经过一个odelay输出出去的,在接收方向, 我是将 进来 的 端口 rgmii rx data经过一个 idelay,再经过一个iddr进来的。 然后我在 xdc 约束文件中,约束了Rgmii 的所有端口为 iob true,他就有这个严重警告了,不知道是什么原因呢

[Place 30-722]Terminal’O_RGMII_TXD0’ has IOB constraint set to TRUE, but it either not connected to a FLOP element or the connected FLOP element could not be brought into the I/O.

但是我在 place design 看硬件管脚,他的管脚属性 IOB 是为true的,这个应该是已经约束成功了吧?

回复: true只是告诉工具这个寄存器要被放在IOB里,但能不能放由工具决定

寄存器如果被放在IOB里,那么它的输出是不能再拐回来连接slice里的资源

这个寄存器不满足这个要求,所以给出警告信息

提问:

iddr和oddr本身就只存在iob里,所以我把信号接 oddr,就已经实现了iob true的操作了吧?

我后面tx方向,用oddr再接odelay应该是不对的

回答:

如果你直接用原语方式实例化oddr,那自然就在IOB里了

提问:

rgmii 的rx . tx clk 需不需要 也弄到iob呢, 如果只弄了数据,每次跑完版本,他只有数据 有固定延时,而时钟没有吧?

回答:

时钟不需要

3 提问 :

对于同一个gt wizard的ip我例化多次。在自己的xdc中重新做了loc约束。但是ip在综合的时候还是读取了自己xdc的loc约束这个时候就会报位置冲突critical warning。虽然布局布线最后是用的我的loc约束。但是有办法消除这个critical warning吗?

回复:不用管,因为综合阶段这些约束都不会生效,工具只是做一下检查而已

4 [Synth 8-295] found timing loop

出现这个问题是组合逻辑首尾相连了,语法问题

5

跨时钟域电路设计文章4,其中说到cdc_pulse和cdc_single都要求输入信号的有效脉冲长度必须保证接收域可以稳定地采样到至少两次,我看您之前的书里也提到过,是不是发送域脉冲长度超过接收时钟周期宽度的1.5倍就可以了

回复:

这么说,稳定地采到两次,其实是要求脉宽是接收域2倍的时钟周期

1.5倍是最小值

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐丹FPGA之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值