Vhdl FPGA Spartan-6时钟频率的确定

Vhdl FPGA Spartan-6时钟频率的确定,vhdl,clock,fpga,spartan,Vhdl,Clock,Fpga,Spartan,我正在学习如何用VHDL编程FPGA,并想知道如何确定时钟输入的正确频率 我使用了时钟源连接表(第27页,如果您感兴趣!)中描述为“200 MHz OSC系统时钟”的引脚K21 然后,我使用以下过程尝试从200 MHz时钟创建1 Hz时钟 prescaler : process(CLK) begin if rising_edge(CLK) then if (counter < 1000000) then --possibly change to number in

我正在学习如何用VHDL编程FPGA,并想知道如何确定时钟输入的正确频率

我使用了时钟源连接表(第27页,如果您感兴趣!)中描述为“200 MHz OSC系统时钟”的引脚K21

然后,我使用以下过程尝试从200 MHz时钟创建1 Hz时钟

prescaler : process(CLK)
begin
    if rising_edge(CLK) then
        if (counter < 1000000) then --possibly change to number in binary
            counter <= counter + 1;
        else
            CLK_1Hz <= not CLK_1Hz;
            counter <= (others => '0');
        end if;
    end if;
end process; 
预分频器:进程(CLK)
开始
如果上升沿(CLK),则
如果(计数器<1000000),则--可能更改为二进制数字

计数器我想您的意思是说您目前正在使用
K21 OSC SYSCLK_p
作为单端时钟输入,并将其直接连接到
CLK
。 请附上您的UCF文件片段,以供将来提问时参考

这将不起作用,因为单个差分时钟线的峰-峰电压将不能可靠地分别用非差分(
LVCMOS25
?)I/O标准注册为逻辑
0
1

你必须

  • 包括实体上的_P和_N端口
  • 在设计中实例化LVDS缓冲区,以及
  • 将P和N端口连接到缓冲区,以便从缓冲区的输出
    O

不要忘记更改UCF文件中的I/O标准。

您的代码正在计算100 Hz:计数器->除以1000000,嵌入式t触发器->除以2。