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