Variabile în VHDL

Autor Subiect: Variabile în VHDL  (Citit de 4 ori)

ombadei

  • Vizitator
Variabile în VHDL
« : Ianuarie 01, 1970, 01:00:00 am »
Salut,

Sunt ISE10.1 folosind codul de a-mi VHDL şi programul de rezultate de biţi într-un fişier spartan kitset.

Am stat multe utilaje declarate în cererea mea.Când i include variabile întregi în bucla de control, a rezultat că i obţine în stare masina mea are rezultate imprevizibile.

Orice motiv raţiune de a-o?Mulţumesc



omara007

  • Vizitator
Variabile în VHDL
« Răspuns #1 : Ianuarie 01, 1970, 01:00:01 am »
În VHDL, variabile sunt atribuite valorile imediat spre deosebire de semnale.Acest lucru înseamnă inferring latches care nu sunt de preferat, iar în unele cazuri cu rezultate imprevizibile.Deci, încercaţi să vă înlocui variabilele cu semnale.


ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #2 : Ianuarie 01, 1970, 01:00:02 am »
Multumesc ..

Ce-i cu un comportament de "semnal integer" versus "semnal std_logic"?


FvM

  • Vizitator
Variabile în VHDL
« Răspuns #3 : Ianuarie 01, 1970, 01:00:03 am »
Integer implică un nivel mai ridicat de abstration.În starea de maşini de design,
de  obicei folosesc un anumit enumerations pentru a îmbunătăţi lizibilitatea.Acestea pot fi înţeleasă ca un alias de un întreg interval.

Întregi fără un interval poate fi o problemă în cazul în care intenţionează biţi lungime nu poate fi recunoscut de design compilator.


ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #4 : Ianuarie 01, 1970, 01:00:04 am »
Să corectaţi-mă dacă mă înşel.
, i would expect it to behave exactly like a signal std_logic vector?

Pot să spun că, dacă i specifica un semnal  cu un şir
întreg, i-ar aştepta să se comporte exact ca un semnal de std_logic vector?

Sau i-ar lua în considerare design compilator
lui  metodă de generare a?


omara007

  • Vizitator
Variabile în VHDL
« Răspuns #5 : Ianuarie 01, 1970, 01:00:05 am »
Eu cred că gama-restricted integer semnal este acelaşi ca vector pic ..Nu
sunt  sigur daca va fi tradus în std_logic sau nu.Totusi, daca declara întreg intervalul 0
-  31 de exemplu, acesta va fi puse în aplicare de 5 biţi.(00000 -> 11111).Aceasta, de asemenea, implică faptul că toate operaţiunile vor fi nesemnate ce vă declara gama de a fi doar natural.


ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #6 : Ianuarie 01, 1970, 01:00:06 am »
Multumesc ..Acesta a fost cel mai insightful ..

Nu doresc să înceapă o nouă şirul .. luăm în considerare sub 2 segmente de cod ..Există o diferenţă de compilare sau de punere în aplicare a design?

Cod:proces (clkin)

începe

clkout <= clkin;

sfârşitul procesului;

FvM

  • Vizitator
Variabile în VHDL
« Răspuns #7 : Ianuarie 01, 1970, 01:00:07 am »
Nu încă.Acesta poate fi cazul, în cazul în care implică clkout cod suplimentar, se adaugă.


omara007

  • Vizitator
Re: Variabile în VHDL
« Răspuns #8 : Ianuarie 01, 1970, 01:00:08 am »

ombadei a scris:

Multumesc ..
Acesta a fost cel mai insightful ..Nu doresc să înceapă o nouă şirul .. luăm în considerare sub 2 segmente de cod ..
Există o diferenţă de compilare sau de punere în aplicare a design?Cod:proces (clkin)

începe

clkout <= clkin;

sfârşitul procesului;

AdvaRes

  • Vizitator
Re: Variabile în VHDL
« Răspuns #9 : Ianuarie 01, 1970, 01:00:09 am »

ombadei a scris:

Multumesc ..
Acesta a fost cel mai insightful ..Nu doresc să înceapă o nouă şirul .. luăm în considerare sub 2 segmente de cod ..
Există o diferenţă de compilare sau de punere în aplicare a design?Cod:proces (clkin)

începe

clkout <= clkin;

sfârşitul procesului;

FvM

  • Vizitator
Re: Variabile în VHDL
« Răspuns #10 : Ianuarie 01, 1970, 01:00:10 am »

Citat:

Primul cod va necesita unele circuite de făcut (A flip chix cu CLK şi de intrare conectat la CLKin).

AdvaRes

  • Vizitator
Re: Variabile în VHDL
« Răspuns #11 : Ianuarie 01, 1970, 01:00:11 am »

FvM a scris:Citat:

Primul cod va necesita unele circuite de făcut (A flip chix cu CLK şi de intrare conectat la CLKin).

omara007

  • Vizitator
Variabile în VHDL
« Răspuns #12 : Ianuarie 01, 1970, 01:00:12 am »
În opinia mea, ambele declaraţii vor da rezultate identice ..clkout <= clkin în sine este considerată un proces combinational.Singura diferenţă este că nu puteţi adăuga mai multe circuite de declaraţie, în acelaşi timp cu procesul declaraţie pe care le puteţi face mai multe.


AdvaRes

  • Vizitator
Re: Variabile în VHDL
« Răspuns #13 : Ianuarie 01, 1970, 01:00:13 am »

omara007 a scris:

În opinia mea, ambele declaraţii vor da rezultate identice ..
clkout <= clkin în sine este considerată un proces combinational.
Singura diferenţă este că nu puteţi adăuga mai multe circuite de declaraţie, în acelaşi timp cu procesul declaraţie pe care le puteţi face mai multe.

ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #14 : Ianuarie 01, 1970, 01:00:14 am »

Citat:

Vrei a (clkout) pentru a fi o copie a identice (clkin)?

FvM

  • Vizitator
Re: Variabile în VHDL
« Răspuns #15 : Ianuarie 01, 1970, 01:00:15 am »

Citat:

Cod sunt diferite.
În primul cod procesul funcţionează numai cu un clkin eveniment.

Deci clkout <= clkin la naştere sau care se încadrează marginea sau clkin.

Pentru cel de-al doilea clkout = clkin, este o fire.Simulate-le şi veţi vedea rezultatele sunt diferite.

omara007

  • Vizitator
Re: Variabile în VHDL
« Răspuns #16 : Ianuarie 01, 1970, 01:00:16 am »

AdvaRes a scris:omara007 a scris:

În opinia mea, ambele declaraţii vor da rezultate identice ..
clkout <= clkin în sine este considerată un proces combinational.
Singura diferenţă este că nu puteţi adăuga mai multe circuite de declaraţie, în acelaşi timp cu procesul declaraţie pe care le puteţi face mai multe.

FvM

  • Vizitator
Re: Variabile în VHDL
« Răspuns #17 : Ianuarie 01, 1970, 01:00:17 am »
Da, exact.

Cu toate acestea, există două posibile diferenţe mai mult cu un proces complex de cod.

a difference.

Astfel, am spus,  nu
există  încă
o diferenţă.

1.Dacă clkin ar fi lipsă de sensibilitate în listă, modificări de cklin pot fi ignorate în simulare (dar nu şi în sinteza)
2.În cadrul unui proces, puteţi avea mai multe de atribuire a unui semnal,
de  exemplu, clkout.În timp ce acest lucru ar fi marcat ca o mutiple-sursă de eroare în combinational cod, este legal în secvenţiale cod.Pur şi simplu, de ultima alocare victorii.


AdvaRes

  • Vizitator
Re: Variabile în VHDL
« Răspuns #18 : Ianuarie 01, 1970, 01:00:18 am »

omara007 a scris:Max AdvaResAi observat că acest proces [proces (clk)] este considerat combinational, atâta timp cât nu aţi specifica un eveniment marginea inauntru?
..
În acest caz, procesul va combinational randament exact acelaşi rezultat ca şi de atribuire directă combinational declaraţie.
Dacă aţi văzut rezultate diferite în simulare, vă rugăm să posteze aici snapshots în şirul.

omara007

  • Vizitator
Re: Variabile în VHDL
« Răspuns #19 : Ianuarie 01, 1970, 01:00:19 am »

AdvaRes a scris:Max membri,

Theoritically este adevărat, dar îmi amintesc că acest lucru nu este permisă de instrument, atunci când este în ceas de sensibilitate lista de genul asta.

ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #20 : Ianuarie 01, 1970, 01:00:20 am »
Ok ..Sunt un pic confuz acum ..este dependentă de acest instrument care este utilizat?

Deci, ce zici de această situaţie, în cazul în care A şi B sunt semnale de la codul de mai jos şi clkin este liber să ruleze un ceas?

Cod:proces (clkin)

începe

a <= b;

sfârşitul procesului;


omara007

  • Vizitator
Re: Variabile în VHDL
« Răspuns #21 : Ianuarie 01, 1970, 01:00:21 am »

ombadei a scris:

Ok ..
Sunt un pic confuz acum ..
este dependentă de acest instrument care este utilizat?Deci, ce zici de această situaţie, în cazul în care A şi B sunt semnale de la codul de mai jos şi clkin este liber să ruleze un ceas?Cod:proces (clkin)

începe

a <= b;

sfârşitul procesului;


FvM

  • Vizitator
Re: Variabile în VHDL
« Răspuns #22 : Ianuarie 01, 1970, 01:00:22 am »

Citat:

este dependentă de acest instrument care este utilizat?

ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #23 : Ianuarie 01, 1970, 01:00:23 am »
Multumesc omara007 ..Vrut doar pentru a obţine o înţelegere mai clară a acestui proces sensibilitate lista de argumente ..Sunt obţinerea aproximativ idee buna ..între diferenţa între simulare şi sinteză ..


ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #24 : Ianuarie 01, 1970, 01:00:24 am »

FvM a scris:

2.
În cadrul unui proces, puteţi avea mai multe de atribuire a unui semnal, de exemplu, clkout.
În timp ce acest lucru ar fi marcat ca o mutiple-sursă de eroare în combinational cod, este legal în secvenţiale cod.
Pur şi simplu, de ultima alocare victorii.

omara007

  • Vizitator
Re: Variabile în VHDL
« Răspuns #25 : Ianuarie 01, 1970, 01:00:25 am »

ombadei a scris:FvM a scris:

2.
În cadrul unui proces, puteţi avea mai multe de atribuire a unui semnal, de exemplu, clkout.
În timp ce acest lucru ar fi marcat ca o mutiple-sursă de eroare în combinational cod, este legal în secvenţiale cod.
Pur şi simplu, de ultima alocare victorii.

ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #26 : Ianuarie 01, 1970, 01:00:26 am »
Multumesc pentru sfaturi nepretuite.Sale a fost foarte dificil, pentru a afla de codificare corectă,
mai ales că  şcoala nu a inspira buna de codificare discipline.

Ei bine, de acum fac un video pentru a monitoriza streaming proiect, şi i s-au întâlnit intermitentă şi rezultate ciudate la meu de depanare.De o problemă care apare atunci când i se integra modulele împreună şi lucrurile încep să ne despărţim.Deci, eu sunt de cotitură în acest forum pentru a afla mai multe despre cum lucrurile cu adevărat locul de muncă.Citat:

Dacă doriţi să resetaţi contra, atunci când ajunge la 10, codul asa:

FvM

  • Vizitator
Re: Variabile în VHDL
« Răspuns #27 : Ianuarie 01, 1970, 01:00:27 am »
De completare a "ultima alocare victorii", va trebui să ia în considerare, că toate semnalele sunt actualizate după ce procesul sa terminat.Deci, este destul de clar,
de  ce de mai sus contra exemplu reiniţializează în următorul ciclu, după ce ajunge la 10 şi, astfel, a 11 state (0 la 10).

Citat:

de asemenea, nu se amestecă între folosind (altele =>'0 ') şi integer (10).
Fie să utilizaţi (10, 0) ..
sau ( "1010",'0 ').

omara007

  • Vizitator
Variabile în VHDL
« Răspuns #28 : Ianuarie 01, 1970, 01:00:28 am »
Da, FvM, cu siguranta te pot folosi orice representationg / tip de numere ..Da, dacă ai o declare pentru a fi întreg, atunci nu se vor utiliza (altele =>'0 ').Sau, dacă o declare pentru a fi nesemnate, atunci nu folosi (10) ..în cazul în care (10) aici înseamnă TEN, nu doi.

Totusi, VHDL nu vă oferă flexibilitate pentru a face conversii de tip ..dar, in acest exemplu, nu aveţi nevoie pentru a face asta.


ombadei

  • Vizitator
Re: Variabile în VHDL
« Răspuns #29 : Ianuarie 01, 1970, 01:00:29 am »

Cod:

dacă rising_edge (clk), apoi

este cazul curState

.când st01 =>

nextState <= st02;când st02 =>

dataOut <= dataIn; - Captură de date

daca b <= 10, atunci

b <= b 1;

nextState <= st02;

elsif b = 10, atunci

b <= 0;

nextState <= st03;

sfârşit dacă;când st03 =>

.

sfârşit dacă;