CPLD stale v tom plavu :-)

Milan milger@pobox.sk
Úterý Červenec 7 08:09:26 CEST 2009


Chyba je tam preto lebo to nie je v procese.
Ak to chcete takto priamo do kombinacnej logiky, pouzite namiesto 
"if"->"when":
-- 3-state output BUS arbiter
  DAT_OUT <= i_o_reg(7 downto 0)
  when (CE='1')and(ADR=X"0") else "ZZZZZZZZ";
  DAT_OUT <= i_o_reg(15 downto 8)
  when (CE='1')and(ADR=X"1") else "ZZZZZZZZ";


Co sa tyka premennych na zaciatok je urcite najlepsie pouzivat typicku 
"harweracku":
"in STD_LOGIC"
"out STD_LOGIC"
"in  STD_LOGIC_VECTOR (7 downto 0)"
....


Nakoniec zopakujem ze hradlove polia nie su vhodne na pouzitie na hranici 
ich parametrov, moze sa to preklad od prekladu lisit. Na nejake rychle 
preddelice, detektory pulzov zvolte radsej pevnu logiku. Dobre je si pozriet 
ake max. hodiny obvod zvlada a spracovavat len pomalsie deje.

Podla mna dobra cesta naucit sa Xilinx a VHDL je zobrat zlozitejsie 
zdrojovky a porozumiet im. Dovolim si tvrdit, ze su to radovo zlozitejsie 
veci ako sekvencne programovanie jednocipaku.

Milan
----- Original Message ----- 
From: <j.Krajinka@seznam.cz>
To: <hw-list@list.hw.cz>
Sent: Monday, July 06, 2009 5:03 PM
Subject: Re: CPLD stale v tom plavu :-)


Ja vedel, ze se na ty casy nekdo chyti :-)
Ale vazne, klasicka 74HC86 ma propagation delay 11ns presto pokud se na 
vstupech objevi shodne signaly  (rekneme 5MHz hodiny) vzajemne posunute o 
200ps tak se na vystupu generuji 200ps pulsy. Mam to tu na stole a i kdyz v 
oblasti ps muj citac uz muze trochu plavat tak to +-  sedi.
Ja bych ted rad zjistil, nejradeji nekde vycetl nebo nasimuloval jak se bude 
chovat stejne hradlo realizovane v Coll RunnerII nebo 7ns 9500XL., mozna 
nevim co mam hledam, ale nikde jsem se to nedocetl a v ISE simulatoru to 
take neumim, pokud to vubec lze.
Je mi celkem suma putna, jak bude nabezna hrana pulsu na vystupu hradla 
posunuta vuci vstupu, jde mi ciste o to jake minimalni rozdily to dokaze 
registrovat a s jakym "krokem" se bude vystupni puls zvetsovat.
Tak asi tak.

Dovolim si jeste jeden dotaz. Rekneme, ze chci realizovat Int1 XOR In2, tedy 
pokud je treti vstup CE=0,
pokud je CE=1 mel by se realizovat 1 XOR  In2. Me napadlo

entity pokus is
    Port ( In1 :  in  STD_LOGIC;
               In2 :  in  STD_LOGIC;
               CE :  in  STD_LOGIC;
            Out1 : out  STD_LOGIC);
end pokus;

architecture Behavioral of pokus is

begin

if CE = '0' then
Out1 <= In1 xor In2;
else
Out1 <= 1 xor In2;
end if;

end Behavioral;

Nicmene preklad konci chybou HDL Parsers:164 -  parse error, unexpected IF

Apropo k jakemu typu romenne se das priradit In, zkousel jsem to nacpat do 
bite, boolean a u obou mi to rve, ze to nelze?

Omlouvma se za pritrouble dotazy, fakt zacinam a jde to ztuha :-)

Jirka


>len aby sme si ujasnili, ake to pouzivate CPLD? :-))))


j.Krajinka@seznam.cz wrote:
> ad 1) Zkuste "post fit" simulaci.
>
> Jak se u simulace definuje vstupni signal (signal, ktery leze do CPLD 
> zvenku)?
> Priklad, chci, aby mi na vstup lezl kazdych 750ps 250ps pulsik.
>
> Nebo jinak, mohu si rucne v presne definovany cas nahodit In rucne a po 
> 250ps shodit?
>
> 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