我有一个时钟输入到扇出缓冲器,它将LVDS输入驱动到PLL输入的下边缘。有两个引脚 - AJ19
(高电平有效)和互补AK19
引脚(低电平有效)。我只对AJ19
感兴趣,所以我的顶级模块看起来像这样:
module top(clk, ...);
...
endmodule
以下是clk
set_instance_assignment -name IO_STANDARD LVDS -to clk
set_location_assignment PIN_AJ19 -to clk
set_location_assignment PIN_AK19 -to "clk(n)"
到目前为止一切都那么好,但是钳工正在产生一个非常恼人的警告,让我发疯:
Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details
Warning (176674): Following 1 pins are differential I/O pins but do not have their complement pins. Hence, the Fitter automatically created the complement pins.
Warning (176118): Pin "clk" is a differential I/O pin but does not have its complement pin. Hence, fitter automatically created the complement pin "clk(n)"
Altera的知识库建议将时钟实际定义为一对(即input wire [1:0] clk
)以删除警告。这没有多大帮助,因为那时你得到另一个警告,说输入引脚不会驱动任何逻辑。
我尝试使用// altera message_off 176118
禁用此警告。这会导致错误,因为“176118”不是有效的消息ID。
有关如何解决此问题的任何建议?
答案 0 :(得分:2)
要摆脱这种情况,你需要创建两个信号,然后将它们带入LVDS缓冲器组件(我不记得Altera将这个组件称为我的头顶),其输出将驱动一个“正常”的内部信号,您可以根据需要使用它。
答案 1 :(得分:2)
有关原始详细信息和模板,请参见Altera“使用低级基元设计用户指南” http://www.altera.co.uk/literature/ug/ug_low_level.pdf
包装顶级块的示例:
module top_wrap (
...
input wire refclk, input wire refclk_n,
);
// differential input buffers
wire int_refclk;
ALT_INBUF_DIFF inbuf_refclk (
.i (refclk),
.ibar (refclk_n),
.o(int_refclk),
);
top wrapped (
.refclk( int_refclk),
...
)
endmodule