Написал вот такой вот код.
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity tst_clk is
Port ( clock : in std_logic;
drive : out std_logic);
end tst_clk;
architecture Behavioral of tst_clk is
signal driveout1:std_logic;
begin
drive<=driveout1;
process(clock)
variable count:integer range 0 to 1_000_000:=0;
begin
if (clock='1') and (clock'event) then
count:=count+1;
end if;
if count=1_000_000 then
count:=0;
driveout1<=not driveout1;
end if;
end process;
end Behavioral;
Делаю это для того, чтобы поделить частоту на 50 миллионов. (там написал 1 миллион, потому что проблема - читайте ниже). И вот если я там меняю 1 миллион на большее число (больше 1 048 ХХХ), то не работает. а вот так - работает. (правда слишком высокая частота - мне надо больше поделить. Если пытаюсь увеличить range - то даже так уже не работает. Пытаюсь убрать вообще range (знаю, что нехорошо, но ради теста) - тоже не работает. Пользуюсь Xilinx ISE 6.3 + spartan3.