hjelp behovet for statlig apparat utganger ...

S

s3034585

Guest
Hei

kan noen fortelle meg trenger vi å klokke utdataene tildelt i en tilstand maskin før den brukes igjen i staten maskinen.

Det er som en tilbakemelding.så trenger vi å clk det eller ikke.jeg vil tilordne et flagg i én stat, og i enkelte andre statlige jeg må sjekke status på dette flagget og avgjøre tildelingen av andre signaler ..

takk på forhånd.
Tama

 
Kan du vise et lite eksempel som avklarer spørsmålet ditt?Svaret kan avhenge av din spesielle design.

Generelt er det ikke nødvendig å sette flopper i tilbakemeldinger banen for en synkron tilstand maskin.Det er imidlertid en ekstra rørledning flopp være nyttig å bryte opp et stort kombinatorisk nettverk, og dermed gir høyere klokke frekvens.Slike pipelining tendens til å øke design vanskeligheter.

 
Hei Echo47

Thanks for ur svar ..Jeg prøver å designe en sak uttalelse (prøver også å implementere i en tilstand maskin) der jeg tildele noen flagg og sjekke noen av disse flaggene også å tildele noen signaler.

f.eks ...

Prosessen (x, y, z, u)
begynne
flg1 <= '0 ';
flg2 <= '0 ';
flg3 <= '0 ';
case (clk_st) er
når ledig =>
......
når st1 =>
if (x = 1 og y = '1 ') then
flg1 <= '1 ';
ellers
flg1 <= '0 ';
end if;

når ST2 =>
if (x = 1 og z = '1 ') then
flg2 <= '1 ';
ellers
flg2 <= '0 ';
end if;

når ST3 =>
if (y = '1 'and flg1 = '1') then ---- her i denne tilstanden jeg ønsker å sjekke status for
flg3 <= '1 '; flg1 og som per at tildele flg3 .....
ellers
flg3 <= '0 ';
end if;
........

end case
end forarbeide ...i henhold til ovennevnte sak uttalelse Må jeg clk flg1 signaler før du sjekker det igjen ..Jeg ønsker å designe en rørledning logikk som jeg skal bruke flaggene som tilbakemeldinger også ...takk på forhånd ...
Tama

 
Jeg vet ikke hva statemachine koding stil ur bruker vel hva du har
forutsatt er statemachine utgang dekoder koden.Du må registrere flaggene
på følgende måte ...

process (clk, rstn)
begynne
if (rstn = '0 ') then
clk_st <= idle;
flg1 <= '0 ';
flg2 <= '0 ';
flg3 <= '0 ';
elsif (clk'event and clk = '1 ') then
clk_st <= clk_st_nx;
flg1 <= flg1_nx;
flg2 <= flg2_nx;
flg3 <= flg3_nx;
endif
slutt
- Neste stat dekoder prosess
Prosessen (clk_st, x, y, z, u)
begynne
case (clk_st) er
når ledig =>
clk_st_nx <= st1;
.......
......
end case;
slutt
- Statemachine utgang dekoder
Prosessen (clk_st, flg1, flg2, flg3, x, y, z, u)
begynne
flg1_nx <= flg1;
flg2_nx <= flg2;
flg3_nx <= flg3;
case (clk_st) er
når ledig =>
......
når st1 =>
if (x = 1 og y = '1 ') then
flg1_nx <= '1 ';
ellers
flg1_nx <= '0 ';
end if;

når ST2 =>
if (x = 1 og z = '1 ') then
flg2_nx <= '1 ';
ellers
flg2_nx <= '0 ';
end if;

når ST3 =>
if (y = '1 'and flg1 = '1') then ---- her i denne tilstanden jeg ønsker å sjekke status for
flg3_nx <= '1 '; flg1 og som per at tildele flg3 .....
ellers
flg3_nx <= '0 ';
end if;
........

end case
end forarbeide ...Håper dette hjelper!

 
Hei Nand_gate
Thanks for ur svar ...jeg fikk ideen om hvordan å løse dette problemet ...

takk
Tama ...

 

Welcome to EDABoard.com

Sponsor

Back
Top