«« ( Date ) »» // «« ( Thread ) »» // vlsi-nastava - 2004

RE: Re: problem sa sintezom

by Gvozden Marinkovic
utorak, 20. januar 2004 - 01:17.

probaj ovako:

Startuj: process(RxD,current_state) is
begin
if RxD='0' and RxD'event then
StartFlag<='0';
case current_state is
when READY => StartFlag<='1';
when others => null;
end case;
end if;

end process Startuj;

U principu treba da izbegavate procese u kojima reagujete
na ivicu dva signala (u ovom konkretnom slucaju RxE i clk)

Pozdrav

Gvozden


-----Original Message-----
From: Ana Balevic [mailto:taucet@EUnet.yu]
Sent: Tuesday, January 20, 2004 10:19 AM
To: vlsi-nastava@titan.etf.bg.ac.yu
Subject: Re: [vlsi-nastava] Re: problem sa sintezom


Uf nesto me zeza The Bat.Dakle evo tog dela:

Startuj: process(RxD,current_state) is
begin
if RxD='0' and RxD'event then
case current_state is
when READY => StartFlag<='1';
when others => StartFlag<='0';
end case;
else StartFlag<='0';
end if;
end process Startuj;

ovo je taj proces koji nece da sintetizuje.
meni treba da postavim StartFlag na 1 samo kada se state masina nalazi u
stanju READY,a u svim ostalim treba da bude 0. Probala sam da okrenem da
prvo udje u case, a u when READY da proverava RxD medjutim ni tako ne
radi.

2. problem,ovaj proces radi kako treba samo sa rising_edge(RxE), ako
stavim proveru RxE='1' nece da broji,nit da prelazi iz stanja u stanje.

Receive: process(clk,RxE,SampleCnt,current_state,StartFlag) is
variable SumaJedinica: integer;
variable BitZaUpis: std_logic;
begin
if rising_edge(RxE) then current_state<=READY; SampleCnt<=0;
Working<='1'; elsif rising_edge(clk) then
.....

-----------------------------------------------------------------
Informacije vezane za predmet Racunarski VLSI sistemi:
http://titan.etf.bg.ac.yu/~gvozden/vlsi
-----------------------------------------------------------------
unsubscribe:
minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20vlsi-nastava
-----------------------------------------------------------------