微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于将内部时钟引出的问题

关于将内部时钟引出的问题

时间:10-02 整理:3721RD 点击:
FPGA平台为SPARTAN6,HDL为verilog.
我现在想将输入的一个时钟将该输入时钟用作内部逻辑驱动时钟,同时直接引出到输出管脚,在输出到管脚的时候,不想使用门控时钟,能够通过assign语句引出,在MAP的时候会报错。错误类型为place1205, place1136, pack1654。
求大神指点,应怎么样修改。谢谢!

直接门级例化。

请问你说的门级例化具体是怎么操作的,是用原语obuf?或者ODDR?
谢谢!

ODDR2 #(
        .DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
        .INIT(1'b0),    // Sets initial state of the Q output to 1'b0 or 1'b1
        .SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
) ODDR2_clk25m_dac (
        .Q(clk25m_dac_clk),   // 1-bit DDR output data
        .C0(!clk25m),   // 1-bit clock input
        .C1(clk25m),   // 1-bit clock input
        .CE(1'b1), // 1-bit clock enable input
        .D0(1'b0), // 1-bit data input (associated with C0)
        .D1(1'b1), // 1-bit data input (associated with C1)
        .R(1'b0),   // 1-bit reset input
        .S(1'b0)    // 1-bit set input
);

你可以试一下2楼说的办法

时钟引到普通io是有可能route不了的,如果是时钟专用io,可能考虑加一个bufg
还有就是,如果输入引到mmcm/pll,又给另一个io,也不行,可能考虑吧mmcm/pll的1x输出给output

可以使用ODDR,但是最好的方式是将输入时钟经过BUFG再使用,这样就可以通过assign将BUFG的输出引出到管脚上



   对,就是这么用的

加ODDR,这个最有效。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top