赛灵思
直播中

张淑兰

7年用户 258经验值
私信 关注
[问答]

我的verilog代码和约束文件出错该怎么办?

大家好,
我正在尝试实现一个MUX逻辑,用于将两个时钟信号复用到IO引脚。
我的逻辑适用于低频输入(1-100Hz),但是当我增加输入时钟的频率(> 1KHz)时,输出信号看起来很奇怪,即占空比变化,输出频率在输出时为浆果高(> 1MHz)
我看到一个等于我的时钟幅度的恒定电压。
下面是我的verilog代码和约束文件,可以;有人帮助我理解可能出错的地方
模块main1(TX1,TX40,SEL,TX);输入TX1,TX40,SEL;输出TX;线路tx1_bufg,tx40_bufg; BUFG clk_bufg_inst1(.I(TX1),. O(tx1_bufg)); BUFG clk_bufg_inst2(.I(TX40)
),。O(tx40_bufg));
分配TX =(~SEL& tx1_bufg)|(SEL& tx40_bufg); endmodule
约束文件
NET“SEL”PULLUP; NET“SEL”LOC = AH8; NET“TX1”LOC = C24; NET“TX1”CLOCK_DEDICATED_ROUTE = FALSE; PIN“clk_bufg_inst1.O”CLOCK_DEDICATED_ROUTE = FALSE; NET“TX40”LOC = P3; NET“
TX40“CLOCK_DEDICATED_ROUTE = FALSE; PIN”clk_bufg_inst2.O“CLOCK_DEDICATED_ROUTE = FALSE; NET”TX“LOC = AE6;
我在我的定制电路板上使用Spartan-6XC6SLX150-3FGG900I,我的最终目标是为MUX多个UART设备实现逻辑。
谢谢,
毗湿奴

回帖(4)

陈玉筠

2019-8-1 09:51:30
无论你看到什么(而且你没有告诉我们你如何测量东西)可能与FPGA无关。
除了在不需要BUFG时使用BUFG这一事实,这是一个简单的FPGA内部MUX。
你正在使用IBUF来输入信号,两个(无用的)BUFG,一个LUT和一个OBUF来输出信号。
1MHz的频率不被认为是这些资源的高频率(实际上,1MHz通常是一个问题,因为有些资源(MMCM / DCM / PLL)不会这么慢运行!
所以,无论你看到什么,几乎肯定是测量误差。
你是如何观察输出的?
假设您使用的是示波器,示波器的功能有哪些?
它能否准确地采样1MHz以上的信号(你需要一个至少有10MHz或更多带宽的示波器)?
Avrum
举报

陈苏文

2019-8-1 10:08:35
@vkve你是如何生成输入时钟的?
你能正确观察你的示波器的1MHz时钟输入吗?
你的问题是占空比失真。
我敢打赌,当它开始变坏时,它会比较高而不是低,所以在更高的频率下,它在视觉上看起来像一个恒定的高。
AE6上有任何机会出现上拉?
我首先观察1MHz的输入时钟,摆脱多路复用器并在输出后观察输出端的1 MHz以隔离问题。
- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。
举报

郎渐海

2019-8-1 10:26:33
您好avrum,muzaffer,
感谢您的意见 !!
我正在使用示波器进行测量。
@muzaffer
>>>>如何生成输入时钟?
你能正确观察你的示波器的1MHz时钟输入吗?
我正在使用波形发生器来生成输入时钟。
我正在探测波形发生器输出的输入信号,直到现在验证输入是否正确并且一切都很完美。
读完你的评论后,我试着在我的电路板上探测输入信号,发现输入本身并不像预期的那样。
(这清楚地解释了我意外输出信号的原因)
>>我敢打赌,当它开始变坏时,它会比较高,但是在较高的频率下,它看起来像是一个恒定的高视觉
是的,你是正确的,因为频率增加,占空比增加(较长时间内较高)
>> AE6上有任何上拉机会吗?
AE6没有上拉,但输入信号通过91欧姆电阻输入P3和C24。
这可能是原因吗?
我尝试了不同的IO引脚(没有电阻),我在这些引脚上看不到这个问题
问候,
毗湿奴
举报

陈苏文

2019-8-1 10:45:12
@vkveso如果使用其他输入,输出看起来不错?
至于潜在的原因,是的输入过滤会解释一些变化,但我认为你必须缺少一些组件。
一个串联电阻会导致信号不会上升太多,所以我希望信号较低,但在91欧姆和1 MHz时,它不应该像你观察到的那样完全变高。
- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分