我正在学习如何用VHDL编写FPGA程序,并想知道如何确定时钟输入的正确频率。
我使用了时钟源连接表中的Sp605硬件用户指南,pin K21 (如果您有兴趣的话,可以使用pg 27!)被描述为"200 MHz OSC SYSCLK_P“。
然后,我使用了下面的过程来尝试从200个MHz时钟创建一个1Hz时钟
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;
然而,如果我把计数器的上限设定为100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000计数,是一个接近1Hz脉冲的近似值,但为什么呢?
发布于 2015-11-02 22:59:19
我认为您的意思是说,您目前正在使用K21 OSC SYSCLK_P
作为一个单端时钟输入,并将其直接连接到CLK
。请包括您的UCF文件的片段,以供将来的问题参考。
这是行不通的,因为单个差动时钟线的峰值电压不能可靠地将逻辑0
或1
分别注册为非差分(LVCMOS25
?)I/O标准
你得
O
中获取CLK
不要忘记更改UCF文件中的I/O标准。
https://stackoverflow.com/questions/33487622
复制相似问题