CPLD stale v tom plavu :-)

Daniel Valuch daniel.valuch@orange.fr
Středa Červenec 8 15:18:41 CEST 2009


ak mozem doporucit, pre navrhy ktore sa budu syntetizovat nepouzivajte 
premenne ale signaly. Premenne su trochu 'tricky' na pouzivanie. Mozem 
dat vlastny priklad kedy som len nahodou zistil ze to co som si myslel 
ze je citac sa mi prelozilo ako state machine s 4096 stavmi. Kedze bolo 
FPGA velke vsimol som si to len nahodou ked som hladal inu chybu. Po 
zmene z premennej na signal bol preklad v poriadku a uvolnilo sa znacne 
mnozstvo zdrojov :-)


priklad citaca z 
http://www.xilinx.com/itp/3_1i/data/fise/xst/chap02/xst02005.htm

Following is VHDL code for a 4-bit unsigned Up counter with asynchronous 
clear.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;


entity counter is
  port(C, CLR : in  std_logic; 
        Q : out std_logic_vector(3 downto 0)); 
end counter;
architecture archi of counter is 
  signal tmp: std_logic_vector(3 downto 0);
  begin 
      process (C, CLR)
        begin 
          if (CLR='1') then 
            tmp = "0000"; 
          elsif (C'event and C='1') then 
            tmp = tmp + 1;
          end if; 
      end process;
      Q = tmp; 
end archi;







j.Krajinka@seznam.cz wrote:
> Mea culpa, asi jsem momentalne zaostaly, ale s timhle se peru uz hodinu.
>
> Pokud se nepletu tak port muze byt definovan jako in, out, inout a buffer?
> Pokud ano tak nechapu proc pri vytvareni noveho modulu New Source Wizard neumoznuje volbu buffer?
>
> Zkousel jsem delicku kmitoctu 1:4096
>
> Port ( Clk : in  STD_LOGIC;
>            CD : buffer  STD_LOGIC);
>
> process(Clk,CD)
> variable cnt : integer range 0 to 4096;
> begin
> if(Clk'event and Clk='1') then
> if(cnt=4096)then
> cnt:=0;
> CD<= CD nand '1';
> else
> cnt := cnt+1;
> end if;
> end if;
> end process;
>
> toto se bezproblemu prelozi a projde kontrolou syntaxe.
> problem je ze, kdyz vytvorim  VHDL Test Bench , tak generator oznaci  CD jako vystup  CD : OUT  std_logic
> Pokus o simulaci konci chybou
> ERROR:HDLCompiler:439 -  Formal port cd of mode buffer cannot be associated with actual port cd of mode out, ktera je tak tajna, ze ji nepopisuji ani v napovede na webu Xilinx.
> Kdyz to rucne opravim z Out na buffer tak to funguje, ale tak si rikam, zda nedelam neco blbe, kdyz je to tak komplikovane :-)
>
>
> Dekuji
>            Jirka
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>   






Další informace o konferenci Hw-list