У меня есть небольшой проект VHDL, который работает на плате Digilent Nexys 3 Spartan-6. Один из элементов кода делит полученный извне тактовый сигнал на коэффициент 2. Внешний тактовый сигнал не очень хороший. Это больше похоже на синусоиду, чем на прямоугольник, но это другая проблема. Это VHDL-код делителя - он мало что делает:
library IEEE;
use IEEE.std_logic_1164.all;
entity mems_prescaler is
port(
aclkr : in std_logic; -- 6.144 MHz
mems_clk : out std_logic); -- 3.072 MHz
end mems_prescaler;
architecture Behavioral of mems_prescaler is
signal output : std_logic := '0';
begin
process(aclkr)
begin
if rising_edge(aclkr) then
output <= not output;
end if;
end process;
mems_clk <= output;
end Behavioral;
Я проверил выходной сигнал на контакте, сопоставленном с mems_clk, и время нарастания и спада выглядит очень плохо по сравнению с тем, что я ожидал. Его около 70 нс каждый. Настройки «Тип поворота» и «Мощность привода» в PlanAhead не меняют этого. К контактному разъему PMOD на плате Nexys 3 не подключено ничего, кроме прицела. Может ли кто-нибудь дать мне подсказку о том, что попробовать? Спасибо!