关于将内部时钟引出的问题
我现在想将输入的一个时钟将该输入时钟用作内部逻辑驱动时钟,同时直接引出到输出管脚,在输出到管脚的时候,不想使用门控时钟,能够通过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,这个最有效。
