我正在做一个相当简单的设计。我有 VC707 FPGA 评估板,通过 SYSCLK(P/N),我正在为板的其余部分生成单端时钟。
// Differential to single ended buffer for the input System clock of 200 MHz
IBUFGDS #(
.DIFF_TERM("FALSE"), .IBUF_LOW_PWR("TRUE"), .IOSTANDARD("DEFAULT")
)
IBUFGDS_inst (
.O(clk),
.I(SYSCLK_P),
.IB(SYSCLK_N)
);
这工作得很好,但我无法模拟这个时钟的行为,因为它是主函数的输入。这意味着我必须将时钟定义为我的测试台中的寄存器:
reg SYSCLK:P;
reg SYSCLK_N;
但是我不知道如何从这里开始。我只能模拟单端200MHz时钟:
always
begin
w_clk = 1'b0;
forever
#2.5 w_clk = ~w_clk;
end
我模拟了所有内容,但遗憾的是 SYSCLK 仍处于 Vivado 中未定义的状态。如果我尝试分配它,我会收到错误(不允许同时分配给非网络“SYSCLK(P/N)”)。从某种意义上来说这是可以理解的,但我似乎无法回避它。
这是一个差分驱动器
always
begin
w_clk_p = 1'b0;
w_clk_n = 1'b0;
forever begin
#2.5 w_clk_p = ~w_clk_p;
w_clk_n = ~w_clk_p;
end
end