2016-04-12 3 views
0

J'ai un petit projet VHDL qui fonctionne sur une carte Digilent Nexys 3 Spartan-6. L'une des entités du code divise une horloge reçue de l'extérieur par le facteur 2. Le signal d'horloge externe n'est pas très bon. Cela ressemble plus à une onde sinusoïdale qu'à un rectangle, mais c'est un problème différent. C'est le code VHDL du diviseur - il ne fait pas grand-chose:Spartan-6 temps de montée/descente de la sortie FPGA

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; 

J'ai vérifié le signal de sortie sur la broche mis en correspondance avec mems_clk et la montée et de descente semblent très mal par rapport à ce que je pensais. C'est environ 70ns chacun. Les paramètres "Type d'inclinaison" et "Force d'entraînement" dans PlanAhead ne changent pas cela. Il n'y a rien de connecté à l'en-tête de broche PMOD sur la carte Nexys 3 à l'exception de la portée. Quelqu'un peut-il me donner un indice sur ce qu'il faut essayer? Merci!

+0

Capture d'écran de la portée: [image] (https://i.imgsafe.org/c21869f.jpg) Jaune est l'horloge externe qui est une entrée pour le FPGA, le rouge est la sortie avec l'étrange montée et la chute fois. – Florian

Répondre

0

J'ai trouvé la réponse à ma question hier. La portée était le problème. Son impédance était trop faible et j'ai dû trouver une autre sonde. Je vois assez bien les temps de montée et de chute maintenant pour ce que je fais.