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

vlsi-nastava] problem sa sintezom

by Ana Balevic
nedelja, 18. januar 2004 - 17:52.


Upomoc!
Imam problem sa receiverom - kada simulacija radi kako treba-onda nece da prodje sintezu...
Prijavljuje mi sledece probleme:

1.
@N:"C:\My Designs\UART\src\receiver4.vhd":14:12:14:13|Using sequential encoding for type state
sto se odnosi na red: type state is (READY,SAMPLE);
2.@E:"C:\My Designs\UART\src\receiver4.vhd":26:3:26:4|The logic for startflag does not match a standard flip-flop
sto se odnosi na:
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;

Znam da je vec receno da nista drugo sem clk-a ne bi trebalo da se proverava na edge,
medjutim ako stavim samo RxD='0' onda ne radi ono sto treba.
Takodje i u ovom delu :
Receive: process(clk,RxE,SampleCnt,current_state,StartFlag) is ...begin
if rising_edge(RxE) then current_state<=READY; SampleCnt<=0; Working<='1';
elsif rising_edge(clk) then ...
nece da radi nista ako umesto rising_edge(RxE), stavim RxE='1'.
(U simulaciji stavljam da je RxE bilo 0 , pa se promeni na 1)

Sta da radim!?
Ana

p.s. da li neko zna neki link na kome se mogu naci smernice kako treba pisati kod da bi prosao sintezu? Takodje bi i primer kompleksnije state mashine dobro doshao.