- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 TEMAC IP 内核生成 1gb 以太网 MAC,并遇到了一段有趣的代码:
-- DDr logic is used for this purpose to ensure that clock routing/timing to the pin is
-- balanced as part of the clock tree
not_rx_clk_int <= not (rx_clk_int);
rx_clk_ddr : ODDR2
port map (
Q => rx_clk,
C0 => rx_clk_int
C1 => not_rx_clk_int,
CE => '1',
D0 => '1',
D1 => '0',
R => reset,
S => '0'
);
因此,根据我的理解,这里发生的事情是,通过将每个时钟用作多路复用器的选择线输入,两个相位相差 180 度的时钟正在生成一个"new"时钟。 (请参阅下面从第 64 页 in this document 中截取的非常有用的图表!)
当 C0 is '1'
然后Q <= D0
这给出了 rx_clk <= '1'
, 如果 C1 is '1'
然后Q <= D1
这给出了 rx_clk <= '0'
.在重置期间,两个触发器都重置为 rx_clk <= '0' while reset = '1'
所以我有几个问题:
not_rx_clk_int
和 rx_clk_int
)是否会精确地异相 180 度? (通过这种方式,我的意思是 not_rx_clk_int <= not (rx_clk_int)
)。我假设不是由于增量时间?这意味着什么?rx_clk <= rx_clk_int
不够用)? (这导致……)rx_clk
在重置期间被门控?这不是很糟糕吗?随时建议推荐阅读和/或其他资源。我不想在不知道这里到底发生了什么的情况下盲目地将这段代码复制/粘贴到我的项目中。
最佳答案
1) Are the two clocks (
not_rx_clk_int
andrx_clk_int
) going to be precisely 180 degrees out of phase when generated in this way? (by this way, I meannot_rx_clk_int <= not (rx_clk_int)
). I assume not due to delta time? What are the implications of this?
是的,它们会非常精确地分阶段。
Delta 延迟在这里不是问题。它们仅适用于 HDL 模拟,代替未知的“真实”延迟。我希望 Xilinx 的模型正确,以便两个边沿在同一个增量周期内发生变化! IE。他们会做类似的事情:
not_rx_clk <= not (rx_clk_int);
rx_clk <= rx_clk_int;
匹配增量。
2) What is the benefit of using the ODDR2 in the first place (why isn't
rx_clk <= rx_clk_int
adequate)? (Which leads to...)
它确保延迟相对于您无疑已与此时钟同步的其他 IO 是可预测的。如果您只是将时钟信号从引脚中驱动出来,它必须离开时钟分配网络,通过一些路由,然后到达引脚(因为时钟网络没有直接路径到达 IO 引脚。那是延迟是不可预测的,并且可能因编译而异。
3) What does it mean for a clock to be "balanced" as part of the clock tree? (clock tree mentioned briefly on page 59 [here.][3])
据我了解,这意味着时钟树确保时钟到达每个目的地的距离(大约)相同。
4) Isn't
rx_clk
being gated during reset? Isn't this bad?
是的,它正在被打开和关闭(我不太愿意使用“门控”这个词,因为它意味着一个特定的东西——通过与门输入——但事实并非如此)。只有你能说这是否重要 - 这取决于它的去向。
5) Is this the "standard" way of using a ODDR2 and/or performing this operation? Are there better options? (and hence, should I add this to my arsenal of useful VHDL bits and pieces? )
三问合一,偷偷摸摸:)
关于vhdl - 在自动生成的赛灵思包装器 VHDL 文件中发现 ODDR2 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13557755/
我有一些正在为类(class)编写的 VHDL 代码。但是,综合工具将 cell3、cell2 和 cell1 识别为“死”代码,并且不会对其进行综合。 我真的不知道是什么导致单元格 3、2、1 在合
我正在处理 8 位像素值......为了便于编码,我想使用 conv_integer 来转换这个 8 位 std_logic_vector。它会导致任何合成问题吗?它会降低硬件的速度...... 最佳
这是什么错误,我应该寻找什么? 最佳答案 我完成后收到此错误: wire Q[3:0]我应该有的时候 wire [3:0] Q; 关于赛灵思 ISE "Cannot access memory Q d
我是一名优秀的程序员,十分优秀!