случай изявление

B

bharat_in

Guest
До сега, аз бях по впечатлението, че делото ще генерира отчет без енкодер хардуер приоритет както в симулация и синтез, но в резултат на кодиране, показва, че в симулация на произведения като proirity енкодер ...

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Тъжен" border="0" />модул m ();

тел [3:0] W1 = 4'b1101;

първоначален
започвам
# 4;
случай (1'b1)
W1 [0]: $ дисплей ( "0");
W1 [1]: $ дисплей ( "1");
W1 [2]: $ дисплей ( "2");
W1 [3]: $ дисплей ( "3");
по подразбиране: $ дисплей ( "По подразбиране");
endcase
приключвам

endmodule

Резултат:
0

Предполагам, че в този случай ще трябва предварително синтез и след разминаване симулация синтез.
Може ли някой да моля, обяснете, как да се паралелно хардуер в симулация използва случая изявление?

 
първоначално ще бъдат игнорирани от синтеза на инструмент и да показват също не synthesizble
опитам да напиша synthesizable RTL код

 
Това, което знам е, че в VHDL, за всеки отделен отчет е пореден отчет не едновременно, това е положението за Verilog?

 
Когато говорим за синтеза на Ур тогава # 4 и $ дисплея не трябва да се има в Ур RTL.
След като се отстранят този U, U трябва да добавите parallel_case директива специално за това състояние, както при избора на отчет е променлива тук.пиша така:

случай (1'b1) / / резюме parallel_case
W1 [0]:
-----
-----

 
копирайте кода тук:
случай (1'b1)
W1 [0]: $ дисплей ( "0");
W1 [1]: $ дисплей ( "1");
W1 [2]: $ дисплей ( "2");

Мисля, че е Ур случай състояние са някои въпрос.
U опитайте изявление случая, както следва:

случай (W1) / / <- тук трябва да се W1, не 1'b1
W1 [0]: $ дисплей ( "0");
W1 [1]: $ дисплей ( "1");
W1 [2]: $ дисплей ( "2");

 
Опитвал ли си с синтеза на директивата за тези

 
за тези, които питаха за synthesizable модул ....

Код:

модул M1 (W1, A, Y);вход за двупроводни [3:0] W1;

вход за двупроводни [3:0] а;

продукция обл Y;Винаги @ *

започвам

случай (1'b1)

W1 [0]: Y = A [0];

W1 [1]: Y = A [1];

W1 [2]: Y = A [2];

W1 [3]: Y = A [3];

по подразбиране: Y = 0;

endcase

приключвамendmodule
 
Можете да използвате ограничение за избягване на несъответствията

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />
 
@ shiv_emf
Моля, кажете ми какви ограничения трябва да използвам в този случай?

 
Здравейте bharat_in,
Нека да разгледаме проблема от права FWD перспектива.
Един ДА продукция, може да получите на стойност от една от 4 входа A0, A1, A2, A3,
в зависимост от 4 други материали W0, W1, w2, w3.ОК?

ОК 4to1 MUX, но имате 4 линии, за да изберете (вместо 2, който обикновено има), т.е. въвеждане на 16 комбинации да реши 4 възможности за избор Y, т.е. A0, A1, A2, A3?
4 избор Aur 16 изберете комбинации, bahut beinsaafi Hai вие

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Така че да има точно SIM / сън мач, може да искате отново да напишете вашия случай декларация

Код:случай W1

4'b0001:

4'b0010:

4'b0011:

4'b0100:

.

.

4'b1110:

4'b1111:

подразбиране Y = 0;

endcase

 
Това е начинът!
Надявам се това да помогне!
Код:

модул M1 (W1, A, Y);

вход [3:0] W1;

вход [3:0] а;

изход Y;

присвоите Y = (A [0] & W [0]) | (A [1] & W [1]) | (A [2] & W [2]) | (A [3] & W [3]) ;

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top