V
victoria_jitesh
Guest
Fortæl mig i, hvorfor i mit følgende kode forsinkelse signal værdi ikke at få opdateret i tilfælde af begivenheden på strt_bo signal.`tidshorisont 1ns / 1ps [/ b ]///////////////////////////////////////// /////////////////////////////////////////
/ / Firma:
/ / Ingeniør:
/ /
/ / Create Date: 18:07:41 06/23/2008
/ / Design Navn:
/ / Module Name: backof
/ / Projekt Navn:
/ / Target Devices:
/ / Tool versioner:
/ / Beskrivelse::
/ /
/ / Dependencies:
/ /
/ / Revision:
/ / Revision 0.01 - File Created
/ / Yderligere kommentarer:
/ /
////////////////////////////////////////////////// ////////////////////////////////
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] forsøg = 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;
/ / wire [19:0] del;
reg [20:0] forsinkelse;
reg temp = 0;
reg t1;
wire t2;
tildele t2 = strt_bo | xmit_over;
/ / Random Number OUTPUT GENERATION LOGIC
//=======================================
/ / Bemærk: collattempt er ikke tilfældig.generator output.
altid @ (posedge strt_bo)
begynd
collattempt = collattempt 1;
sag (collattempt)
0: begynde
slot_cnt_int <= 0;
delay = slot_cnt_int * slot_time;
ende
1: begynder
slot_cnt_int <= 2;
delay = slot_cnt_int * slot_time;
ende
2: begynde
slot_cnt_int <= 4;
delay = slot_cnt_int * slot_time;
ende
3: begynder
slot_cnt_int <= 8;
delay = slot_cnt_int * slot_time;
ende
4: begynde
slot_cnt_int <= 16;
delay = slot_cnt_int * slot_time;
ende
5: begynde
slot_cnt_int <= 32;
delay = slot_cnt_int * slot_time;
ende
6: begynde
slot_cnt_int <= 64;
delay = slot_cnt_int * slot_time;
ende
7: begynde
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
8: begynde
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
9: begynde
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
10: begynder
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
default: begynde
slot_cnt_int <= 255;
delay = slot_cnt_int * slot_time;
ende
endcase
/ / delay = slot_cnt_int * slot_time;
ende
/ / tildel del = slot_cnt_int * slot_time;
altid @ (t1, temp, forsinkelse, RST, forsøg, T2, slot_cnt_int)
begynd
t1 = t2;
if (rst == 1)
begynd
strt_def = 1'b0;
err1 = 1'b0;
ende
anden
sag (t1)
RUN:
begynd
forsøg = forsøg 1;
if (forsøg == 17)
begynd
err1 = 1'b1;
forsøg = 0;
ende
anden
begynd
while (forsinkelse! = 0)
begynd
temp = temp 1;
delay = forsinkelse-1;
ende
strt_def = 1'b1;
ende
endeIDLE:
begynd
t1 = strt_bo | xmit_over;
ende
endcase
ende
endmodule
/ / Firma:
/ / Ingeniør:
/ /
/ / Create Date: 18:07:41 06/23/2008
/ / Design Navn:
/ / Module Name: backof
/ / Projekt Navn:
/ / Target Devices:
/ / Tool versioner:
/ / Beskrivelse::
/ /
/ / Dependencies:
/ /
/ / Revision:
/ / Revision 0.01 - File Created
/ / Yderligere kommentarer:
/ /
////////////////////////////////////////////////// ////////////////////////////////
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] forsøg = 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;
/ / wire [19:0] del;
reg [20:0] forsinkelse;
reg temp = 0;
reg t1;
wire t2;
tildele t2 = strt_bo | xmit_over;
/ / Random Number OUTPUT GENERATION LOGIC
//=======================================
/ / Bemærk: collattempt er ikke tilfældig.generator output.
altid @ (posedge strt_bo)
begynd
collattempt = collattempt 1;
sag (collattempt)
0: begynde
slot_cnt_int <= 0;
delay = slot_cnt_int * slot_time;
ende
1: begynder
slot_cnt_int <= 2;
delay = slot_cnt_int * slot_time;
ende
2: begynde
slot_cnt_int <= 4;
delay = slot_cnt_int * slot_time;
ende
3: begynder
slot_cnt_int <= 8;
delay = slot_cnt_int * slot_time;
ende
4: begynde
slot_cnt_int <= 16;
delay = slot_cnt_int * slot_time;
ende
5: begynde
slot_cnt_int <= 32;
delay = slot_cnt_int * slot_time;
ende
6: begynde
slot_cnt_int <= 64;
delay = slot_cnt_int * slot_time;
ende
7: begynde
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
8: begynde
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
9: begynde
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
10: begynder
slot_cnt_int <= 127;
delay = slot_cnt_int * slot_time;
ende
default: begynde
slot_cnt_int <= 255;
delay = slot_cnt_int * slot_time;
ende
endcase
/ / delay = slot_cnt_int * slot_time;
ende
/ / tildel del = slot_cnt_int * slot_time;
altid @ (t1, temp, forsinkelse, RST, forsøg, T2, slot_cnt_int)
begynd
t1 = t2;
if (rst == 1)
begynd
strt_def = 1'b0;
err1 = 1'b0;
ende
anden
sag (t1)
RUN:
begynd
forsøg = forsøg 1;
if (forsøg == 17)
begynd
err1 = 1'b1;
forsøg = 0;
ende
anden
begynd
while (forsinkelse! = 0)
begynd
temp = temp 1;
delay = forsinkelse-1;
ende
strt_def = 1'b1;
ende
endeIDLE:
begynd
t1 = strt_bo | xmit_over;
ende
endcase
ende
endmodule