Verilog 从VC709 fpga板上的差分板载时钟创建单端时钟

Verilog 从VC709 fpga板上的差分板载时钟创建单端时钟,verilog,fpga,synthesis,virtex,Verilog,Fpga,Synthesis,Virtex,我正试图使用板载差分时钟为我的verilog代码。下面是我的verilog和constraint文件的片段。即使代码合成良好,我也无法看到板上的LED变化。有人能告诉我我在这里错过了什么吗 Verilog: module leds( input DIFF_SYS_P, input DIFF_SYS_N, output reg [7:0] leds=8'd0, output clk ); reg [31:0] count =0; wire

我正试图使用板载差分时钟为我的verilog代码。下面是我的verilog和constraint文件的片段。即使代码合成良好,我也无法看到板上的LED变化。有人能告诉我我在这里错过了什么吗

Verilog:

module leds(
    input DIFF_SYS_P,
    input DIFF_SYS_N,
    output reg [7:0] leds=8'd0,
    output clk
    );

    reg [31:0] count =0;
    wire clk;



    IBUFGDS #(
    .DIFF_TERM("FALSE"),
    .IBUF_LOW_PWR("TRUE"),
    .IOSTANDARD("DEFAULT")
    ) IBUFGDS_inst (
       .O(clk),
        .I(DIFF_SYS_P),
        .IB(DIFF_SYS_N)
        );


    always@(posedge clk) begin 
      if(count ==10) begin
        leds <= 8'b10101010;
        count <=count +1;
       end

       else begin
       count<=count +1; 
     end
  end
endmodule

首先,您可能希望使用IBUFG跟踪您的IBUFGDS,以便将时钟实际传输到全球时钟网络。在那之后,你会想要除以比10多得多的数字,以便看到任何闪烁。我建议数到1亿,重置计数器,切换LED,而不是仅仅设置它们

顺便说一句,我会删除您可以使用IBUFGDS运行模拟的
计数。有一个包含所有Xilinx组件的库。这应该能告诉你出了什么问题。首先模拟你的代码。您想让您的led切换吗?当达到
10
时,您不会重置
count
,也不会重置LED,并且LED保持不变。首先模拟,然后合成。此外,您需要一个更大的计数阈值来注意led的变化。频率为
200MHz
。您一直数到10(从0开始),因此有效频率为~
20MHz
。你不会注意到的。更改计数阈值以生成适当的切换速率。
set_property PACKAGE_PIN G18 [get_ports DIFF_SYS_N]
set_property IOSTANDARD DIFF_SSTL15 [get_ports DIFF_SYS_N]
set_property PACKAGE_PIN H19 [get_ports DIFF_SYS_P]
set_property IOSTANDARD DIFF_SSTL15 [get_ports DIFF_SYS_P]
set_property PACKAGE_PIN AM39 [get_ports {leds[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[0]}]
set_property PACKAGE_PIN AN39 [get_ports {leds[1]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[1]}]
set_property PACKAGE_PIN AR37 [get_ports {leds[2]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[2]}]
set_property PACKAGE_PIN AT37 [get_ports {leds[3]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[3]}]
set_property PACKAGE_PIN AR35 [get_ports {leds[4]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[4]}]
set_property PACKAGE_PIN AP41 [get_ports {leds[5]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[5]}]
set_property PACKAGE_PIN AP42 [get_ports {leds[6]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[6]}]
set_property PACKAGE_PIN AU39 [get_ports {leds[7]}]
set_property IOSTANDARD LVCMOS18 [get_ports {leds[7]}]
create_clock -period 5.000 -name DIFF_SYS_P -waveform {0.000 2.500} [get_ports DIFF_SYS_P]**