нужда от вашата помощ!, Спешно е!

T

test_out

Guest
модул В (CLK, брой, data_in, изход);

/ / На входа
вход CLK;
вход EN;
вход [5:0] брой;
вход [35:0] data_in;

/ / Output
продукция Out;

/ / ДЕКЛАРАЦИИ
обл посочени = 1;

/ / ОСНОВНИ КОД

Винаги @ (posedge CLK)
ако (BG)
започвам
IF (брой == 37)
случай (data_in [35:32])

4'b0001: Няма <= 1;
4'b1001: Няма <= 0;
endcase
приключвам
endmodule

Когато ползвате този код, продукцията не е се получи право стойност например @ Count = 37, data_in [35:32] = 4'b1001 г. не се е 0, но да го съхранявате на предишния резултат от обл вън.Така че някой може да ми каже начин за коригиране на този код?

Благодарности

 
Тук е коригирания код тя работи добре ....

Код:

модул В (CLK, EN, брой, data_in, изход);/ / На входа

вход CLK;

вход EN;

вход [5:0] брой;

вход [35:0] data_in;/ / Output

продукция Out;/ / ДЕКЛАРАЦИИ

обл се, out_nx;

първоначално се = 1;/ / ОСНОВНИ КОД

Винаги @ (posedge CLK)

ако (EN) започва

IF (брой == 37)

случай (data_in [35:32])

4'b0001: Няма <= 1;

4'b1001: Няма <= 0;

endcase

приключвам

endmoduleмодул Test ();

обл CLK / / до С на Cv

обл [5:0] брой; / / до С на Cv

обл [35:0] data_in / / до С на Cv

обл EN; / / до С на Cvтел Out; / / от В на Cv

CC (

/ / Извежда

. Out (изход),

/ / Изходи

. CLK (CLK),

. BG (EN),

. броят (броят [5:0]),

. data_in (data_in [35:0]));

първоначално започва

$ дисплей ( "време CLK се EN брой data_in");

$ монитор ($ време,, "%% б б б г%%% B", CLK, вън, EN, брой, data_in);CLK = 0;

EN = 1;

Count = 0;

data_in = 0;

# 100 EN = 1;

Count = 37;

data_in = 0;

data_in [35:32] = 4'b1001;

# 200 $ покритие;

край / / първоначално започваВинаги # 5 CLK = ~ CLK;

endmodule / / изпитване
 
Благодаря NAND портата,

Но това все още не работи правилно, можете да видите в момента тон = 100, брой = 37, data_in = 1001, но все още се водят на стойност = 1.Това, което искам е OUT = 0.Така че някакъв друг начин?

 
Поръчка тази една надежда този път тя работи, както желаете!

Код:

модул В (CLK, EN, брой, data_in, изход);/ / На входа

вход CLK;

вход EN;

вход [5:0] брой;

вход [35:0] data_in;/ / Output

продукция Out;/ / ДЕКЛАРАЦИИ

обл out_r, out_nx;

начална out_r = 1;/ / ОСНОВНИ КОД

присвоите OUT = out_nx;Винаги @ (posedge CLK)

out_r <= out_nx;Винаги @ (/ * като * / брой или data_in или EN или out_r) започва

out_nx = out_r;

ако (EN) започва

IF (брой == 37)

случай (data_in [35:32])

4'b0001: out_nx = 1;

4'b1001: out_nx = 0;

endcase / / случай (data_in [35:32])

приключвам

приключвам

endmodule / / C
 
Мисля, че ако промените винаги в състояние на първия код то работилница глоба ...употреба винаги @ (posedge CLK или брой)

От първия код е синхронизирана система, така че се промени по всяко съм ръба на часовник цикъл ...така че в момента = 100 е-си край, така Ур O / P все още показва 1

Последно код от nand_gates работи добре

 

Welcome to EDABoard.com

Sponsor

Back
Top