V
victoria_jitesh
Guest
Prosim, povejte mi, zakaj v mojem naslednjo kodo takoj signal, da ne bova vrednosti posodobljene v primeru dogodka strt_bo signal."časovnem 1ns / 1ps [/ b ]///////////////////////////////////////// /////////////////////////////////////////
/ / Podjetje:
/ / Engineer:
/ /
/ / Create Date: 18:07:41 06/23/2008
/ / Design Name:
/ / Module Name: hrbtni
/ / Ime projekta:
/ / Target Devices:
/ / Orodje različice:
/ / Opis::
/ /
/ / Odvisnosti:
/ /
/ / Revizija:
/ / Revision 0.01 - File Created
/ / Dodatni Komentarji:
/ /
////////////////////////////////////////////////// ////////////////////////////////
modul bcof (RST, xmit_over, strt_bo, strt_def, err1);
input rst;
input xmit_over;
input strt_bo;
output reg strt_def;
output reg err1;
reg [9:0] poskus = 0;
reg [9:0] collattempt = 0;
reg [9:0] slot_cnt_int;parameter RUN = 1'b1, IDLE = 1'b0;reg [9:0] slot_time = 7'b1111111;
/ / žica [19:0] del;
reg [20:0] zamudo;
reg temp = 0;
reg t1;
wire t2;
dodeliti t2 = strt_bo | xmit_over;
/ / RANDOM LOGIC ŠTEVILO OUTPUT GENERATION
//=======================================
/ / Opomba: collattempt ni naključno ne.generator output.
Vedno @ (posedge strt_bo)
začeti
collattempt = collattempt 1;
primeru (collattempt)
0: začetek
slot_cnt_int <= 0;
zamuda = slot_cnt_int * slot_time;
konec
1: začetek
slot_cnt_int <= 2;
zamuda = slot_cnt_int * slot_time;
konec
2: začeti
slot_cnt_int <= 4;
zamuda = slot_cnt_int * slot_time;
konec
3: začetek
slot_cnt_int <= 8;
zamuda = slot_cnt_int * slot_time;
konec
4: začetek
slot_cnt_int <= 16;
zamuda = slot_cnt_int * slot_time;
konec
5: začetek
slot_cnt_int <= 32;
zamuda = slot_cnt_int * slot_time;
konec
6: začetek
slot_cnt_int <= 64;
zamuda = slot_cnt_int * slot_time;
konec
7: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
8: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
9: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
10: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
default: začetek
slot_cnt_int <= 255;
zamuda = slot_cnt_int * slot_time;
konec
endcase
/ / zakasnitev = slot_cnt_int * slot_time;
konec
/ / dodeli del = slot_cnt_int * slot_time;
Vedno @ (t1, temp, zamude, RST, poskus, t2, slot_cnt_int)
začeti
t1 = t2;
if (rst == 1)
začeti
strt_def = 1'b0;
err1 = 1'b0;
konec
še
primeru (t1)
RUN:
začeti
poskus poskus = 1;
if (poskus == 17)
začeti
err1 = 1'b1;
poskus = 0;
konec
še
začeti
while (zamuda! = 0)
začeti
temp = temp 1;
zamuda = zamude-1;
konec
strt_def = 1'b1;
konec
konecIDLE:
začeti
t1 = strt_bo | xmit_over;
konec
endcase
konec
endmodule
/ / Podjetje:
/ / Engineer:
/ /
/ / Create Date: 18:07:41 06/23/2008
/ / Design Name:
/ / Module Name: hrbtni
/ / Ime projekta:
/ / Target Devices:
/ / Orodje različice:
/ / Opis::
/ /
/ / Odvisnosti:
/ /
/ / Revizija:
/ / Revision 0.01 - File Created
/ / Dodatni Komentarji:
/ /
////////////////////////////////////////////////// ////////////////////////////////
modul bcof (RST, xmit_over, strt_bo, strt_def, err1);
input rst;
input xmit_over;
input strt_bo;
output reg strt_def;
output reg err1;
reg [9:0] poskus = 0;
reg [9:0] collattempt = 0;
reg [9:0] slot_cnt_int;parameter RUN = 1'b1, IDLE = 1'b0;reg [9:0] slot_time = 7'b1111111;
/ / žica [19:0] del;
reg [20:0] zamudo;
reg temp = 0;
reg t1;
wire t2;
dodeliti t2 = strt_bo | xmit_over;
/ / RANDOM LOGIC ŠTEVILO OUTPUT GENERATION
//=======================================
/ / Opomba: collattempt ni naključno ne.generator output.
Vedno @ (posedge strt_bo)
začeti
collattempt = collattempt 1;
primeru (collattempt)
0: začetek
slot_cnt_int <= 0;
zamuda = slot_cnt_int * slot_time;
konec
1: začetek
slot_cnt_int <= 2;
zamuda = slot_cnt_int * slot_time;
konec
2: začeti
slot_cnt_int <= 4;
zamuda = slot_cnt_int * slot_time;
konec
3: začetek
slot_cnt_int <= 8;
zamuda = slot_cnt_int * slot_time;
konec
4: začetek
slot_cnt_int <= 16;
zamuda = slot_cnt_int * slot_time;
konec
5: začetek
slot_cnt_int <= 32;
zamuda = slot_cnt_int * slot_time;
konec
6: začetek
slot_cnt_int <= 64;
zamuda = slot_cnt_int * slot_time;
konec
7: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
8: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
9: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
10: začetek
slot_cnt_int <= 127;
zamuda = slot_cnt_int * slot_time;
konec
default: začetek
slot_cnt_int <= 255;
zamuda = slot_cnt_int * slot_time;
konec
endcase
/ / zakasnitev = slot_cnt_int * slot_time;
konec
/ / dodeli del = slot_cnt_int * slot_time;
Vedno @ (t1, temp, zamude, RST, poskus, t2, slot_cnt_int)
začeti
t1 = t2;
if (rst == 1)
začeti
strt_def = 1'b0;
err1 = 1'b0;
konec
še
primeru (t1)
RUN:
začeti
poskus poskus = 1;
if (poskus == 17)
začeti
err1 = 1'b1;
poskus = 0;
konec
še
začeti
while (zamuda! = 0)
začeti
temp = temp 1;
zamuda = zamude-1;
konec
strt_def = 1'b1;
konec
konecIDLE:
začeti
t1 = strt_bo | xmit_over;
konec
endcase
konec
endmodule