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

Pitanja...

by Ana Balevic
petak, 16. januar 2004 - 00:48.

1. Pretpostavljam da master zadaje pocetak transfera postavljanjem bita TxE u kontrolnom registru,ali mi nije jasno koja je svrha RxE i TxE bita u statusnom registru?
Palo mi je na pamet da bi npr RxE u statusnom mogao da sluzi za sledece:
kada master postavi RxE u kontrolnom reg, tada kontrolna logika postavi isto u statusnom,
uart prima podatke,pakuje u RxFIFO i kada ga napuni , postavlja RxE=0 u statusnom, a master poliranjem tog registra ukapira sta se desilo.Da li ovo ima smisla, ili neko ima bolju ideju za sta sluze ta 2 bita?

2.sta da radim sa signalima koji mi trebaju da budu integer da bi mogla da ih koristim
kao indexe ,a menjam ih u 2 procesa? (isti problem imam i sa flegovima...) Kompajler mi prijavljuje gresku: Signal "SampleCnt" has two sources, but is not
resolved signal .isto i za SamplingF. Pokusala samo to da resim tako sto ta 2 procesa spojim u 1,i to prodje compile,
medjutim u simulaciji kada SamplingF treba da dobije vrednost '1', on dobije X, i onda ne radi kako treba :(
Sta da radim?
evo definicije signala i tog jednog procesa:
Signal SampleCnt: integer range 0 to 15 :=0;
Signal SamplingF: std_logic := '0';
StartAndSample:process(RxD,clk) is
begin
if RxE='1'then
if falling_edge(RxD) and not(SamplingF='1') then
SamplingF<='1'; SampleCnt<=0;
elsif (SamplingF='1') and rising_edge(clk) then
SamplingReg(SampleCnt)<=RxD;
SampleCnt<=SampleCnt+1;
end if;
end if;
end process StartAndSample;

3. Rx: primljen START bit, 8 informacionih ,ali sledeci bit je 0 ,dakle nije STOP.
Da li treba uraditi FLUSH prihvatnog registra, ili bite u njemu izshiftovati (fifo)
do prvog koji je 0 (ukljucujuci i njega) ,njega proglasiti za start,a sto se informacionih bita tice nastaviti ubacivanje u prihvatni registar.Da li u ovakvim situacijama treba na neki nacin obavestiti MASTERa o situaciji i kako (npr INT)?

4. Imam mali problem sa aritmetikom za CLK-ove - potrebna pomoc :)
Napravila sam brojac koji broji od CLKDIV do 0,generise puls,koji zatim koristim da u pretvaracu takta(CLK->txCLK)
promenim nivo TxCLk. da li je onda tacno da je TxCLK= WB_CLK/(CLK_div*2) ?
Ana