Verilog проблем

J

johnchau123

Guest
Аз съм за написването на Verilog програма и някои проблеми са възникнали.Аз просто напишете друга малка програма, да се опита и съща грешка случва.Бих искал да знам защо.

Това е моята програма.

модул ABC (вход CLK, започнете вход, вход средата, мощност [3:0] endkj);

обл [1:0]-членка, nextstate;
обл [3:0] endk;

параметър S0 = 2'b00, S1 = 2'b01, S2 = 2'b10;

Винаги @ (държавна или на проекта или средно)
започвам
случай (държава)
S0: започва
ако (начало == 0)
endk = endk 1;
в противен случай
endk = endk - 1;
nextstate <= S1;
приключвам
S1: започва
ако (в средата)
endk = endk 3;
в противен случай
endk = endk;
IF (endk> 2)
nextstate <= S0;
в противен случай
nextstate <= S2;
приключвам
S2: започва
nextstate <= S0;
приключвам
endcase
приключвам

Винаги @ (posedge CLK)
започвам
държавни <= nextstate;
приключвам
endmoduleПри изготвянето на програмата, тя каза, че се изведе ключалки за endk.Бих искал да знам защо и как да се реши този проблем.

Благодарности.
Джон

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />
 
Inferring ключалки, не трябва непременно проблем, но в този случай, аритметични изрази със endk най-вероятно не причиняват планираното поведение.

Можете да присвоите продукция и вътрешни сигнали в asynchronouos винаги блок, но не можете да exepect правилен резултат при преброяването нагоре или надолу тук.Всъщност, аз не разбирам какво точно замислено като условие за преброяване endk.

know it?

Да ти
го знаеш?Както и броя действия трябва да се изпълнява по силата на @ (posedge CLK) състояние да се заключи, един synchronouos брояч.

 

Welcome to EDABoard.com

Sponsor

Back
Top