Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Taktigeneraator VHDL-ga

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Taktigeneraator VHDL-ga

    Basys2-le oleks vaja luua taktigeneraator, mis pool sekundit on kõrges seisus ja pool sekundit madalas. Takt peab vilgutama ühte LED-i.

    Kood:
    entity takt is
        Port ( clk : out  STD_LOGIC);
    end takt;
    architecture Behavioral of takt is
    
    SIGNAL clk_out : std_logic := '0';
     
    begin
     
    process
    
    begin
    
    if clk_out = '0' then
      clk_out <= '1';
    else
      clk_out <= '0';
    end if;
    end process;
    
    clk <= clk_out;
    
    end Behavioral;
    Kas selline kood peaks funktsioneerima? Süntaksi kontrollimisel vigu ei esine, aga "Implement design" korral ilmneb viga:
    "ERROR:Pack:198 - NCD was not produced. All logic was removed from the design. This is usually due to having no input or output PAD connections in the design and no nets or symbols marked as 'SAVE'. You can either add PADs or 'SAVE' attributes to the design, or run 'map -u' to disable logic trimming in the mapper. For more information on trimming issues search the Xilinx Answers database for "ERROR:Pack:198" and read the Master Answer Record for MAP Trimming Issues."
    Antud viga guugeldades eriti targemaks ei saanud. Oskab keegi aidata?

    #2
    Vs: Taktigeneraator VHDL-ga

    Ei saa, syntax on jh ok ka smuleerides. Kujuta nyyd seda rauas ette, inverteri sisend yhendada väljundiga, Proovi 74HC14 näiteks, see kõvasti aeglasem kui see xilinxi sisene, Saad teha nii et paned välja takisti ja konde ja kasutad 2 IO-d.
    EDIT:Tegelt saab ka 1 IO-ga, kasutades ära võimalus (vähemalt spartan kividel), muuta väljundvoolu, see aga äärmiselt ebastabiilne sest sõltub suuresti temperatuurist.

    Kasutaja openchip oskaks siin hästi sõna võtta.
    viimati muutis kasutaja murphy; 21 m 2010, 23:36.
    Modelleerimises ja tootmises kehtivad:
    1. Avariikindel vooluring lühistab kõik teised.
    2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

    Comment


      #3
      Vs: Taktigeneraator VHDL-ga

      entity takt is
      Port ( clk : in std_logic;
      LED : out std_logic);
      end takt;

      architecture Behavioral of takt is

      signal led_s : std_logic;
      signal count : std_logic_vector(24 downto 0);

      begin

      LED <= led_s;

      process

      begin
      if rising_edge(clk) then

      if(count < "1011111010111100001000000") then
      count <= count + '1';
      else
      count <= (others => '0');
      led_s <= not led_s;
      end if;

      end if;
      end process;


      end Behavioral;

      Loodetavasti sai õigesti ikka, hiline õhtu juba

      See peaks toimima kasutades plaadil olevat kvartsi. See variant teeb 50MHz => 2Hz ja iga poole sekundi tagant vahetab väljundi olekut.
      Kuid VHDL-st üksi on vähe! UCF tuleb ka paika panna. Kui kvarts on mingi muu sagedusega, siis pead loenduri ringi arvutama.(suurema sageduse korral tuleb ka vektorisse bitte juurde lisada)

      Comment


        #4
        Vs: Taktigeneraator VHDL-ga

        Aitäh
        Kas on seda kasutades võimalik teha nii, et näiteks kaks sekundit peale nupuvajutust süttiks üks led?

        Comment


          #5
          Vs: Taktigeneraator VHDL-ga

          Saab ikka, kuid vhdl kirjeldust tuleb natuke muuta.

          Comment

          Working...
          X